0.xx [20xx/xx/xx]

* Add UTF-8 support for file names, file comments, and archive comments
* Added zip_discard()
* Added ZIP_TRUNCATE for zip_open()
* Added zip_set_compression()
* Added zip_get_file_extra()/zip_set_file_extra()
* Use gcc4's visibility __attribute__
* More changes for Windows support
* Additional test cases

0.10.1 [2012/03/20]
* Fixed CVE-2012-1162
* Fixed CVE-2012-1163

0.10 [2010/03/18]

* Added zip_get_num_files(), deprecated zip_get_num_entries().
* Better windows support.
* Support for traditional PKWARE encryption added.
* Fix opening archives with more than 65535 entries.
* Fix some memory leaks.
* Fix cmake build and installation
* Fix memory leak in error case in zip_open()
* Fixed CVE-2011-0421 (no security implications though)
* More documentation.

0.9.3 [2010/02/01]

* Include m4/ directory in distribution; some packagers need it.

0.9.2 [2010/01/31]

* Avoid passing uninitialized data to deflate().
* Fix memory leak when closing zip archives.

0.9.1 [2010/01/24]

* Fix infinite loop on reading some broken files.
* Optimization in time conversion (don't call localtime()).
* Clear data descriptor flag in central directory, fixing Open Office files.
* Allow more than 64k entries.

0.9 [2008/07/25]

* on Windows, explictly set dllimport/dllexport
* remove erroneous references to GPL
* add support for torrentzip
* new functions: zip_get_archive_flag, zip_set_archive_flag
* zip_source_zip: add flag to force recompression
* zip_sorce_file: only keep file open while reading from it

0.8 [2007/06/06]

* fix for zip archives larger than 2GiB
* fix zip_error_strerror to include libzip error string
* add support for reading streamed zip files
* new functions: zip_add_dir, zip_error_clear, zip_file_error_clear
* add basic support for building with CMake (incomplete)

0.7.1 [2006/05/18]

* bugfix for zip_close

0.7 [2006/05/06]

* struct zip_stat increased for future encryption support
* zip_add return value changed (now returns new index of added file)
* shared library major bump because of previous two
* added functions for reading and writing file and archive comments.
  New functions: zip_get_archive_comment, zip_get_file_comment,
  zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive

0.6.1 [2005/07/14]

* various bug fixes

0.6 [2005/06/09]

* first standalone release
* changed license to three-clause BSD
* overhauled API
* added man pages
* install zipcmp and zipmerge
