aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-07-22 22:30:24 +0200
committerEinar Johan Trøan Sømåen2012-07-22 22:30:24 +0200
commit803c4215534bdbdc545c8aa32418444e27d607f5 (patch)
treeeff457e9d01e1e767a861f627adaffc192bb1db7 /engines
parent4c3421288d2d74396579f35b25a7b78e14afa7f4 (diff)
downloadscummvm-rg350-803c4215534bdbdc545c8aa32418444e27d607f5.tar.gz
scummvm-rg350-803c4215534bdbdc545c8aa32418444e27d607f5.tar.bz2
scummvm-rg350-803c4215534bdbdc545c8aa32418444e27d607f5.zip
WINTERMUTE: Fix a few issues in PathUtil, mainly getFileNameWithoutExtension was off by one
Diffstat (limited to 'engines')
-rw-r--r--engines/wintermute/utils/path_util.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/engines/wintermute/utils/path_util.cpp b/engines/wintermute/utils/path_util.cpp
index 6b6b2d6b96..6812d824df 100644
--- a/engines/wintermute/utils/path_util.cpp
+++ b/engines/wintermute/utils/path_util.cpp
@@ -37,10 +37,11 @@ namespace WinterMute {
AnsiString PathUtil::unifySeparators(const AnsiString &path) {
AnsiString newPath = path;
- AnsiString::iterator it;
- for (it = newPath.begin(); it != newPath.end(); it++) {
- if (*it == '\\') *it = '/';
+ for (uint32 i = 0; i < newPath.size(); i++) {
+ if (newPath[i] == '\\')
+ newPath.setChar('/', i);
}
+
return newPath;
}
@@ -78,7 +79,7 @@ AnsiString PathUtil::getFileName(const AnsiString &path) {
AnsiString newPath = unifySeparators(path);
//size_t pos = newPath.find_last_of(L'/'); TODO REMOVE.
- Common::String lastPart = Common::lastPathComponent(path, '/');
+ Common::String lastPart = Common::lastPathComponent(newPath, '/');
if (lastPart[lastPart.size() - 1 ] != '/')
return lastPart;
else
@@ -93,9 +94,12 @@ AnsiString PathUtil::getFileNameWithoutExtension(const AnsiString &path) {
//size_t pos = fileName.find_last_of('.'); //TODO REMOVE!
// TODO: Prettify this.
- Common::String extension = Common::lastPathComponent(path, '.');
- Common::String filename = Common::String(path.c_str(), path.size() - extension.size());
- return filename;
+ AnsiString extension = Common::lastPathComponent(fileName, '.');
+ for (int i = 0; i < extension.size() + 1; i++) {
+ fileName.deleteLastChar();
+ }
+// Common::String filename = Common::String(fileName.c_str(), fileName.size() - extension.size() + 1);
+ return fileName;
//if (pos == AnsiString::npos) return fileName;
//else return fileName.substr(0, pos);
}