mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-14 09:14:14 +02:00
d7ac633043
First stage of the zipped project file discussed in #1440 (and #865): the zip itself, nothing reads or writes a project with it yet. miniz 3.1.2 (MIT, one .c and one .h, no zlib) is bundled unmodified in sources/container/miniz, as the LZMA SDK is for .edz files, so builds need nothing new. QetZip wraps it: plain ZIP with Deflate, entries stored where asked (pictures, the mimetype entry), written through QSaveFile so a failed save keeps the previous file, without timestamps so that the same project gives the same bytes. Reading refuses unsafe or repeated entry names, encrypted entries and archives over 2 GB once unpacked. Test: tst_qetzip (round trip, same bytes twice, names refused both ways, truncated and non-zip input). A written archive also passes unzip -t and Python's zipfile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Wga9B92BNurDEtxxtCDxf
366 B
366 B
miniz 3.1.2 (https://github.com/richgel999/miniz, release asset miniz-3.1.2.zip, sha256 f0446d863f9c19926ad9483c523fdc42e42b8d4a6a431d27e09d49c79a140d9a), MIT licence (LICENSE). Unmodified. Reads and writes the zip container of a .qetz project (sources/container/qetzip.*). Built with MINIZ_NO_TIME, MINIZ_NO_STDIO and MINIZ_NO_ZLIB_COMPATIBLE_NAMES (see qetzip.h).