Mercurial > minori
comparison src/core/filesystem.cc @ 202:71832ffe425a
animia: re-add kvm fd source
this is all being merged from my wildly out-of-date laptop. SORRY!
in other news, I edited the CI file to install the wayland client
as well, so the linux CI build might finally get wayland stuff.
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Tue, 02 Jan 2024 06:05:06 -0500 |
| parents | 8548dc425697 |
| children | 53211cb1e7f5 |
comparison
equal
deleted
inserted
replaced
| 201:8f6f8dd2eb23 | 202:71832ffe425a |
|---|---|
| 37 | 37 |
| 38 std::filesystem::path GetDotPath() { | 38 std::filesystem::path GetDotPath() { |
| 39 #ifdef WIN32 | 39 #ifdef WIN32 |
| 40 std::filesystem::path path; | 40 std::filesystem::path path; |
| 41 wchar_t* buf; | 41 wchar_t* buf; |
| 42 | |
| 42 if (SHGetKnownFolderPath(FOLDERID_RoamingAppData, KF_FLAG_CREATE, NULL, &buf) == S_OK) | 43 if (SHGetKnownFolderPath(FOLDERID_RoamingAppData, KF_FLAG_CREATE, NULL, &buf) == S_OK) |
| 43 path = buf; | 44 path = buf; |
| 44 else | 45 else |
| 45 return std::filesystem::path(); | 46 return std::filesystem::path(); |
| 47 | |
| 46 CoTaskMemFree(buf); | 48 CoTaskMemFree(buf); |
| 49 | |
| 47 return path / CONFIG_DIR; | 50 return path / CONFIG_DIR; |
| 48 #elif defined(MACOSX) | 51 #elif defined(MACOSX) |
| 49 return std::filesystem::path(osx::GetApplicationSupportDirectory()) / CONFIG_DIR; | 52 std::string appsupport; |
| 53 if (!osx::GetApplicationSupportDirectory(appsupport)) | |
| 54 return ""; | |
| 55 | |
| 56 return std::filesystem::path(appsupport) / CONFIG_DIR; | |
| 50 #else // just assume POSIX | 57 #else // just assume POSIX |
| 51 std::filesystem::path path; | 58 std::filesystem::path path; |
| 52 const char* home = getenv("HOME"); | 59 const char* home = getenv("HOME"); |
| 60 | |
| 53 # ifdef __linux__ | 61 # ifdef __linux__ |
| 54 if (!home) | 62 if (!home) |
| 55 home = getpwuid(getuid())->pw_dir; | 63 home = getpwuid(getuid())->pw_dir; |
| 56 # endif // __linux__ | 64 # endif // __linux__ |
| 65 | |
| 66 /* only do this if the home directory was really found */ | |
| 57 if (home) | 67 if (home) |
| 58 return std::filesystem::path(home) / ".config" / CONFIG_DIR; | 68 return std::filesystem::path(home) / ".config" / CONFIG_DIR; |
| 59 else | 69 else |
| 60 return std::filesystem::path(); | 70 return std::filesystem::path(); |
| 61 #endif // !WIN32 && !MACOSX | 71 #endif // !WIN32 && !MACOSX |
