Mercurial > minori
comparison src/filesystem.cpp @ 7:07a9095eaeed
Update
Refactored some code, moved some around
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Thu, 24 Aug 2023 23:11:38 -0400 |
| parents | 51ae25154b70 |
| children |
comparison
equal
deleted
inserted
replaced
| 6:1d82f6e04d7d | 7:07a9095eaeed |
|---|---|
| 1 #ifdef _WIN32 | 1 #ifdef _WIN32 |
| 2 #include <shlobj.h> | 2 #include <shlobj.h> |
| 3 #elif defined(MACOSX) | 3 #elif defined(MACOSX) |
| 4 #include "sys/osx/filesystem.h" | 4 #include "sys/osx/filesystem.h" |
| 5 #elif defined(__linux__) | |
| 6 #include <unistd.h> | |
| 7 #include <sys/types.h> | |
| 8 #include <pwd.h> | |
| 5 #endif | 9 #endif |
| 6 #include <filesystem> | 10 #include <filesystem> |
| 7 #include <limits.h> | 11 #include <limits.h> |
| 8 #include <QMessageBox> | 12 #include <QMessageBox> |
| 9 #include "config.h" | 13 #include "config.h" |
| 15 #ifdef _WIN32 | 19 #ifdef _WIN32 |
| 16 char buf[PATH_MAX+1]; | 20 char buf[PATH_MAX+1]; |
| 17 if (SHGetFolderPathAndSubDir(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, CONFIG_DIR, buf) == S_OK) | 21 if (SHGetFolderPathAndSubDir(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, CONFIG_DIR, buf) == S_OK) |
| 18 cfg_path = std::filesystem::path(buf) / CONFIG_NAME; | 22 cfg_path = std::filesystem::path(buf) / CONFIG_NAME; |
| 19 #elif defined(MACOSX) | 23 #elif defined(MACOSX) |
| 20 /* hope and pray that std::filesystem can handle tildes... */ | 24 /* pass all of our problems to */ |
| 21 cfg_path = std::filesystem::path(StringUtils::Utf8ToWstr(osx::GetApplicationSupportDirectory())) / CONFIG_DIR / CONFIG_NAME; | 25 cfg_path = std::filesystem::path(StringUtils::Utf8ToWstr(osx::GetApplicationSupportDirectory())) / CONFIG_DIR / CONFIG_NAME; |
| 22 #else // just assume POSIX | 26 #else // just assume POSIX |
| 23 cfg_path = std::filesystem::path(getenv("HOME")) / ".config" / CONFIG_DIR / CONFIG_NAME; | 27 if (getenv("HOME") != NULL) |
| 28 cfg_path = std::filesystem::path(getenv("HOME")) / ".config" / CONFIG_DIR / CONFIG_NAME; | |
| 29 #ifdef __linux__ | |
| 30 else | |
| 31 cfg_path = std::filesystem::path(getpwuid(getuid())->pw_dir) / ".config" / CONFIG_DIR / CONFIG_NAME; | |
| 32 #endif // __linux__ | |
| 24 #endif | 33 #endif |
| 25 return cfg_path; | 34 return cfg_path; |
| 26 } | 35 } |
