int zip_file_set_encryption(struct zip *archive, zip_uint64_t idx, zip_uint16_t method, const char *password);
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);
Register callback; will be called from zip_close()
after each file has been processed.
typedef void (*zip_progress_callback_t)(double); void zip_register_progress_callback(zip_t *, zip_progress_callback_t);
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)Winzip AES support
xz support
consistently use _zip_crypto_clear()
for passwords
implement compression flags for zip_set_file_compression()
support setting extra fields from zip_source
ZIP_SOURCE_EXTRA_FIELDS
delete all extra fields during zip_replace()
function to copy file from one archive to another
set O_CLOEXEC
flag after fopen and mkstemp
add append-only mode writing file to disk incrementally to keep memory usage low
zip_file_set_mtime()
: support InfoZIP time stamps
support streaming output (creating new archive to e.g. stdout)
add functions to:
zip_commit()
(to finish changes without closing archive)
add custom compression function support
zip_fseek()
zip_source_zip()
: allow rewinding
zipcmp: add option for file content comparison
zipcmp: compare bit flags if paranoid
zipcmp: compare external attributes/opsys if paranoid
zipcmp: compare last_mod if paranoid (or with separate flag?)
consistency . for stored files, test compressed = uncompressed . data descriptor . local headers come before central dir
support for old compression methods?????
_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()
zipint.h
to own file, and include that in zipint.h
and src
zip_get_{compression,encryption}_implementation()
zip_*int*_t
internallyunchange on added file
test seek in zip_source_crc()
test cases for set_extra*
, delete_extra*
, *extra_field*
test cases for in memory archives
use gcov output to increase test coverage
merge most tools into ziptool
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
run regression tests also from CMake framework
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
read two zip entries interleaved
zip_source_file()
: don't allow write if start/len specify a part of the file
script to check if all exported symbols are marked with ZIP_EXTERN
, add to make distcheck
re-implement fix for OS X sandboxing (zip_archive_set_tempdir()
).
document: zip_source_write()
: length can't be > ZIP_INT64_MAX
document: ZIP_SOURCE_CLOSE
implementation can't return error
keep error codes in man pages in sync
document error codes in new man pages