aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMax Horn2006-05-13 18:14:23 +0000
committerMax Horn2006-05-13 18:14:23 +0000
commit4743820e30f3d69f117fe227a22b44515e3be526 (patch)
tree942de194ad50871dd7857ec6347a821fa089e159 /common
parentb19456536b64507780a154768557d0bd35109ecf (diff)
downloadscummvm-rg350-4743820e30f3d69f117fe227a22b44515e3be526.tar.gz
scummvm-rg350-4743820e30f3d69f117fe227a22b44515e3be526.tar.bz2
scummvm-rg350-4743820e30f3d69f117fe227a22b44515e3be526.zip
Fix for bug #1483213
svn-id: r22461
Diffstat (limited to 'common')
-rw-r--r--common/file.cpp14
-rw-r--r--common/file.h4
2 files changed, 10 insertions, 8 deletions
diff --git a/common/file.cpp b/common/file.cpp
index cb9836294b..9b691dc1b3 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -111,16 +111,16 @@ void File::addDefaultDirectory(const String &directory) {
addDefaultDirectoryRecursive(dir, 1);
}
-void File::addDefaultDirectoryRecursive(const String &directory, int level) {
+void File::addDefaultDirectoryRecursive(const String &directory, int level, const String &prefix) {
FilesystemNode dir(directory);
- addDefaultDirectoryRecursive(dir, level);
+ addDefaultDirectoryRecursive(dir, level, prefix);
}
void File::addDefaultDirectory(const FilesystemNode &directory) {
addDefaultDirectoryRecursive(directory, 1);
}
-void File::addDefaultDirectoryRecursive(const FilesystemNode &dir, int level) {
+void File::addDefaultDirectoryRecursive(const FilesystemNode &dir, int level, const String &prefix) {
if (level <= 0)
return;
@@ -146,12 +146,14 @@ void File::addDefaultDirectoryRecursive(const FilesystemNode &dir, int level) {
for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
if (file->isDirectory()) {
- addDefaultDirectoryRecursive(file->path(), level - 1);
+ addDefaultDirectoryRecursive(file->path(), level - 1, prefix + file->displayName() + "/");
} else {
- String lfn = file->displayName();
+ String lfn(prefix);
+ lfn += file->displayName();
lfn.toLowercase();
- if (!_filesMap->contains(lfn))
+ if (!_filesMap->contains(lfn)) {
(*_filesMap)[lfn] = file->path();
+ }
}
}
}
diff --git a/common/file.h b/common/file.h
index fd90437ef2..ef27a18b33 100644
--- a/common/file.h
+++ b/common/file.h
@@ -53,10 +53,10 @@ public:
};
static void addDefaultDirectory(const String &directory);
- static void addDefaultDirectoryRecursive(const String &directory, int level = 4);
+ static void addDefaultDirectoryRecursive(const String &directory, int level = 4, const String &prefix = "");
static void addDefaultDirectory(const FilesystemNode &directory);
- static void addDefaultDirectoryRecursive(const FilesystemNode &directory, int level = 4);
+ static void addDefaultDirectoryRecursive(const FilesystemNode &directory, int level = 4, const String &prefix = "");
static void resetDefaultDirectories();