aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}