From 10b679ec7b1cd5df80b5006b61656c0f3007dcbb Mon Sep 17 00:00:00 2001 From: Macoy Madson Date: Sat, 5 Mar 2022 11:51:13 -0500 Subject: [PATCH] Test zip decompression --- ReadMe.org | 1 + src/Compression.cake | 23 +++++++++++++++++++++++ test/test.zip | Bin 0 -> 756 bytes 3 files changed, 24 insertions(+) create mode 100644 test/test.zip diff --git a/ReadMe.org b/ReadMe.org index 51edd7f..d3a9db3 100644 --- a/ReadMe.org +++ b/ReadMe.org @@ -109,6 +109,7 @@ Here are the known compatibility results, where blank means untested/unknown: | ImGui.cake | Yes | No[1] | Yes | | | ImGuiSDLOpenGL.cpp | Yes | No[1] | Yes | | | Introspection.cake | Yes | Yes | Yes | Yes | +| Licenses.cake | Yes | Yes | Yes | Yes | | Math.cake | Yes | Yes | Yes | Yes | | Ogre.cake | Yes | | | | | OgreInitialize.cake | Yes | | | | diff --git a/src/Compression.cake b/src/Compression.cake index 9501b19..d505051 100644 --- a/src/Compression.cake +++ b/src/Compression.cake @@ -11,6 +11,29 @@ (c-import "" "miniz.h") (defun test--compression (&return int) (fprintf stderr "miniz version %s\n" (mz_version)) + (var zip-filename (* (const char)) "test.zip") + + (var archive mz_zip_archive) + (mz_zip_zero_struct (addr archive)) + + (unless (mz_zip_reader_init_file (addr archive) zip-filename 0) + (fprintf stderr "error: failed to open %s\n" zip-filename) + (return 1)) + + (var num-files (unsigned int) (mz_zip_reader_get_num_files (addr archive))) + (fprintf stderr "Archive has %d files\n" num-files) + (var filename-buffer ([] 1024 char) (array 0)) + (var output-filename-buffer ([] 2048 char) (array 0)) + (each-in-range num-files i + (mz_zip_reader_get_filename (addr archive) i filename-buffer (sizeof filename-buffer)) + (sprintf output-filename-buffer "%s" filename-buffer) + (unless (mz_zip_reader_extract_to_file (addr archive) i output-filename-buffer 0) + (fprintf stderr "Failed to extract %s to %s\n" filename-buffer output-filename-buffer) + (mz_zip_reader_end (addr archive)) + (return 1)) + (fprintf stderr "Extracted %s to %s\n" filename-buffer output-filename-buffer)) + + (mz_zip_reader_end (addr archive)) (return 0)))) (add-c-search-directory-module "Dependencies/miniz" diff --git a/test/test.zip b/test/test.zip new file mode 100644 index 0000000000000000000000000000000000000000..c56e8685c1bacf98ccdee30f23271b5df14b0128 GIT binary patch literal 756 zcmWIWW@Zs#U|`^2(27e9xssN3=RJ`3mXU!$j6sGWB(=CCIJGDx_ia zIj=|A>D z;m(_;(^-FuZslH;f6Jmy{CPREmS?7_IB)ii&KVzd*4dSOTN?RLf1~jHAcwDqr+s%R zw^cXsDcz>DHPNSaLb82VGfR8;!PGm+#wk73zs?8vS)T4bnLW>BCgZMk!g)U%R&Qf@ z_h5qclVt{3)ojweE6wWz;K9c+J0+wqf76L(VDN1P2A={n_*^oROEUBG5{oKv1mya) zN=YD$9+2m~xqt!L@Nn<)8L2T5HAf}#g`+Z;tZYnRx@Whfbz?w@*x>^;v-el0f8+Sh z^6pk*@8xL=fA75e=&|wH96rOw2lwSa8^-RRe*OUGj^wB^{y)d;olnXOb!=Iq-FfQO zuAmhyCZ)@`jklevN(nMy@=2^+oS>1DqY{zgWh!*+5S!0}DRTn68JXmmaitCkphp=P zfIel|(g