diff options
author | Max Horn | 2011-03-25 15:02:33 +0100 |
---|---|---|
committer | Max Horn | 2011-03-25 15:02:33 +0100 |
commit | 0c09dafdbbcccfae5838ac1f59589cb315095a0a (patch) | |
tree | 77d9f09e4d5df3c6f2753e77a94c47727652ec07 | |
parent | bb6a5c3685ef555ab63ee1fd39173dbdad9a2a13 (diff) | |
parent | 5a1874e3d946002c21af9ed315f762bfb467ef3f (diff) | |
download | scummvm-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.cpp | 15 | ||||
-rw-r--r-- | common/savefile.h | 8 |
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. |