diff options
Diffstat (limited to 'common/file.cpp')
-rw-r--r-- | common/file.cpp | 24 |
1 files changed, 17 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) |