Index: third_party/zlib/contrib/minizip/zip.h |
=================================================================== |
--- third_party/zlib/contrib/minizip/zip.h (revision 113739) |
+++ third_party/zlib/contrib/minizip/zip.h (working copy) |
@@ -1,20 +1,16 @@ |
-/* zip.h -- IO for compress .zip files using zlib |
- Version 1.01e, February 12th, 2005 |
+/* zip.h -- IO on .zip files using zlib |
+ Version 1.1, February 14h, 2010 |
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) |
- Copyright (C) 1998-2005 Gilles Vollant |
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) |
- This unzip package allow creates .ZIP file, compatible with PKZip 2.04g |
- WinZip, InfoZip tools and compatible. |
- Multi volume ZipFile (span) are not supported. |
- Encryption compatible with pkzip 2.04g only supported |
- Old compressions used by old PKZip 1.x are not supported |
+ Modifications for Zip64 support |
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) |
- For uncompress .zip file, look at unzip.h |
+ For more info read MiniZip_info.txt |
+ --------------------------------------------------------------------------- |
- I WAIT FEEDBACK at mail info@winimage.com |
- Visit also http://www.winimage.com/zLibDll/unzip.html for evolution |
- |
Condition of use and distribution are the same than zlib : |
This software is provided 'as-is', without any express or implied |
@@ -33,33 +29,41 @@ |
misrepresented as being the original software. |
3. This notice may not be removed or altered from any source distribution. |
+ --------------------------------------------------------------------------- |
-*/ |
+ Changes |
-/* for more info about .ZIP format, see |
- http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip |
- http://www.info-zip.org/pub/infozip/doc/ |
- PkWare has also a specification at : |
- ftp://ftp.pkware.com/probdesc.zip |
+ See header of zip.h |
+ |
*/ |
-#ifndef _zip_H |
-#define _zip_H |
+#ifndef _zip12_H |
+#define _zip12_H |
#ifdef __cplusplus |
extern "C" { |
#endif |
+//#define HAVE_BZIP2 |
+ |
+#ifndef _ZLIB_H |
#if defined(USE_SYSTEM_ZLIB) |
#include <zlib.h> |
#else |
#include "third_party/zlib/zlib.h" |
#endif |
+#endif |
#ifndef _ZLIBIOAPI_H |
#include "ioapi.h" |
#endif |
+#ifdef HAVE_BZIP2 |
+#include "bzlib.h" |
+#endif |
+ |
+#define Z_BZIP2ED 12 |
+ |
#if defined(STRICTZIP) || defined(STRICTZIPUNZIP) |
/* like the STRICT of WIN32, we define a pointer that cannot be converted |
from (void*) without cast */ |
@@ -114,6 +118,7 @@ |
#define APPEND_STATUS_ADDINZIP (2) |
extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); |
+extern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append)); |
/* |
Create a zipfile. |
pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on |
@@ -138,6 +143,11 @@ |
zipcharpc* globalcomment, |
zlib_filefunc_def* pzlib_filefunc_def)); |
+extern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname, |
+ int append, |
+ zipcharpc* globalcomment, |
+ zlib_filefunc64_def* pzlib_filefunc_def)); |
+ |
extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, |
const char* filename, |
const zip_fileinfo* zipfi, |
@@ -148,6 +158,19 @@ |
const char* comment, |
int method, |
int level)); |
+ |
+extern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file, |
+ const char* filename, |
+ const zip_fileinfo* zipfi, |
+ const void* extrafield_local, |
+ uInt size_extrafield_local, |
+ const void* extrafield_global, |
+ uInt size_extrafield_global, |
+ const char* comment, |
+ int method, |
+ int level, |
+ int zip64)); |
+ |
/* |
Open a file in the ZIP for writing. |
filename : the filename in zip (if NULL, '-' without quote will be used |
@@ -159,6 +182,9 @@ |
if comment != NULL, comment contain the comment string |
method contain the compression method (0 for store, Z_DEFLATED for deflate) |
level contain the level of compression (can be Z_DEFAULT_COMPRESSION) |
+ zip64 is set to 1 if a zip64 extended information block should be added to the local file header. |
+ this MUST be '1' if the uncompressed size is >= 0xffffffff. |
+ |
*/ |
@@ -174,6 +200,19 @@ |
int level, |
int raw)); |
+ |
+extern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file, |
+ const char* filename, |
+ const zip_fileinfo* zipfi, |
+ const void* extrafield_local, |
+ uInt size_extrafield_local, |
+ const void* extrafield_global, |
+ uInt size_extrafield_global, |
+ const char* comment, |
+ int method, |
+ int level, |
+ int raw, |
+ int zip64)); |
/* |
Same than zipOpenNewFileInZip, except if raw=1, we write raw file |
*/ |
@@ -193,16 +232,82 @@ |
int memLevel, |
int strategy, |
const char* password, |
- uLong crcForCtypting)); |
+ uLong crcForCrypting)); |
+extern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file, |
+ const char* filename, |
+ const zip_fileinfo* zipfi, |
+ const void* extrafield_local, |
+ uInt size_extrafield_local, |
+ const void* extrafield_global, |
+ uInt size_extrafield_global, |
+ const char* comment, |
+ int method, |
+ int level, |
+ int raw, |
+ int windowBits, |
+ int memLevel, |
+ int strategy, |
+ const char* password, |
+ uLong crcForCrypting, |
+ int zip64 |
+ )); |
+ |
/* |
Same than zipOpenNewFileInZip2, except |
windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 |
password : crypting password (NULL for no crypting) |
- crcForCtypting : crc of file to compress (needed for crypting) |
+ crcForCrypting : crc of file to compress (needed for crypting) |
*/ |
+extern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file, |
+ const char* filename, |
+ const zip_fileinfo* zipfi, |
+ const void* extrafield_local, |
+ uInt size_extrafield_local, |
+ const void* extrafield_global, |
+ uInt size_extrafield_global, |
+ const char* comment, |
+ int method, |
+ int level, |
+ int raw, |
+ int windowBits, |
+ int memLevel, |
+ int strategy, |
+ const char* password, |
+ uLong crcForCrypting, |
+ uLong versionMadeBy, |
+ uLong flagBase |
+ )); |
+ |
+extern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file, |
+ const char* filename, |
+ const zip_fileinfo* zipfi, |
+ const void* extrafield_local, |
+ uInt size_extrafield_local, |
+ const void* extrafield_global, |
+ uInt size_extrafield_global, |
+ const char* comment, |
+ int method, |
+ int level, |
+ int raw, |
+ int windowBits, |
+ int memLevel, |
+ int strategy, |
+ const char* password, |
+ uLong crcForCrypting, |
+ uLong versionMadeBy, |
+ uLong flagBase, |
+ int zip64 |
+ )); |
+/* |
+ Same than zipOpenNewFileInZip4, except |
+ versionMadeBy : value for Version made by field |
+ flag : value for flag field (compression level info will be added) |
+ */ |
+ |
+ |
extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, |
const void* buf, |
unsigned len)); |
@@ -218,8 +323,13 @@ |
extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, |
uLong uncompressed_size, |
uLong crc32)); |
+ |
+extern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file, |
+ ZPOS64_T uncompressed_size, |
+ uLong crc32)); |
+ |
/* |
- Close the current file in the zipfile, for fiel opened with |
+ Close the current file in the zipfile, for file opened with |
parameter raw=1 in zipOpenNewFileInZip2 |
uncompressed_size and crc32 are value for the uncompressed size |
*/ |
@@ -230,8 +340,27 @@ |
Close the zipfile |
*/ |
+ |
+extern int ZEXPORT zipRemoveExtraInfoBlock OF((char* pData, int* dataLen, short sHeader)); |
+/* |
+ zipRemoveExtraInfoBlock - Added by Mathias Svensson |
+ |
+ Remove extra information block from a extra information data for the local file header or central directory header |
+ |
+ It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode. |
+ |
+ 0x0001 is the signature header for the ZIP64 extra information blocks |
+ |
+ usage. |
+ Remove ZIP64 Extra information from a central director extra field data |
+ zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001); |
+ |
+ Remove ZIP64 Extra information from a Local File Header extra field data |
+ zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001); |
+*/ |
+ |
#ifdef __cplusplus |
} |
#endif |
-#endif /* _zip_H */ |
+#endif /* _zip64_H */ |