aboutsummaryrefslogtreecommitdiff
path: root/common/fs.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2010-08-16 13:00:41 +0000
committerEugene Sandulenko2010-08-16 13:00:41 +0000
commitbfabe2af97a72ac701644538baa661867dafeeec (patch)
tree0865015c53349e226b404aadb35c33176bf6c2cf /common/fs.cpp
parente26da1a6349ae6f46ec98d1557983594e9389612 (diff)
downloadscummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.tar.gz
scummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.tar.bz2
scummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.zip
OSYSTEM: Fix file archive for non-flat directories
svn-id: r52120
Diffstat (limited to 'common/fs.cpp')
-rw-r--r--common/fs.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/common/fs.cpp b/common/fs.cpp
index 87067df2cc..62ab59f96e 100644
--- a/common/fs.cpp
+++ b/common/fs.cpp
@@ -314,7 +314,11 @@ int FSDirectory::listMatchingMembers(ArchiveMemberList &list, const String &patt
NodeCache::iterator it = _fileCache.begin();
for ( ; it != _fileCache.end(); ++it) {
if (it->_key.matchString(lowercasePattern, false, true)) {
- list.push_back(ArchiveMemberPtr(new FSNode(it->_value)));
+ if (_flat)
+ list.push_back(ArchiveMemberPtr(new FSNode(it->_value)));
+ else
+ list.push_back(ArchiveMemberPtr(new FSNode(it->_key)));
+
matches++;
}
}
@@ -330,7 +334,11 @@ int FSDirectory::listMembers(ArchiveMemberList &list) {
int files = 0;
for (NodeCache::iterator it = _fileCache.begin(); it != _fileCache.end(); ++it) {
- list.push_back(ArchiveMemberPtr(new FSNode(it->_value)));
+ if (_flat)
+ list.push_back(ArchiveMemberPtr(new FSNode(it->_value)));
+ else
+ list.push_back(ArchiveMemberPtr(new FSNode(it->_key)));
+
++files;
}