Support extended timestamp extra field (0x5455): mtime overrides dos mtime from dirent, function to get/set all three.
reconsider zip_source_zip (uncompressed data for whole file not easy to get)
For example for adding extractors for self-extracting zip archives.
zip_set_archive_prefix(struct zip *za, const zip_uint8_t *data, zip_uint64_t length); const zip_uint8_t *zip_get_archive_prefix(struct zip *za, zip_uint64_t *lengthp);
zip_get_archive_comment has int *lenp argument. Cleaner would be zip_uint32_t *. rename and fix. which other functions for naming consistency?zip_XXX_{file,archive}_* to zip_{file,archive}_XXX_*?ZIP_ER_ZLIB (no detailed info passing)ZIP_FL_SUPPORT_MULTIPLE_OPENS and allow zip_fopen (perhaps other functions) on added/replaced files with such sources_zip_crypto_clear() for passwordszip_sourcezip_sourceZIP_SOURCE_EXTRA_FIELDSzip_replace()O_CLOEXEC flag after fopen and mkstempzip_file_set_mtime(): support InfoZIP time stampszip_commit() (to finish changes without closing archive)zip_source_zip(): allow rewindingzipcmp: add option for file content comparisonzipcmp: add more paranoid checks:_zip_u2d_time(): handle localtime(3) failurezip_open(): check whether file can be created and fail if notcdr == NULL -> ER_NOENT vs. idx > cdir->nentry -> ER_INVAL inconsistent (still there?)ZIP_SOURCE_SUPPORTS_{READABLE,SEEKABLE,WRITABLE}zip_source_seek_compute_offset()zip_get_{compression,encryption}_implementation()zip_*int*_t internallyzip_source_file(): don't allow write if start/len specify a part of the filezip_source_write(): length can't be > ZIP_INT64_MAXZIP_SOURCE_CLOSE implementation can't return error<dl>)make_zip_errors.sh in cmakeZIP_EXTERN, add to make distcheckadd test cases for all ZIP_INCONS detail errors
incons-local-filename-short.zzip doesn't test short filename, since extra fields fail to parse.
test error cases with special source
zip_add and zip_open_from_sourceziptool_regress:-e error_spec: source containing zip fails depending on error_specadd_with_error name content error_spec: add content to archive, where source fails depending on error_specadd_file_with_error name file_to_add offset len error_spec: add file to archive, len bytes starting from offset, where source fails depending on error_specerror_spec:test for zipcmp reading directory (requires fts)
add test case for clone with files > 4k
consider testing for malloc/realloc failures
Winzip AES support
add test cases for lots of files (including too many)
add test cases for holes (between files, between files and cdir, between cdir and eocd, + zip64 where appropriate)
test seek in zip_source_crc_create()
test cases for set_extra*, delete_extra*, *extra_field*
test cases for in memory archives
use gcov output to increase test coverage
add test case to change values for newly added files (name, compression method, comment, mtime, . . .)
zip_open() file less than EOCDLEN bytes long
test calls against old API
rename file to dir/ and vice versa (fails)
fix comment test to be newline insensitive
check if http://bugs.python.org/issue20078 provides ideas for new tests
(add, replace)
(close)
(`error_get)
(error_get_sys_type)
(error_to_str)
(extra_fields)
(file_error_get)
(file_strerror)
(replace)
(source_buffer)
(source_file)
(source_filep)
(source_free)
(source_function)
(source_zip)
(strerror)
(unchange)
(unchange_all)
open(ZIP_RDONLY)
I/O abstraction layer
zip_open_from_sourceread two zip entries interleaved