Remove temporary file at safeWriteToFile()

master
selat 2014-07-13 23:35:29 +03:00 committed by sapier
parent f6e01adab7
commit 5f1f1151d3
1 changed files with 9 additions and 6 deletions

View File

@ -701,16 +701,19 @@ bool safeWriteToFile(const std::string &path, const std::string &content)
os << content; os << content;
os.flush(); os.flush();
os.close(); os.close();
if (os.fail()) if (os.fail()) {
remove(tmp_file.c_str());
return false; return false;
}
// Copy file // Copy file
#ifdef _WIN32
remove(path.c_str()); remove(path.c_str());
return (rename(tmp_file.c_str(), path.c_str()) == 0); if(rename(tmp_file.c_str(), path.c_str())) {
#else remove(tmp_file.c_str());
return (rename(tmp_file.c_str(), path.c_str()) == 0); return false;
#endif } else {
return true;
}
} }
} // namespace fs } // namespace fs