diff options
-rw-r--r-- | common/unzip.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/common/unzip.cpp b/common/unzip.cpp index bdba2a544a..24744203da 100644 --- a/common/unzip.cpp +++ b/common/unzip.cpp @@ -1395,19 +1395,20 @@ bool ZipArchive::hasFile(const Common::String &name) { int ZipArchive::getAllNames(Common::StringList &list) { if (!_zipFile) return 0; - + if (unzGoToFirstFile(_zipFile) != UNZ_OK) return 0; char fileNameBuffer[UNZ_MAXFILENAMEINZIP + 1]; - list.clear(); - + int fileCount = 0; + do { unzGetCurrentFileInfo(_zipFile, 0, fileNameBuffer, UNZ_MAXFILENAMEINZIP + 1, 0, 0, 0, 0); list.push_back(Common::String(fileNameBuffer)); + fileCount++; } while (unzGoToNextFile(_zipFile) == UNZ_OK); - - return list.size(); + + return fileCount; } /* |