aboutsummaryrefslogtreecommitdiff
path: root/backends/saves/default
diff options
context:
space:
mode:
authorDavid Corrales2007-10-31 13:59:59 +0000
committerDavid Corrales2007-10-31 13:59:59 +0000
commit2ac075e5692f45b2ca3a3ceac98e3bba290a45a0 (patch)
tree3ca6f697673445a743d02aeced70e0bb604a23fd /backends/saves/default
parentb4f23c84f577d844a6ee45a22483b78469e6b56c (diff)
downloadscummvm-rg350-2ac075e5692f45b2ca3a3ceac98e3bba290a45a0.tar.gz
scummvm-rg350-2ac075e5692f45b2ca3a3ceac98e3bba290a45a0.tar.bz2
scummvm-rg350-2ac075e5692f45b2ca3a3ceac98e3bba290a45a0.zip
Removed the Common::File::removeFile() methods, and moved their implementation to the Common::DefaultSaveFileManager::removeSavefile() method, as per Marcus' appraisal and Max's approval.
svn-id: r29337
Diffstat (limited to 'backends/saves/default')
-rw-r--r--backends/saves/default/default-saves.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/backends/saves/default/default-saves.cpp b/backends/saves/default/default-saves.cpp
index d2e01b420a..b47a9e24f6 100644
--- a/backends/saves/default/default-saves.cpp
+++ b/backends/saves/default/default-saves.cpp
@@ -120,7 +120,7 @@ Common::StringList DefaultSaveFileManager::listSavefiles(const char *regex) {
Common::String search(regex);
if (savePath.lookupFile(savefiles, search, false, true)) {
- for (FSList::const_iterator file = savefiles.begin(); file != savefiles.end(); file++) {
+ for (FSList::const_iterator file = savefiles.begin(); file != savefiles.end(); ++file) {
results.push_back(file->getPath());
}
}
@@ -219,7 +219,6 @@ Common::OutSaveFile *DefaultSaveFileManager::openForSaving(const char *filename)
}
#endif
-
join_paths(filename, savePath, buf, sizeof(buf));
StdioSaveFile *sf = new StdioSaveFile(buf, true);
@@ -235,10 +234,18 @@ Common::OutSaveFile *DefaultSaveFileManager::openForSaving(const char *filename)
bool DefaultSaveFileManager::removeSavefile(const char *filename) {
char buf[256];
join_paths(filename, getSavePath(), buf, sizeof(buf));
-
- Common::File file;
- FilesystemNode savePath((const char *)buf);
- return file.removeFile(savePath);
+
+ if (remove(buf) != 0) {
+ if (errno == EACCES)
+ setError(SFM_DIR_ACCESS, Common::String("Search or write permission denied"));
+
+ if (errno == ENOENT)
+ setError(SFM_DIR_NOENT, Common::String("A component of the path path does not exist, or the path is an empty string"));
+
+ return false;
+ } else {
+ return true;
+ }
}
#endif // !defined(DISABLE_DEFAULT_SAVEFILEMANAGER)