Replace g_LibSys usage with AMTL primitives.
This commit is contained in:
parent
ec01ca72a0
commit
207f643d3a
@ -35,11 +35,12 @@
|
|||||||
#include "sourcemm_api.h"
|
#include "sourcemm_api.h"
|
||||||
#include "sm_srvcmds.h"
|
#include "sm_srvcmds.h"
|
||||||
#include "sm_stringutil.h"
|
#include "sm_stringutil.h"
|
||||||
#include "LibrarySys.h"
|
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "frame_hooks.h"
|
#include "frame_hooks.h"
|
||||||
#include "logic_bridge.h"
|
#include "logic_bridge.h"
|
||||||
#include <sourcemod_version.h>
|
#include <sourcemod_version.h>
|
||||||
|
#include <amtl/os/am-path.h>
|
||||||
|
#include <amtl/os/am-fsutil.h>
|
||||||
|
|
||||||
#ifdef PLATFORM_WINDOWS
|
#ifdef PLATFORM_WINDOWS
|
||||||
ConVar sm_corecfgfile("sm_corecfgfile", "addons\\sourcemod\\configs\\core.cfg", 0, "SourceMod core configuration file");
|
ConVar sm_corecfgfile("sm_corecfgfile", "addons\\sourcemod\\configs\\core.cfg", 0, "SourceMod core configuration file");
|
||||||
@ -237,7 +238,7 @@ void CoreConfig::Initialize()
|
|||||||
*/
|
*/
|
||||||
if (corecfg)
|
if (corecfg)
|
||||||
{
|
{
|
||||||
g_LibSys.PathFormat(filePath, sizeof(filePath), "%s/%s", g_SourceMod.GetGamePath(), corecfg);
|
ke::path::Format(filePath, sizeof(filePath), "%s/%s", g_SourceMod.GetGamePath(), corecfg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -246,11 +247,11 @@ void CoreConfig::Initialize()
|
|||||||
/* Format path to config file */
|
/* Format path to config file */
|
||||||
if (basepath)
|
if (basepath)
|
||||||
{
|
{
|
||||||
g_LibSys.PathFormat(filePath, sizeof(filePath), "%s/%s/%s", g_SourceMod.GetGamePath(), basepath, "configs/core.cfg");
|
ke::path::Format(filePath, sizeof(filePath), "%s/%s/%s", g_SourceMod.GetGamePath(), basepath, "configs/core.cfg");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_LibSys.PathFormat(filePath, sizeof(filePath), "%s/%s", g_SourceMod.GetGamePath(), sm_corecfgfile.GetDefault());
|
ke::path::Format(filePath, sizeof(filePath), "%s/%s", g_SourceMod.GetGamePath(), sm_corecfgfile.GetDefault());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,12 +342,12 @@ bool SM_ExecuteConfig(IPlugin *pl, AutoConfig *cfg, bool can_create)
|
|||||||
|
|
||||||
g_SourceMod.BuildPath(Path_Game, path, sizeof(path), "cfg/%s", folder);
|
g_SourceMod.BuildPath(Path_Game, path, sizeof(path), "cfg/%s", folder);
|
||||||
|
|
||||||
if (!g_LibSys.IsPathDirectory(path))
|
if (!ke::file::IsDirectory(path))
|
||||||
{
|
{
|
||||||
char *cur_ptr = path;
|
char *cur_ptr = path;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
g_LibSys.PathFormat(path, sizeof(path), "%s", folder);
|
ke::path::Format(path, sizeof(path), "%s", folder);
|
||||||
len = g_SourceMod.BuildPath(Path_Game, build, sizeof(build), "cfg");
|
len = g_SourceMod.BuildPath(Path_Game, build, sizeof(build), "cfg");
|
||||||
|
|
||||||
do
|
do
|
||||||
@ -367,14 +368,12 @@ bool SM_ExecuteConfig(IPlugin *pl, AutoConfig *cfg, bool can_create)
|
|||||||
{
|
{
|
||||||
next_ptr = NULL;
|
next_ptr = NULL;
|
||||||
}
|
}
|
||||||
len += g_LibSys.PathFormat(&build[len],
|
len += ke::path::Format(&build[len],
|
||||||
sizeof(build)-len,
|
sizeof(build)-len,
|
||||||
"/%s",
|
"/%s",
|
||||||
cur_ptr);
|
cur_ptr);
|
||||||
if (!g_LibSys.CreateFolder(build))
|
if (!ke::file::CreateDirectory(build))
|
||||||
{
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
cur_ptr = next_ptr;
|
cur_ptr = next_ptr;
|
||||||
} while (cur_ptr);
|
} while (cur_ptr);
|
||||||
}
|
}
|
||||||
@ -386,13 +385,13 @@ bool SM_ExecuteConfig(IPlugin *pl, AutoConfig *cfg, bool can_create)
|
|||||||
|
|
||||||
if (cfg->folder.size())
|
if (cfg->folder.size())
|
||||||
{
|
{
|
||||||
g_LibSys.PathFormat(local,
|
ke::path::Format(local,
|
||||||
sizeof(local),
|
sizeof(local),
|
||||||
"%s/%s.cfg",
|
"%s/%s.cfg",
|
||||||
cfg->folder.c_str(),
|
cfg->folder.c_str(),
|
||||||
cfg->autocfg.c_str());
|
cfg->autocfg.c_str());
|
||||||
} else {
|
} else {
|
||||||
g_LibSys.PathFormat(local,
|
ke::path::Format(local,
|
||||||
sizeof(local),
|
sizeof(local),
|
||||||
"%s.cfg",
|
"%s.cfg",
|
||||||
cfg->autocfg.c_str());
|
cfg->autocfg.c_str());
|
||||||
@ -400,7 +399,7 @@ bool SM_ExecuteConfig(IPlugin *pl, AutoConfig *cfg, bool can_create)
|
|||||||
|
|
||||||
g_SourceMod.BuildPath(Path_Game, file, sizeof(file), "cfg/%s", local);
|
g_SourceMod.BuildPath(Path_Game, file, sizeof(file), "cfg/%s", local);
|
||||||
|
|
||||||
bool file_exists = g_LibSys.IsPathFile(file);
|
bool file_exists = ke::file::IsFile(file);
|
||||||
if (!file_exists && will_create)
|
if (!file_exists && will_create)
|
||||||
{
|
{
|
||||||
List<const ConVar *> *convars = NULL;
|
List<const ConVar *> *convars = NULL;
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include <sm_platform.h>
|
#include <sm_platform.h>
|
||||||
#include "sm_stringutil.h"
|
#include "sm_stringutil.h"
|
||||||
#include "LibrarySys.h"
|
#include "LibrarySys.h"
|
||||||
|
#include <amtl/os/am-path.h>
|
||||||
|
#include <amtl/os/am-fsutil.h>
|
||||||
|
|
||||||
LibrarySystem g_LibSys;
|
LibrarySystem g_LibSys;
|
||||||
|
|
||||||
@ -124,7 +126,7 @@ bool CDirectory::IsEntryDirectory()
|
|||||||
#elif defined PLATFORM_POSIX
|
#elif defined PLATFORM_POSIX
|
||||||
char temppath[PLATFORM_MAX_PATH];
|
char temppath[PLATFORM_MAX_PATH];
|
||||||
snprintf(temppath, sizeof(temppath), "%s/%s", m_origpath, GetEntryName());
|
snprintf(temppath, sizeof(temppath), "%s/%s", m_origpath, GetEntryName());
|
||||||
return g_LibSys.IsPathDirectory(temppath);
|
return ke::file::IsDirectory(temppath);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +137,7 @@ bool CDirectory::IsEntryFile()
|
|||||||
#elif defined PLATFORM_POSIX
|
#elif defined PLATFORM_POSIX
|
||||||
char temppath[PLATFORM_MAX_PATH];
|
char temppath[PLATFORM_MAX_PATH];
|
||||||
snprintf(temppath, sizeof(temppath), "%s/%s", m_origpath, GetEntryName());
|
snprintf(temppath, sizeof(temppath), "%s/%s", m_origpath, GetEntryName());
|
||||||
return g_LibSys.IsPathFile(temppath);
|
return ke::file::IsFile(temppath);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,75 +172,17 @@ bool CDirectory::IsValid()
|
|||||||
|
|
||||||
bool LibrarySystem::PathExists(const char *path)
|
bool LibrarySystem::PathExists(const char *path)
|
||||||
{
|
{
|
||||||
#if defined PLATFORM_WINDOWS
|
return ke::file::PathExists(path);
|
||||||
DWORD attr = GetFileAttributesA(path);
|
|
||||||
|
|
||||||
return (attr != INVALID_FILE_ATTRIBUTES);
|
|
||||||
#elif defined PLATFORM_POSIX
|
|
||||||
struct stat s;
|
|
||||||
|
|
||||||
return (stat(path, &s) == 0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LibrarySystem::IsPathFile(const char *path)
|
bool LibrarySystem::IsPathFile(const char *path)
|
||||||
{
|
{
|
||||||
#if defined PLATFORM_WINDOWS
|
return ke::file::IsFile(path);
|
||||||
DWORD attr = GetFileAttributes(path);
|
|
||||||
|
|
||||||
if (attr == INVALID_FILE_ATTRIBUTES)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (attr & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_DEVICE))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
#elif defined PLATFORM_POSIX
|
|
||||||
struct stat s;
|
|
||||||
|
|
||||||
if (stat(path, &s) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return S_ISREG(s.st_mode) ? true : false;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LibrarySystem::IsPathDirectory(const char *path)
|
bool LibrarySystem::IsPathDirectory(const char *path)
|
||||||
{
|
{
|
||||||
#if defined PLATFORM_WINDOWS
|
return ke::file::IsDirectory(path);
|
||||||
DWORD attr = GetFileAttributes(path);
|
|
||||||
|
|
||||||
if (attr == INVALID_FILE_ATTRIBUTES)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (attr & FILE_ATTRIBUTE_DIRECTORY)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined PLATFORM_POSIX
|
|
||||||
struct stat s;
|
|
||||||
|
|
||||||
if (stat(path, &s) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (S_ISDIR(s.st_mode))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IDirectory *LibrarySystem::OpenDirectory(const char *path)
|
IDirectory *LibrarySystem::OpenDirectory(const char *path)
|
||||||
@ -307,23 +251,8 @@ size_t LibrarySystem::PathFormat(char *buffer, size_t len, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
size_t mylen = vsnprintf(buffer, len, fmt, ap);
|
size_t mylen = ke::path::FormatVa(buffer, len, fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
if (mylen >= len)
|
|
||||||
{
|
|
||||||
mylen = len - 1;
|
|
||||||
buffer[mylen] = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i=0; i<mylen; i++)
|
|
||||||
{
|
|
||||||
if (buffer[i] == PLATFORM_SEP_ALTCHAR)
|
|
||||||
{
|
|
||||||
buffer[i] = PLATFORM_SEP_CHAR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return mylen;
|
return mylen;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,11 +288,7 @@ const char *LibrarySystem::GetFileExtension(const char *filename)
|
|||||||
|
|
||||||
bool LibrarySystem::CreateFolder(const char *path)
|
bool LibrarySystem::CreateFolder(const char *path)
|
||||||
{
|
{
|
||||||
#if defined PLATFORM_WINDOWS
|
return ke::file::CreateDirectory(path, 0775);
|
||||||
return (mkdir(path) != -1);
|
|
||||||
#elif defined PLATFORM_POSIX
|
|
||||||
return (mkdir(path, 0775) != -1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t LibrarySystem::GetFileFromPath(char *buffer, size_t maxlength, const char *path)
|
size_t LibrarySystem::GetFileFromPath(char *buffer, size_t maxlength, const char *path)
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
#include "convar_sm.h"
|
#include "convar_sm.h"
|
||||||
#endif
|
#endif
|
||||||
#include <amtl/os/am-shared-library.h>
|
#include <amtl/os/am-shared-library.h>
|
||||||
|
#include <amtl/os/am-path.h>
|
||||||
|
|
||||||
#if defined _WIN32
|
#if defined _WIN32
|
||||||
#define MATCHMAKINGDS_SUFFIX ""
|
#define MATCHMAKINGDS_SUFFIX ""
|
||||||
@ -653,7 +654,7 @@ void InitLogicBridge()
|
|||||||
|
|
||||||
char path[PLATFORM_MAX_PATH];
|
char path[PLATFORM_MAX_PATH];
|
||||||
|
|
||||||
g_LibSys.PathFormat(path, sizeof(path), "%s/bin/matchmaking_ds%s.%s", g_SMAPI->GetBaseDir(), MATCHMAKINGDS_SUFFIX, MATCHMAKINGDS_EXT);
|
ke::path::Format(path, sizeof(path), "%s/bin/matchmaking_ds%s.%s", g_SMAPI->GetBaseDir(), MATCHMAKINGDS_SUFFIX, MATCHMAKINGDS_EXT);
|
||||||
|
|
||||||
if (ke::Ref<ke::SharedLib> mmlib = ke::SharedLib::Open(path, NULL, 0))
|
if (ke::Ref<ke::SharedLib> mmlib = ke::SharedLib::Open(path, NULL, 0))
|
||||||
{
|
{
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
#include "frame_hooks.h"
|
#include "frame_hooks.h"
|
||||||
#include "logic_bridge.h"
|
#include "logic_bridge.h"
|
||||||
#include <amtl/os/am-shared-library.h>
|
#include <amtl/os/am-shared-library.h>
|
||||||
|
#include <amtl/os/am-path.h>
|
||||||
|
|
||||||
SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool);
|
SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool);
|
||||||
SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false);
|
SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false);
|
||||||
@ -106,8 +107,8 @@ ConfigResult SourceModBase::OnSourceModConfigChanged(const char *key,
|
|||||||
|
|
||||||
if (!m_GotBasePath)
|
if (!m_GotBasePath)
|
||||||
{
|
{
|
||||||
g_LibSys.PathFormat(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), value);
|
ke::path::Format(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), value);
|
||||||
g_LibSys.PathFormat(m_SMRelDir, sizeof(m_SMRelDir), value);
|
ke::path::Format(m_SMRelDir, sizeof(m_SMRelDir), value);
|
||||||
|
|
||||||
m_GotBasePath = true;
|
m_GotBasePath = true;
|
||||||
}
|
}
|
||||||
@ -164,8 +165,8 @@ bool SourceModBase::InitializeSourceMod(char *error, size_t maxlength, bool late
|
|||||||
basepath = sm_basepath.GetDefault();
|
basepath = sm_basepath.GetDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
g_LibSys.PathFormat(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), basepath);
|
ke::path::Format(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), basepath);
|
||||||
g_LibSys.PathFormat(m_SMRelDir, sizeof(m_SMRelDir), "%s", basepath);
|
ke::path::Format(m_SMRelDir, sizeof(m_SMRelDir), "%s", basepath);
|
||||||
|
|
||||||
if (!StartLogicBridge(error, maxlength))
|
if (!StartLogicBridge(error, maxlength))
|
||||||
{
|
{
|
||||||
@ -443,7 +444,7 @@ size_t SourceModBase::BuildPath(PathType type, char *buffer, size_t maxlength, c
|
|||||||
*/
|
*/
|
||||||
if (type != Path_SM_Rel && strncmp(_buffer, "file://", 7) == 0)
|
if (type != Path_SM_Rel && strncmp(_buffer, "file://", 7) == 0)
|
||||||
{
|
{
|
||||||
return g_LibSys.PathFormat(buffer, maxlength, "%s", &_buffer[7]);
|
return ke::path::Format(buffer, maxlength, "%s", &_buffer[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *base = NULL;
|
const char *base = NULL;
|
||||||
@ -462,11 +463,11 @@ size_t SourceModBase::BuildPath(PathType type, char *buffer, size_t maxlength, c
|
|||||||
|
|
||||||
if (base)
|
if (base)
|
||||||
{
|
{
|
||||||
return g_LibSys.PathFormat(buffer, maxlength, "%s/%s", base, _buffer);
|
return ke::path::Format(buffer, maxlength, "%s/%s", base, _buffer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return g_LibSys.PathFormat(buffer, maxlength, "%s", _buffer);
|
return ke::path::Format(buffer, maxlength, "%s", _buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user