aboutsummaryrefslogtreecommitdiff
path: root/backends/saves/savefile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/saves/savefile.cpp')
-rw-r--r--backends/saves/savefile.cpp15
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();