diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/filesys.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/filesys.cpp b/src/filesys.cpp index 7c72a4b27..b95986a92 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -701,16 +701,19 @@ bool safeWriteToFile(const std::string &path, const std::string &content) os << content; os.flush(); os.close(); - if (os.fail()) + if (os.fail()) { + remove(tmp_file.c_str()); return false; + } // Copy file -#ifdef _WIN32 remove(path.c_str()); - return (rename(tmp_file.c_str(), path.c_str()) == 0); -#else - return (rename(tmp_file.c_str(), path.c_str()) == 0); -#endif + if(rename(tmp_file.c_str(), path.c_str())) { + remove(tmp_file.c_str()); + return false; + } else { + return true; + } } } // namespace fs |