blob: b155d3922b048ceea5a71ffe6451991919179ae9 [file] [log] [blame]
* libzip API changes
This file describes changes in the libzip API and how to adapt your
code for them.
You can define ZIP_DISABLE_DEPRECATED before including <zip.h> to hide
prototypes for deprecated functions, to find out about functions that
might be removed at some point.
* 0.11
** new type zip_flags_t
The functions which have flags now use the zip_flags_t type for this.
All old flags fit; you need code only to adapt if you were saving flags in a
local variable. Use zip_flags_t for such a variable.
This affects:
zip_fopen()
zip_fopen_encrypted()
zip_fopen_index()
zip_fopen_index_encrypted()
zip_get_archive_comment()
zip_get_archive_flag()
zip_get_num_entries()
zip_get_name()
zip_name_locate()
zip_set_archive_flag()
zip_source_zip()
zip_stat()
zip_stat_index()
*** ZIP_FL_*, ZIP_AFL_*, ZIP_STAT_* are now unsigned constants
To match the new zip_flags_t type.
*** zip_add(), zip_add_dir()
These functions were replaced with zip_file_add() and zip_dir_add(), respectively,
to add a flags argument.
*** zip_rename(), zip_replace()
These functions were replaced with zip_file_rename() and zip_file_replace(),
respectively, to add a flags argument.
*** zip_get_file_comment()
This function was replaced with zip_file_get_comment(); one argument was promoted from
int to zip_uint32_t, the other is now a zip_flags_t.
*** zip_set_file_comment()
This function was replaced with zip_file_set_comment(); an argument was promoted from
int to zip_uint16_t, and a zip_flags_t argument was added.
** integer type size changes
Some argument and return values were not the right size or sign.
*** zip_name_locate()
The return value was int, which can be too small. The function now returns zip_int64_t.
*** zip_get_num_entries()
The return type is now signed, to allow signaling errors.
*** zip_set_archive_comment()
The last argument changed from int to zip_uint16_t.
** extra field handling rewritten
The zip_get_file_extra() and zip_set_file_extra() functions were removed.
They only worked on the whole extra field set.
Instead, you can now set, get, count, and delete each extra field separately,
using the functions:
zip_file_extra_field_delete()
zip_file_extra_field_delete_by_id()
zip_file_extra_field_get()
zip_file_extra_field_get_by_id()
zip_file_extra_fields_count()
zip_file_extra_fields_count_by_id()
zip_file_extra_field_set()
Please read the corresponding man pages for details.
** new functions
*** zip_discard()
The new zip_discard() function closes an archive without committing the
scheduled changes.
*** zip_set_file_compression()
The new zip_set_file_compression() function allows setting compression
levels for files.
** argument changes
*** file names
File names arguments are now allowed to be NULL to have an empty file name.
This mostly affects zip_file_add(), zip_dir_add(), and zip_file_rename().
For zip_get_name(), zip_file_get_comment(), and zip_get_archive_comment(), if
the file name or comment is empty, a string of length 0 is returned.
NULL is returned for errors only.
Previously, NULL was returned for empty/unset file names and comments and
errors, leaving no way to differentiate between the two.
/* Local Variables: */
/* mode: org */
/* End: */