diff options
author | Johannes Schickel | 2016-03-16 21:35:01 +0100 |
---|---|---|
committer | Johannes Schickel | 2016-03-16 21:35:01 +0100 |
commit | 10d4d306281819f6b343eea234f5e59b5b641823 (patch) | |
tree | 0a6b89301f6bf819d289356f66001cdf26e3e4e6 /backends/platform | |
parent | b5b88ffb229663a648de332994c1008bb65a87f7 (diff) | |
parent | 12046ea0d7ac9723ee9ae9047fbb39ccbbb17a1b (diff) | |
download | scummvm-rg350-10d4d306281819f6b343eea234f5e59b5b641823.tar.gz scummvm-rg350-10d4d306281819f6b343eea234f5e59b5b641823.tar.bz2 scummvm-rg350-10d4d306281819f6b343eea234f5e59b5b641823.zip |
Merge pull request #682 from lordhoto/savefilemanager-case-insensitive
ALL: Make SaveFileManager case insensitive.
Diffstat (limited to 'backends/platform')
-rw-r--r-- | backends/platform/tizen/system.cpp | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/backends/platform/tizen/system.cpp b/backends/platform/tizen/system.cpp index a235456670..1820a28791 100644 --- a/backends/platform/tizen/system.cpp +++ b/backends/platform/tizen/system.cpp @@ -81,36 +81,41 @@ struct TizenSaveFileManager : public DefaultSaveFileManager { }; bool TizenSaveFileManager::removeSavefile(const Common::String &filename) { - Common::String savePathName = getSavePath(); + // Assure the savefile name cache is up-to-date. + assureCached(getSavePath()); + if (getError().getCode() != Common::kNoError) + return false; - checkPath(Common::FSNode(savePathName)); - if (getError().getCode() != Common::kNoError) { + // Obtain node if exists. + SaveFileCache::const_iterator file = _saveFileCache.find(filename); + if (file == _saveFileCache.end()) { return false; - } + } else { + const Common::FSNode fileNode = file->_value; + // Remove from cache, this invalidates the 'file' iterator. + _saveFileCache.erase(file); + file = _saveFileCache.end(); - // recreate FSNode since checkPath may have changed/created the directory - Common::FSNode savePath(savePathName); - Common::FSNode file = savePath.getChild(filename); + String unicodeFileName; + StringUtil::Utf8ToString(fileNode.getPath().c_str(), unicodeFileName); - String unicodeFileName; - StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName); + switch (Tizen::Io::File::Remove(unicodeFileName)) { + case E_SUCCESS: + return true; - switch (Tizen::Io::File::Remove(unicodeFileName)) { - case E_SUCCESS: - return true; + case E_ILLEGAL_ACCESS: + setError(Common::kWritePermissionDenied, "Search or write permission denied: " + + file.getName()); + break; - case E_ILLEGAL_ACCESS: - setError(Common::kWritePermissionDenied, "Search or write permission denied: " + - file.getName()); - break; + default: + setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() + + "' does not exist or path is invalid"); + break; + } - default: - setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() + - "' does not exist or path is invalid"); - break; + return false; } - - return false; } // |