bugfixes
This commit is contained in:
@@ -70,19 +70,26 @@ void file_setconfigfolder(const char* foldername) {
|
||||
if (!homedir) homedir = "/tmp";
|
||||
config_folder = std::string(homedir) + "/Library/Application Support/" + foldername;
|
||||
#elif __linux__
|
||||
// Nota emscripten: `__linux__` també està definit, però `getpwuid` no
|
||||
// troba cap /etc/passwd al MEMFS i retorna nullptr. Amb els fallbacks
|
||||
// HOME → /tmp evitem crashejar al primer arranque dins del navegador.
|
||||
// La config no persistirà entre recàrregues de la pàgina (MEMFS és
|
||||
// volàtil); caldria IDBFS si volguéssem persistència a web.
|
||||
// Nota emscripten: `__linux__` també està definit, però `getpwuid` pot
|
||||
// retornar nullptr (sense /etc/passwd al MEMFS) o un passwd amb pw_dir
|
||||
// buit. Amb els fallbacks HOME → /tmp evitem crashejar al primer
|
||||
// arranque dins del navegador. La config no persistirà entre recàrregues
|
||||
// (MEMFS és volàtil); caldria IDBFS si volguéssem persistència a web.
|
||||
struct passwd* pw = getpwuid(getuid());
|
||||
const char* homedir = (pw && pw->pw_dir) ? pw->pw_dir : nullptr;
|
||||
if (!homedir) homedir = getenv("HOME");
|
||||
if (!homedir) homedir = "/tmp";
|
||||
const char* homedir = (pw && pw->pw_dir && pw->pw_dir[0]) ? pw->pw_dir : nullptr;
|
||||
if (!homedir || !homedir[0]) homedir = getenv("HOME");
|
||||
if (!homedir || !homedir[0]) homedir = "/tmp";
|
||||
config_folder = std::string(homedir) + "/.config/" + foldername;
|
||||
#endif
|
||||
|
||||
std::filesystem::create_directories(config_folder);
|
||||
if (config_folder.empty()) {
|
||||
config_folder = "/tmp/jailgames_config";
|
||||
}
|
||||
std::error_code ec;
|
||||
std::filesystem::create_directories(config_folder, ec);
|
||||
// A emscripten/MEMFS create_directories pot fallar (p.ex. parent
|
||||
// read-only o libc++ amb path empty-check estricte). La config és
|
||||
// volàtil al navegador de totes formes: ignorem l'error i continuem.
|
||||
}
|
||||
|
||||
const char* file_getconfigfolder() {
|
||||
|
||||
Reference in New Issue
Block a user