Try to atomically save config files.

This commit is contained in:
comex
2013-10-15 02:52:06 -04:00
parent f3af8ee0f0
commit 72c1e143f3
3 changed files with 74 additions and 4 deletions

View File

@ -391,7 +391,8 @@ bool IniFile::Load(const char* filename, bool keep_current_data)
bool IniFile::Save(const char* filename)
{
std::ofstream out;
OpenFStream(out, filename, std::ios::out);
std::string temp = File::GetTempFilenameForAtomicWrite(filename);
OpenFStream(out, temp, std::ios::out);
if (out.fail())
{
@ -425,7 +426,7 @@ bool IniFile::Save(const char* filename)
out.close();
return true;
return File::RenameSync(temp, filename);
}