aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2011-03-25 15:02:33 +0100
committerMax Horn2011-03-25 15:02:33 +0100
commit0c09dafdbbcccfae5838ac1f59589cb315095a0a (patch)
tree77d9f09e4d5df3c6f2753e77a94c47727652ec07
parentbb6a5c3685ef555ab63ee1fd39173dbdad9a2a13 (diff)
parent5a1874e3d946002c21af9ed315f762bfb467ef3f (diff)
downloadscummvm-rg350-0c09dafdbbcccfae5838ac1f59589cb315095a0a.tar.gz
scummvm-rg350-0c09dafdbbcccfae5838ac1f59589cb315095a0a.tar.bz2
scummvm-rg350-0c09dafdbbcccfae5838ac1f59589cb315095a0a.zip
Merge branch 'copysavefile' of https://github.com/Littleboy/scummvm into Littleboy-copysavefile
-rw-r--r--backends/saves/savefile.cpp15
-rw-r--r--common/savefile.h8
2 files changed, 18 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();
diff --git a/common/savefile.h b/common/savefile.h
index 16b0fdbfbe..793aec3ba9 100644
--- a/common/savefile.h
+++ b/common/savefile.h
@@ -136,6 +136,14 @@ public:
virtual bool renameSavefile(const String &oldName, const String &newName);
/**
+ * Copy the given savefile.
+ * @param oldName Old name.
+ * @param newName New name.
+ * @return true if no error occurred. false otherwise.
+ */
+ virtual bool copySavefile(const String &oldName, const String &newName);
+
+ /**
* Request a list of available savegames with a given DOS-style pattern,
* also known as "glob" in the UNIX world. Refer to the Common::matchString()
* function to learn about the precise pattern format.