diff --git a/src/config.cpp b/src/config.cpp index 9964c1c7..7dfc2cb5 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -11,7 +11,8 @@ void EmulatorConfig::load(const std::filesystem::path& path) { // If the configuration file does not exist, create it and return - if (!std::filesystem::exists(path)) { + std::error_code error; + if (!std::filesystem::exists(path, error)) { save(path); return; } @@ -38,13 +39,19 @@ void EmulatorConfig::load(const std::filesystem::path& path) { void EmulatorConfig::save(const std::filesystem::path& path) { toml::basic_value data; - if (std::filesystem::exists(path)) { + std::error_code error; + if (std::filesystem::exists(path, error)) { try { data = toml::parse(path); } catch (std::exception& ex) { - Helpers::warn("Got exception trying to save config file. Exception: %s\n", ex.what()); + Helpers::warn("Exception trying to parse config file. Exception: %s\n", ex.what()); return; } + } else { + if (error) { + Helpers::warn("FileSystem error accessing %s %s\n", path.string().c_str(), error.message().c_str()); + } + Helpers::warn("Saving new configuration file %s \n", path.string().c_str()); } data["GPU"]["EnableShaderJIT"] = shaderJitEnabled;