util: fix argsman dupe key error

fixes #22638

If we find a duplicate key and error, clear `values` before returning so that
WriteSettings will write an empty file, therefore clearing it.

This aligns with GUI behaviour added in 1ee6d0b.
This commit is contained in:
willcl-ark 2023-03-09 22:25:01 +00:00
parent f7bdcfc83f
commit 8fcbdadfad
No known key found for this signature in database
GPG key ID: CE6EC49945C17EA6
2 changed files with 4 additions and 1 deletions

View file

@ -99,6 +99,8 @@ bool ReadSettings(const fs::path& path, std::map<std::string, SettingsValue>& va
auto inserted = values.emplace(in_keys[i], in_values[i]);
if (!inserted.second) {
errors.emplace_back(strprintf("Found duplicate key %s in settings file %s", in_keys[i], fs::PathToString(path)));
values.clear();
break;
}
}
return errors.empty();