[Scummvm-cvs-logs] SF.net SVN: scummvm: [29433] scummvm/trunk
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Tue Nov 6 11:52:48 CET 2007
Revision: 29433
http://scummvm.svn.sourceforge.net/scummvm/?rev=29433&view=rev
Author: fingolfin
Date: 2007-11-06 02:52:47 -0800 (Tue, 06 Nov 2007)
Log Message:
-----------
Patch #1825132: SAVEFILEMAN: renameSavefile implementation
Modified Paths:
--------------
scummvm/trunk/backends/saves/savefile.cpp
scummvm/trunk/common/savefile.h
Modified: scummvm/trunk/backends/saves/savefile.cpp
===================================================================
--- scummvm/trunk/backends/saves/savefile.cpp 2007-11-06 10:37:27 UTC (rev 29432)
+++ scummvm/trunk/backends/saves/savefile.cpp 2007-11-06 10:52:47 UTC (rev 29433)
@@ -32,6 +32,42 @@
namespace Common {
+bool SaveFileManager::renameSavefile(const char *oldFilename, const char *newFilename) {
+
+ InSaveFile *inFile = 0;
+ OutSaveFile *outFile = 0;
+ uint32 size = 0;
+ void *buffer = 0;
+ bool success = false;
+
+ inFile = openForLoading(oldFilename);
+
+ if (inFile) {
+ size = inFile->size();
+ buffer = malloc(size);
+ assert(buffer);
+
+ outFile = openForSaving(newFilename);
+
+ if (buffer && outFile) {
+ inFile->read(buffer, size);
+ if (!inFile->ioFailed()) {
+ outFile->write(buffer, size);
+ outFile->finalize();
+ if (!outFile->ioFailed()) {
+ success = removeSavefile(oldFilename);
+ }
+ }
+ }
+
+ free(buffer);
+ delete outFile;
+ delete inFile;
+ }
+
+ return success;
+}
+
const char *SaveFileManager::getSavePath() const {
#if defined(PALMOS_MODE) || defined(__PSP__)
Modified: scummvm/trunk/common/savefile.h
===================================================================
--- scummvm/trunk/common/savefile.h 2007-11-06 10:37:27 UTC (rev 29432)
+++ scummvm/trunk/common/savefile.h 2007-11-06 10:52:47 UTC (rev 29433)
@@ -132,6 +132,14 @@
virtual bool removeSavefile(const char *filename) = 0;
/**
+ * Renames the given savefile.
+ * @param oldFilename Old filename.
+ * @param newFilename New filename.
+ * @return true if no error ocurred. false otherwise.
+ */
+ virtual bool renameSavefile(const char *oldFilename, const char *newFilename);
+
+ /**
* Request a list of available savegames with a given regex.
* @param regex Regular expression to match. Wildcards like * or ? are available.
* returns a list of strings for all present file names.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list