diff options
author | selat <longexampletestname@gmail.com> | 2014-07-13 23:35:29 +0300 |
---|---|---|
committer | sapier <Sapier at GMX dot net> | 2014-08-16 12:46:48 +0200 |
commit | 5f1f1151d3a9c113902630adc16cc3f4845da7ba (patch) | |
tree | 4b98f9dbb6767b64a02fb72ec2a68af13b5140d9 /src/filesys.cpp | |
parent | f6e01adab7ed2adbdc8f07b855d1ae4669c607c9 (diff) | |
download | minetest-5f1f1151d3a9c113902630adc16cc3f4845da7ba.tar.gz minetest-5f1f1151d3a9c113902630adc16cc3f4845da7ba.tar.bz2 minetest-5f1f1151d3a9c113902630adc16cc3f4845da7ba.zip |
Remove temporary file at safeWriteToFile()
Diffstat (limited to 'src/filesys.cpp')
-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 |