diff --git a/uppsrc/Core/Ini.cpp b/uppsrc/Core/Ini.cpp index 990c99ee6..2d066790f 100644 --- a/uppsrc/Core/Ini.cpp +++ b/uppsrc/Core/Ini.cpp @@ -50,7 +50,7 @@ VectorMap LoadIniFile(const char *filename) } static StaticMutex sMtx; -static char sIniFile[256]; +static char sIniFile[512]; int ini_version__ = 1; @@ -62,7 +62,7 @@ void ReloadIniFile() void SetIniFile(const char *name) { Mutex::Lock __(sMtx); - strcpy(sIniFile, name); + strcpy(sIniFile, name, 511); ReloadIniFile(); } @@ -78,6 +78,11 @@ bool IniChanged__(int version) } #endif +String GetIniFile() +{ + return *sIniFile ? sIniFile : ~ConfigFile("q.ini") +} + String GetIniKey(const char *id, const String& def) { ASSERT_(IsMainRunning(), "GetIniKey is allowed only after APP_MAIN has started"); Mutex::Lock __(sMtx); @@ -85,7 +90,7 @@ String GetIniKey(const char *id, const String& def) { static int version; if(version != ini_version__) { version = ini_version__; - key = LoadIniFile(*sIniFile ? sIniFile : ~ConfigFile("q.ini")); + key = LoadIniFile(GetIniFile()); #ifdef PLATFORM_WIN32 if(key.GetCount() == 0) key = LoadIniFile(~GetExeDirFile("q.ini")); diff --git a/uppsrc/Core/Util.h b/uppsrc/Core/Util.h index 8e0907a99..a1132e4f9 100644 --- a/uppsrc/Core/Util.h +++ b/uppsrc/Core/Util.h @@ -26,6 +26,7 @@ void SetAssertFailedHook(void (*h)(const char *)); void ReloadIniFile(); void SetIniFile(const char *path = NULL); +String GetIniFile(); String GetIniKey(const char *id, const String& def); String GetIniKey(const char *id);