Merge pull request #100 from Wunkolo/config-fs-error-code

config: Use `error_code` prototype of `filesystem::exists`
This commit is contained in:
wheremyfoodat 2023-07-10 22:22:31 +03:00 committed by GitHub
commit 86de7d8aa3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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<toml::preserve_comments> data;
if (std::filesystem::exists(path)) {
std::error_code error;
if (std::filesystem::exists(path, error)) {
try {
data = toml::parse<toml::preserve_comments>(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 (error: %s)\n", path.string().c_str(), error.message().c_str());
}
printf("Saving new configuration file %s\n", path.string().c_str());
}
data["GPU"]["EnableShaderJIT"] = shaderJitEnabled;
@ -52,4 +59,4 @@ void EmulatorConfig::save(const std::filesystem::path& path) {
std::ofstream file(path, std::ios::out);
file << data;
file.close();
}
}