From 7e3df42510a2da4de6bc41a3d41ea1f8ddbcd54f Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 1 May 2006 21:06:34 +0000 Subject: Add a variant of File::addDefaultDirectory(Recursive) which takes a FilesystemNode instead of a string object svn-id: r22265 --- common/file.cpp | 24 +++++++++++++++++------- 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(); -- cgit v1.2.3