+ [bug] check/cleanup flags bit 3 (streaming) support . [cleanup] remove now useless check of fseek * [consistency check] check that local headers come before central dir * [bug] zip_open: consistency check: check data descriptor * [bug] do not compress if storing is smaller * [bug] zip_open: check whether file can be created and fail if not * [bug] check for limits imposed by format (central dir size, file size, ...) - [feature] handle zip_open/zip_close "race" for new files - [feature] support streaming output (creating new archive to e.g. stdout) - [feature] add functions to: . set compression method for new/changed entry . set last modification time for entry . read/set EAs . parse/create some EAs? . read/set ASCII file flag ------------------------------------------------ API ideas struct zip *zip_open_encrypted(const char *path, int flags, const char *password, int *errorp); void zip_set_default_password(struct zip *archive, const char *password); (NULL for unsetting) struct zip_file *zip_fopen_encrypted(struct zip *archive, const char *fname, int flags, const char *password); struct zip_file *zip_fopen_index_encrypted(struct zip *archive, int index, int flags, const char *password); int zip_set_encryption(struct zip *archive, int idx, int method, const char *password); void zip_set_archive_encryption(struct zip *archive, int encryption_method, const char *password); struct zip_source *zip_source_writable(struct zip *archive); zip_source_write(struct zip_source *, const void *data, size_t len); zip_source_printf(struct zip_source *, const char *fmt, ...); /* maybe zip_source_vprintf(struct zip_source *, const char *fmt, va_list ap); */ ------------------------------------------------ others * regression tests (duplicate file names, unchange, .{200}) * zip_commit * zip_replace_zip: allow rewinding * API for extracting and setting extra fields * zipcmp: add option for file content comparison * support for zip64 (large file) * append to files (for self-extracting files) * add custom compression function support * zip_replace_zip: remember compression method, recompress if different speced * close even if error... * support for old compression methods????? ------------------------------------------------ regression tests * (add, replace) add to empty zip add to existing zip add w/ existing file name [E] replace ok replace w/ illegal index [E] replace w/ deleted name [E] unchange added/replaced file * (close) copy zip file open copy rename, delete, replace, add w/ new name, add w/ deleted name close zipcmp copy expected remove copy * (delete) * (error_get) * (error_get_sys_type) * (error_to_str) * (file_error_get) * (file_strerror) * (fopen_index) illegal index * (get_name) * (get_num_files) * (rename) * (replace) * (source_buffer) * (source_file) * (source_filep) * (source_free) * (source_function) * (source_zip) * (stat) * (stat_index) * (strerror) * (unchange) * (unchange_all)