diff options
Diffstat (limited to 'backends/saves/savefile.cpp')
-rw-r--r-- | backends/saves/savefile.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/backends/saves/savefile.cpp b/backends/saves/savefile.cpp index d2fc913f14..7b7d6b0c0c 100644 --- a/backends/saves/savefile.cpp +++ b/backends/saves/savefile.cpp @@ -31,8 +31,7 @@ namespace Common { -bool SaveFileManager::renameSavefile(const String &oldFilename, const String &newFilename) { - +bool SaveFileManager::copySavefile(const String &oldFilename, const String &newFilename) { InSaveFile *inFile = 0; OutSaveFile *outFile = 0; uint32 size = 0; @@ -57,9 +56,8 @@ bool SaveFileManager::renameSavefile(const String &oldFilename, const String &ne if (!error) { outFile->write(buffer, size); outFile->finalize(); - if (!outFile->err()) { - success = removeSavefile(oldFilename); - } + + success = !outFile->err(); } } @@ -71,6 +69,13 @@ bool SaveFileManager::renameSavefile(const String &oldFilename, const String &ne return success; } +bool SaveFileManager::renameSavefile(const String &oldFilename, const String &newFilename) { + if (!copySavefile(oldFilename, newFilename)) + return false; + + return removeSavefile(oldFilename); +} + String SaveFileManager::popErrorDesc() { String err = _errorDesc; clearError(); |