Change default working directory to where pref.ini is in

This commit is contained in:
Tindy X committed 2020-02-04 16:36:37 +08:00
1 parent c05b7913af
commit 3945ba5afb
2 files changed
+12 -4

No files matched your search

+11 -3
View File
@@ -31,7 +31,7 @@ std::string access_token;
extern std::string custom_group; extern std::string custom_group;
//multi-thread lock //multi-thread lock
extern std::mutex on_configuring; std::mutex on_configuring;
//preferences //preferences
string_array renames, emojis; string_array renames, emojis;
@@ -59,17 +59,25 @@ void SetConsoleTitle(std::string title)
void setcd(std::string &file) void setcd(std::string &file)
{ {
char szTemp[1024] = {}; char szTemp[1024] = {}, filename[256] = {};
std::string path; std::string path;
#ifdef _WIN32 #ifdef _WIN32
DWORD retVal = GetFullPathName(file.data(), 1023, szTemp, NULL); char *pname = NULL;
DWORD retVal = GetFullPathName(file.data(), 1023, szTemp, &pname);
if(!retVal) if(!retVal)
return; return;
strcpy(filename, pname);
strrchr(szTemp, '\\')[1] = '\0';
#else #else
char *ret = realpath(file.data(), szTemp); char *ret = realpath(file.data(), szTemp);
if(ret == NULL) if(ret == NULL)
return; return;
ret = strcpy(filename, strrchr(szTemp, '/') + 1);
if(ret == NULL)
return;
strrchr(szTemp, '/')[1] = '\0';
#endif // _WIN32 #endif // _WIN32
file.assign(filename);
path.assign(szTemp); path.assign(szTemp);
chdir(path.data()); chdir(path.data());
} }
+1 -1
View File
@@ -4,7 +4,7 @@
//safety lock for multi-thread //safety lock for multi-thread
typedef std::lock_guard<std::mutex> guarded_mutex; typedef std::lock_guard<std::mutex> guarded_mutex;
std::mutex on_configuring, on_emoji, on_rename, on_stream, on_time; std::mutex on_emoji, on_rename, on_stream, on_time;
extern string_array emojis, renames; extern string_array emojis, renames;
extern string_array stream_rules, time_rules; extern string_array stream_rules, time_rules;