diff options
author | Max Horn | 2006-05-01 21:06:34 +0000 |
---|---|---|
committer | Max Horn | 2006-05-01 21:06:34 +0000 |
commit | 7e3df42510a2da4de6bc41a3d41ea1f8ddbcd54f (patch) | |
tree | d4c017bb8a1ef2a446bd4a38b5fb65beee8b5ea2 /common | |
parent | cab89a6f322f5ff9f306f5d0790c836cde5bb989 (diff) | |
download | scummvm-rg350-7e3df42510a2da4de6bc41a3d41ea1f8ddbcd54f.tar.gz scummvm-rg350-7e3df42510a2da4de6bc41a3d41ea1f8ddbcd54f.tar.bz2 scummvm-rg350-7e3df42510a2da4de6bc41a3d41ea1f8ddbcd54f.zip |
Add a variant of File::addDefaultDirectory(Recursive) which takes a FilesystemNode instead of a string object
svn-id: r22265
Diffstat (limited to 'common')
-rw-r--r-- | common/file.cpp | 24 | ||||
-rw-r--r-- | common/file.h | 5 |
2 files changed, 22 insertions, 7 deletions
diff --git a/common/file.cpp b/common/file.cpp index 0fa6993148..c4baebcd37 100644 --- a/common/file.cpp +++ b/common/file.cpp @@ -107,13 +107,29 @@ static FILE *fopenNoCase(const String &filename, const String &directory, const } void File::addDefaultDirectory(const String &directory) { - addDefaultDirectoryRecursive(directory, 1); + FilesystemNode dir(directory); + addDefaultDirectoryRecursive(dir, 1); } void File::addDefaultDirectoryRecursive(const String &directory, int level) { + FilesystemNode dir(directory); + addDefaultDirectoryRecursive(dir, level); +} + +void File::addDefaultDirectory(const FilesystemNode &directory) { + addDefaultDirectoryRecursive(directory, 1); +} + +void File::addDefaultDirectoryRecursive(const FilesystemNode &dir, int level) { if (level <= 0) return; + // Abort if this isn't a directory! + if (!dir.isDirectory()) + return; + + const String &directory(dir.path()); + if (!_defaultDirectories) _defaultDirectories = new StringIntMap; @@ -122,12 +138,6 @@ void File::addDefaultDirectoryRecursive(const String &directory, int level) { if (_defaultDirectories->contains(directory) && (*_defaultDirectories)[directory] >= level) return; - FilesystemNode dir(directory.c_str()); - - // ... and abort if this isn't a directory! - if (!dir.isDirectory()) - return; - (*_defaultDirectories)[directory] = level; if (!_filesMap) diff --git a/common/file.h b/common/file.h index 76bee32024..fd90437ef2 100644 --- a/common/file.h +++ b/common/file.h @@ -54,7 +54,12 @@ public: static void addDefaultDirectory(const String &directory); static void addDefaultDirectoryRecursive(const String &directory, int level = 4); + + static void addDefaultDirectory(const FilesystemNode &directory); + static void addDefaultDirectoryRecursive(const FilesystemNode &directory, int level = 4); + static void resetDefaultDirectories(); + File(); virtual ~File(); |