diff options
author | Max Horn | 2006-05-13 18:14:23 +0000 |
---|---|---|
committer | Max Horn | 2006-05-13 18:14:23 +0000 |
commit | 4743820e30f3d69f117fe227a22b44515e3be526 (patch) | |
tree | 942de194ad50871dd7857ec6347a821fa089e159 /common | |
parent | b19456536b64507780a154768557d0bd35109ecf (diff) | |
download | scummvm-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.cpp | 14 | ||||
-rw-r--r-- | common/file.h | 4 |
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(); |