aboutsummaryrefslogtreecommitdiff
path: root/common/file.cpp
diff options
context:
space:
mode:
authorMax Horn2006-05-03 20:43:26 +0000
committerMax Horn2006-05-03 20:43:26 +0000
commitd016c353c5f2f87278e244ec6418c87d681925b1 (patch)
tree33040b385072a3611ce4bc76079ee68128a76a53 /common/file.cpp
parent1902673ece88d54ae5ae6b51ef63da6b07477bba (diff)
downloadscummvm-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.cpp13
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);