diff options
author | Eugene Sandulenko | 2010-08-16 13:00:41 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-08-16 13:00:41 +0000 |
commit | bfabe2af97a72ac701644538baa661867dafeeec (patch) | |
tree | 0865015c53349e226b404aadb35c33176bf6c2cf | |
parent | e26da1a6349ae6f46ec98d1557983594e9389612 (diff) | |
download | scummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.tar.gz scummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.tar.bz2 scummvm-rg350-bfabe2af97a72ac701644538baa661867dafeeec.zip |
OSYSTEM: Fix file archive for non-flat directories
svn-id: r52120
-rw-r--r-- | common/fs.cpp | 12 |
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; } |