Update TODOs/FIXMEs and note outstanding API issues. --HG-- branch : HEAD
diff --git a/TODO b/TODO index 605f867..9e3d785 100644 --- a/TODO +++ b/TODO
@@ -28,23 +28,23 @@ . read/set ASCII file flag - [test] rename deleted (fails) - [test] rename file to dir/ and vice versa (fails) +------------------------------------------------ API issues +* character encoding in file names and comments +* pop source from stack (needed to handle failures in zip_close) +* parameters for compression/crypt implementations + ZIP_CM_DEFLATE/ZIP_CM_BZIP2: compression level + memlevel? +* compression/crypt implementations: how to set error code on failure ------------------------------------------------ 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); +int zip_set_compression(struct zip *archive, zip_uint64_t idx, + zip_uint64_t method); +int zip_set_encryption(struct zip *archive, zip_uint64_t idx, + zip_uint16_t method, const char *password); +void zip_set_archive_encryption(struct zip *archive, + zip_uint16_t 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);
diff --git a/lib/zip_source_crc.c b/lib/zip_source_crc.c index 0b0634c..dddd75e 100644 --- a/lib/zip_source_crc.c +++ b/lib/zip_source_crc.c
@@ -120,7 +120,8 @@ st = (struct zip_stat *)data; if (ctx->eof) { - /* XXX: error if mismatch with what src provided? */ + /* XXX: Set comp_size, comp_method, encryption_method? + After all, this only works for uncompressed data. */ st->size = ctx->size; st->crc = ctx->crc; st->valid |= ZIP_STAT_SIZE|ZIP_STAT_CRC;