From 1c325fb79d1a81899ff58333eb9de9dc7844b6ff Mon Sep 17 00:00:00 2001 From: Roman Fomin Date: Sun, 26 May 2024 15:54:33 +0700 Subject: [PATCH] fix adding files in root directory of zip archives --- src/w_zip.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/w_zip.c b/src/w_zip.c index 56665f02..5ef9b7e4 100644 --- a/src/w_zip.c +++ b/src/w_zip.c @@ -134,15 +134,28 @@ static void W_ZIP_AddDir(w_handle_t handle, const char *path, mz_zip_archive_file_stat stat; mz_zip_reader_file_stat(zip, index, &stat); - if (stat.m_is_directory) - { - break; - } + boolean root_file = (strrchr(stat.m_filename, '/') == NULL); - if (root_directory && M_StringCaseEndsWith(stat.m_filename, ".wad")) + if (root_directory) { - AddWadInMem(zip, M_BaseName(stat.m_filename), index, stat.m_uncomp_size); - continue; + if (!root_file) + { + continue; + } + + if (M_StringCaseEndsWith(stat.m_filename, ".wad")) + { + AddWadInMem(zip, M_BaseName(stat.m_filename), index, + stat.m_uncomp_size); + continue; + } + } + else + { + if (stat.m_is_directory || root_file) + { + break; + } } if (W_SkipFile(stat.m_filename))