diff options
author | Max Horn | 2006-05-03 20:43:26 +0000 |
---|---|---|
committer | Max Horn | 2006-05-03 20:43:26 +0000 |
commit | d016c353c5f2f87278e244ec6418c87d681925b1 (patch) | |
tree | 33040b385072a3611ce4bc76079ee68128a76a53 /common/file.cpp | |
parent | 1902673ece88d54ae5ae6b51ef63da6b07477bba (diff) | |
download | scummvm-rg350-d016c353c5f2f87278e244ec6418c87d681925b1.tar.gz scummvm-rg350-d016c353c5f2f87278e244ec6418c87d681925b1.tar.bz2 scummvm-rg350-d016c353c5f2f87278e244ec6418c87d681925b1.zip |
Changed FilesystemNode::listDir to return a bool indicating its success (or failure)
svn-id: r22315
Diffstat (limited to 'common/file.cpp')
-rw-r--r-- | common/file.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/common/file.cpp b/common/file.cpp index c4baebcd37..b662ab9c44 100644 --- a/common/file.cpp +++ b/common/file.cpp @@ -124,27 +124,26 @@ void File::addDefaultDirectoryRecursive(const FilesystemNode &dir, int level) { if (level <= 0) return; - // Abort if this isn't a directory! - if (!dir.isDirectory()) + FSList fslist; + if (!dir.listDir(fslist, FilesystemNode::kListAll)) { + // Failed listing the contents of this node, so it is either not a + // directory, or just doesn't exist at all. return; - - const String &directory(dir.path()); + } if (!_defaultDirectories) _defaultDirectories = new StringIntMap; // Do not add directories multiple times, unless this time they are added // with a bigger depth. + const String &directory(dir.path()); if (_defaultDirectories->contains(directory) && (*_defaultDirectories)[directory] >= level) return; - (*_defaultDirectories)[directory] = level; if (!_filesMap) _filesMap = new FilesMap; - const FSList fslist(dir.listDir(FilesystemNode::kListAll)); - for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) { if (file->isDirectory()) { addDefaultDirectoryRecursive(file->path(), level - 1); |