1*86ee64e7SAndroid Build Coastguard Worker /* zip.h -- IO on .zip files using zlib 2*86ee64e7SAndroid Build Coastguard Worker Version 1.1, February 14h, 2010 3*86ee64e7SAndroid Build Coastguard Worker part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 4*86ee64e7SAndroid Build Coastguard Worker 5*86ee64e7SAndroid Build Coastguard Worker Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 6*86ee64e7SAndroid Build Coastguard Worker 7*86ee64e7SAndroid Build Coastguard Worker Modifications for Zip64 support 8*86ee64e7SAndroid Build Coastguard Worker Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 9*86ee64e7SAndroid Build Coastguard Worker 10*86ee64e7SAndroid Build Coastguard Worker For more info read MiniZip_info.txt 11*86ee64e7SAndroid Build Coastguard Worker 12*86ee64e7SAndroid Build Coastguard Worker --------------------------------------------------------------------------- 13*86ee64e7SAndroid Build Coastguard Worker 14*86ee64e7SAndroid Build Coastguard Worker Condition of use and distribution are the same than zlib : 15*86ee64e7SAndroid Build Coastguard Worker 16*86ee64e7SAndroid Build Coastguard Worker This software is provided 'as-is', without any express or implied 17*86ee64e7SAndroid Build Coastguard Worker warranty. In no event will the authors be held liable for any damages 18*86ee64e7SAndroid Build Coastguard Worker arising from the use of this software. 19*86ee64e7SAndroid Build Coastguard Worker 20*86ee64e7SAndroid Build Coastguard Worker Permission is granted to anyone to use this software for any purpose, 21*86ee64e7SAndroid Build Coastguard Worker including commercial applications, and to alter it and redistribute it 22*86ee64e7SAndroid Build Coastguard Worker freely, subject to the following restrictions: 23*86ee64e7SAndroid Build Coastguard Worker 24*86ee64e7SAndroid Build Coastguard Worker 1. The origin of this software must not be misrepresented; you must not 25*86ee64e7SAndroid Build Coastguard Worker claim that you wrote the original software. If you use this software 26*86ee64e7SAndroid Build Coastguard Worker in a product, an acknowledgment in the product documentation would be 27*86ee64e7SAndroid Build Coastguard Worker appreciated but is not required. 28*86ee64e7SAndroid Build Coastguard Worker 2. Altered source versions must be plainly marked as such, and must not be 29*86ee64e7SAndroid Build Coastguard Worker misrepresented as being the original software. 30*86ee64e7SAndroid Build Coastguard Worker 3. This notice may not be removed or altered from any source distribution. 31*86ee64e7SAndroid Build Coastguard Worker 32*86ee64e7SAndroid Build Coastguard Worker --------------------------------------------------------------------------- 33*86ee64e7SAndroid Build Coastguard Worker 34*86ee64e7SAndroid Build Coastguard Worker Changes 35*86ee64e7SAndroid Build Coastguard Worker 36*86ee64e7SAndroid Build Coastguard Worker See header of zip.h 37*86ee64e7SAndroid Build Coastguard Worker 38*86ee64e7SAndroid Build Coastguard Worker */ 39*86ee64e7SAndroid Build Coastguard Worker 40*86ee64e7SAndroid Build Coastguard Worker #ifndef _zip12_H 41*86ee64e7SAndroid Build Coastguard Worker #define _zip12_H 42*86ee64e7SAndroid Build Coastguard Worker 43*86ee64e7SAndroid Build Coastguard Worker #ifdef __cplusplus 44*86ee64e7SAndroid Build Coastguard Worker extern "C" { 45*86ee64e7SAndroid Build Coastguard Worker #endif 46*86ee64e7SAndroid Build Coastguard Worker 47*86ee64e7SAndroid Build Coastguard Worker //#define HAVE_BZIP2 48*86ee64e7SAndroid Build Coastguard Worker 49*86ee64e7SAndroid Build Coastguard Worker #ifndef _ZLIB_H 50*86ee64e7SAndroid Build Coastguard Worker #include "zlib.h" 51*86ee64e7SAndroid Build Coastguard Worker #endif 52*86ee64e7SAndroid Build Coastguard Worker 53*86ee64e7SAndroid Build Coastguard Worker #ifndef _ZLIBIOAPI_H 54*86ee64e7SAndroid Build Coastguard Worker #include "ioapi.h" 55*86ee64e7SAndroid Build Coastguard Worker #endif 56*86ee64e7SAndroid Build Coastguard Worker 57*86ee64e7SAndroid Build Coastguard Worker #ifdef HAVE_BZIP2 58*86ee64e7SAndroid Build Coastguard Worker #include "bzlib.h" 59*86ee64e7SAndroid Build Coastguard Worker #endif 60*86ee64e7SAndroid Build Coastguard Worker 61*86ee64e7SAndroid Build Coastguard Worker #define Z_BZIP2ED 12 62*86ee64e7SAndroid Build Coastguard Worker 63*86ee64e7SAndroid Build Coastguard Worker #if defined(STRICTZIP) || defined(STRICTZIPUNZIP) 64*86ee64e7SAndroid Build Coastguard Worker /* like the STRICT of WIN32, we define a pointer that cannot be converted 65*86ee64e7SAndroid Build Coastguard Worker from (void*) without cast */ 66*86ee64e7SAndroid Build Coastguard Worker typedef struct TagzipFile__ { int unused; } zipFile__; 67*86ee64e7SAndroid Build Coastguard Worker typedef zipFile__ *zipFile; 68*86ee64e7SAndroid Build Coastguard Worker #else 69*86ee64e7SAndroid Build Coastguard Worker typedef voidp zipFile; 70*86ee64e7SAndroid Build Coastguard Worker #endif 71*86ee64e7SAndroid Build Coastguard Worker 72*86ee64e7SAndroid Build Coastguard Worker #define ZIP_OK (0) 73*86ee64e7SAndroid Build Coastguard Worker #define ZIP_EOF (0) 74*86ee64e7SAndroid Build Coastguard Worker #define ZIP_ERRNO (Z_ERRNO) 75*86ee64e7SAndroid Build Coastguard Worker #define ZIP_PARAMERROR (-102) 76*86ee64e7SAndroid Build Coastguard Worker #define ZIP_BADZIPFILE (-103) 77*86ee64e7SAndroid Build Coastguard Worker #define ZIP_INTERNALERROR (-104) 78*86ee64e7SAndroid Build Coastguard Worker 79*86ee64e7SAndroid Build Coastguard Worker #ifndef DEF_MEM_LEVEL 80*86ee64e7SAndroid Build Coastguard Worker # if MAX_MEM_LEVEL >= 8 81*86ee64e7SAndroid Build Coastguard Worker # define DEF_MEM_LEVEL 8 82*86ee64e7SAndroid Build Coastguard Worker # else 83*86ee64e7SAndroid Build Coastguard Worker # define DEF_MEM_LEVEL MAX_MEM_LEVEL 84*86ee64e7SAndroid Build Coastguard Worker # endif 85*86ee64e7SAndroid Build Coastguard Worker #endif 86*86ee64e7SAndroid Build Coastguard Worker /* default memLevel */ 87*86ee64e7SAndroid Build Coastguard Worker 88*86ee64e7SAndroid Build Coastguard Worker /* tm_zip contain date/time info */ 89*86ee64e7SAndroid Build Coastguard Worker typedef struct tm_zip_s 90*86ee64e7SAndroid Build Coastguard Worker { 91*86ee64e7SAndroid Build Coastguard Worker int tm_sec; /* seconds after the minute - [0,59] */ 92*86ee64e7SAndroid Build Coastguard Worker int tm_min; /* minutes after the hour - [0,59] */ 93*86ee64e7SAndroid Build Coastguard Worker int tm_hour; /* hours since midnight - [0,23] */ 94*86ee64e7SAndroid Build Coastguard Worker int tm_mday; /* day of the month - [1,31] */ 95*86ee64e7SAndroid Build Coastguard Worker int tm_mon; /* months since January - [0,11] */ 96*86ee64e7SAndroid Build Coastguard Worker int tm_year; /* years - [1980..2044] */ 97*86ee64e7SAndroid Build Coastguard Worker } tm_zip; 98*86ee64e7SAndroid Build Coastguard Worker 99*86ee64e7SAndroid Build Coastguard Worker typedef struct 100*86ee64e7SAndroid Build Coastguard Worker { 101*86ee64e7SAndroid Build Coastguard Worker tm_zip tmz_date; /* date in understandable format */ 102*86ee64e7SAndroid Build Coastguard Worker uLong dosDate; /* if dos_date == 0, tmu_date is used */ 103*86ee64e7SAndroid Build Coastguard Worker /* uLong flag; */ /* general purpose bit flag 2 bytes */ 104*86ee64e7SAndroid Build Coastguard Worker 105*86ee64e7SAndroid Build Coastguard Worker uLong internal_fa; /* internal file attributes 2 bytes */ 106*86ee64e7SAndroid Build Coastguard Worker uLong external_fa; /* external file attributes 4 bytes */ 107*86ee64e7SAndroid Build Coastguard Worker } zip_fileinfo; 108*86ee64e7SAndroid Build Coastguard Worker 109*86ee64e7SAndroid Build Coastguard Worker typedef const char* zipcharpc; 110*86ee64e7SAndroid Build Coastguard Worker 111*86ee64e7SAndroid Build Coastguard Worker 112*86ee64e7SAndroid Build Coastguard Worker #define APPEND_STATUS_CREATE (0) 113*86ee64e7SAndroid Build Coastguard Worker #define APPEND_STATUS_CREATEAFTER (1) 114*86ee64e7SAndroid Build Coastguard Worker #define APPEND_STATUS_ADDINZIP (2) 115*86ee64e7SAndroid Build Coastguard Worker 116*86ee64e7SAndroid Build Coastguard Worker extern zipFile ZEXPORT zipOpen(const char *pathname, int append); 117*86ee64e7SAndroid Build Coastguard Worker extern zipFile ZEXPORT zipOpen64(const void *pathname, int append); 118*86ee64e7SAndroid Build Coastguard Worker /* 119*86ee64e7SAndroid Build Coastguard Worker Create a zipfile. 120*86ee64e7SAndroid Build Coastguard Worker pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on 121*86ee64e7SAndroid Build Coastguard Worker an Unix computer "zlib/zlib113.zip". 122*86ee64e7SAndroid Build Coastguard Worker if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip 123*86ee64e7SAndroid Build Coastguard Worker will be created at the end of the file. 124*86ee64e7SAndroid Build Coastguard Worker (useful if the file contain a self extractor code) 125*86ee64e7SAndroid Build Coastguard Worker if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will 126*86ee64e7SAndroid Build Coastguard Worker add files in existing zip (be sure you don't add file that doesn't exist) 127*86ee64e7SAndroid Build Coastguard Worker If the zipfile cannot be opened, the return value is NULL. 128*86ee64e7SAndroid Build Coastguard Worker Else, the return value is a zipFile Handle, usable with other function 129*86ee64e7SAndroid Build Coastguard Worker of this zip package. 130*86ee64e7SAndroid Build Coastguard Worker */ 131*86ee64e7SAndroid Build Coastguard Worker 132*86ee64e7SAndroid Build Coastguard Worker /* Note : there is no delete function into a zipfile. 133*86ee64e7SAndroid Build Coastguard Worker If you want delete file into a zipfile, you must open a zipfile, and create another 134*86ee64e7SAndroid Build Coastguard Worker Of course, you can use RAW reading and writing to copy the file you did not want delete 135*86ee64e7SAndroid Build Coastguard Worker */ 136*86ee64e7SAndroid Build Coastguard Worker 137*86ee64e7SAndroid Build Coastguard Worker extern zipFile ZEXPORT zipOpen2(const char *pathname, 138*86ee64e7SAndroid Build Coastguard Worker int append, 139*86ee64e7SAndroid Build Coastguard Worker zipcharpc* globalcomment, 140*86ee64e7SAndroid Build Coastguard Worker zlib_filefunc_def* pzlib_filefunc_def); 141*86ee64e7SAndroid Build Coastguard Worker 142*86ee64e7SAndroid Build Coastguard Worker extern zipFile ZEXPORT zipOpen2_64(const void *pathname, 143*86ee64e7SAndroid Build Coastguard Worker int append, 144*86ee64e7SAndroid Build Coastguard Worker zipcharpc* globalcomment, 145*86ee64e7SAndroid Build Coastguard Worker zlib_filefunc64_def* pzlib_filefunc_def); 146*86ee64e7SAndroid Build Coastguard Worker 147*86ee64e7SAndroid Build Coastguard Worker extern zipFile ZEXPORT zipOpen3(const void *pathname, 148*86ee64e7SAndroid Build Coastguard Worker int append, 149*86ee64e7SAndroid Build Coastguard Worker zipcharpc* globalcomment, 150*86ee64e7SAndroid Build Coastguard Worker zlib_filefunc64_32_def* pzlib_filefunc64_32_def); 151*86ee64e7SAndroid Build Coastguard Worker 152*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip(zipFile file, 153*86ee64e7SAndroid Build Coastguard Worker const char* filename, 154*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 155*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 156*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 157*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 158*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 159*86ee64e7SAndroid Build Coastguard Worker const char* comment, 160*86ee64e7SAndroid Build Coastguard Worker int method, 161*86ee64e7SAndroid Build Coastguard Worker int level); 162*86ee64e7SAndroid Build Coastguard Worker 163*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip64(zipFile file, 164*86ee64e7SAndroid Build Coastguard Worker const char* filename, 165*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 166*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 167*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 168*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 169*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 170*86ee64e7SAndroid Build Coastguard Worker const char* comment, 171*86ee64e7SAndroid Build Coastguard Worker int method, 172*86ee64e7SAndroid Build Coastguard Worker int level, 173*86ee64e7SAndroid Build Coastguard Worker int zip64); 174*86ee64e7SAndroid Build Coastguard Worker 175*86ee64e7SAndroid Build Coastguard Worker /* 176*86ee64e7SAndroid Build Coastguard Worker Open a file in the ZIP for writing. 177*86ee64e7SAndroid Build Coastguard Worker filename : the filename in zip (if NULL, '-' without quote will be used 178*86ee64e7SAndroid Build Coastguard Worker *zipfi contain supplemental information 179*86ee64e7SAndroid Build Coastguard Worker if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local 180*86ee64e7SAndroid Build Coastguard Worker contains the extrafield data for the local header 181*86ee64e7SAndroid Build Coastguard Worker if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global 182*86ee64e7SAndroid Build Coastguard Worker contains the extrafield data for the global header 183*86ee64e7SAndroid Build Coastguard Worker if comment != NULL, comment contain the comment string 184*86ee64e7SAndroid Build Coastguard Worker method contain the compression method (0 for store, Z_DEFLATED for deflate) 185*86ee64e7SAndroid Build Coastguard Worker level contain the level of compression (can be Z_DEFAULT_COMPRESSION) 186*86ee64e7SAndroid Build Coastguard Worker zip64 is set to 1 if a zip64 extended information block should be added to the local file header. 187*86ee64e7SAndroid Build Coastguard Worker this MUST be '1' if the uncompressed size is >= 0xffffffff. 188*86ee64e7SAndroid Build Coastguard Worker 189*86ee64e7SAndroid Build Coastguard Worker */ 190*86ee64e7SAndroid Build Coastguard Worker 191*86ee64e7SAndroid Build Coastguard Worker 192*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, 193*86ee64e7SAndroid Build Coastguard Worker const char* filename, 194*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 195*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 196*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 197*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 198*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 199*86ee64e7SAndroid Build Coastguard Worker const char* comment, 200*86ee64e7SAndroid Build Coastguard Worker int method, 201*86ee64e7SAndroid Build Coastguard Worker int level, 202*86ee64e7SAndroid Build Coastguard Worker int raw); 203*86ee64e7SAndroid Build Coastguard Worker 204*86ee64e7SAndroid Build Coastguard Worker 205*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip2_64(zipFile file, 206*86ee64e7SAndroid Build Coastguard Worker const char* filename, 207*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 208*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 209*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 210*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 211*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 212*86ee64e7SAndroid Build Coastguard Worker const char* comment, 213*86ee64e7SAndroid Build Coastguard Worker int method, 214*86ee64e7SAndroid Build Coastguard Worker int level, 215*86ee64e7SAndroid Build Coastguard Worker int raw, 216*86ee64e7SAndroid Build Coastguard Worker int zip64); 217*86ee64e7SAndroid Build Coastguard Worker /* 218*86ee64e7SAndroid Build Coastguard Worker Same than zipOpenNewFileInZip, except if raw=1, we write raw file 219*86ee64e7SAndroid Build Coastguard Worker */ 220*86ee64e7SAndroid Build Coastguard Worker 221*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip3(zipFile file, 222*86ee64e7SAndroid Build Coastguard Worker const char* filename, 223*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 224*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 225*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 226*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 227*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 228*86ee64e7SAndroid Build Coastguard Worker const char* comment, 229*86ee64e7SAndroid Build Coastguard Worker int method, 230*86ee64e7SAndroid Build Coastguard Worker int level, 231*86ee64e7SAndroid Build Coastguard Worker int raw, 232*86ee64e7SAndroid Build Coastguard Worker int windowBits, 233*86ee64e7SAndroid Build Coastguard Worker int memLevel, 234*86ee64e7SAndroid Build Coastguard Worker int strategy, 235*86ee64e7SAndroid Build Coastguard Worker const char* password, 236*86ee64e7SAndroid Build Coastguard Worker uLong crcForCrypting); 237*86ee64e7SAndroid Build Coastguard Worker 238*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, 239*86ee64e7SAndroid Build Coastguard Worker const char* filename, 240*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 241*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 242*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 243*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 244*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 245*86ee64e7SAndroid Build Coastguard Worker const char* comment, 246*86ee64e7SAndroid Build Coastguard Worker int method, 247*86ee64e7SAndroid Build Coastguard Worker int level, 248*86ee64e7SAndroid Build Coastguard Worker int raw, 249*86ee64e7SAndroid Build Coastguard Worker int windowBits, 250*86ee64e7SAndroid Build Coastguard Worker int memLevel, 251*86ee64e7SAndroid Build Coastguard Worker int strategy, 252*86ee64e7SAndroid Build Coastguard Worker const char* password, 253*86ee64e7SAndroid Build Coastguard Worker uLong crcForCrypting, 254*86ee64e7SAndroid Build Coastguard Worker int zip64); 255*86ee64e7SAndroid Build Coastguard Worker 256*86ee64e7SAndroid Build Coastguard Worker /* 257*86ee64e7SAndroid Build Coastguard Worker Same than zipOpenNewFileInZip2, except 258*86ee64e7SAndroid Build Coastguard Worker windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 259*86ee64e7SAndroid Build Coastguard Worker password : crypting password (NULL for no crypting) 260*86ee64e7SAndroid Build Coastguard Worker crcForCrypting : crc of file to compress (needed for crypting) 261*86ee64e7SAndroid Build Coastguard Worker */ 262*86ee64e7SAndroid Build Coastguard Worker 263*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip4(zipFile file, 264*86ee64e7SAndroid Build Coastguard Worker const char* filename, 265*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 266*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 267*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 268*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 269*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 270*86ee64e7SAndroid Build Coastguard Worker const char* comment, 271*86ee64e7SAndroid Build Coastguard Worker int method, 272*86ee64e7SAndroid Build Coastguard Worker int level, 273*86ee64e7SAndroid Build Coastguard Worker int raw, 274*86ee64e7SAndroid Build Coastguard Worker int windowBits, 275*86ee64e7SAndroid Build Coastguard Worker int memLevel, 276*86ee64e7SAndroid Build Coastguard Worker int strategy, 277*86ee64e7SAndroid Build Coastguard Worker const char* password, 278*86ee64e7SAndroid Build Coastguard Worker uLong crcForCrypting, 279*86ee64e7SAndroid Build Coastguard Worker uLong versionMadeBy, 280*86ee64e7SAndroid Build Coastguard Worker uLong flagBase); 281*86ee64e7SAndroid Build Coastguard Worker 282*86ee64e7SAndroid Build Coastguard Worker 283*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, 284*86ee64e7SAndroid Build Coastguard Worker const char* filename, 285*86ee64e7SAndroid Build Coastguard Worker const zip_fileinfo* zipfi, 286*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_local, 287*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_local, 288*86ee64e7SAndroid Build Coastguard Worker const void* extrafield_global, 289*86ee64e7SAndroid Build Coastguard Worker uInt size_extrafield_global, 290*86ee64e7SAndroid Build Coastguard Worker const char* comment, 291*86ee64e7SAndroid Build Coastguard Worker int method, 292*86ee64e7SAndroid Build Coastguard Worker int level, 293*86ee64e7SAndroid Build Coastguard Worker int raw, 294*86ee64e7SAndroid Build Coastguard Worker int windowBits, 295*86ee64e7SAndroid Build Coastguard Worker int memLevel, 296*86ee64e7SAndroid Build Coastguard Worker int strategy, 297*86ee64e7SAndroid Build Coastguard Worker const char* password, 298*86ee64e7SAndroid Build Coastguard Worker uLong crcForCrypting, 299*86ee64e7SAndroid Build Coastguard Worker uLong versionMadeBy, 300*86ee64e7SAndroid Build Coastguard Worker uLong flagBase, 301*86ee64e7SAndroid Build Coastguard Worker int zip64); 302*86ee64e7SAndroid Build Coastguard Worker /* 303*86ee64e7SAndroid Build Coastguard Worker Same than zipOpenNewFileInZip4, except 304*86ee64e7SAndroid Build Coastguard Worker versionMadeBy : value for Version made by field 305*86ee64e7SAndroid Build Coastguard Worker flag : value for flag field (compression level info will be added) 306*86ee64e7SAndroid Build Coastguard Worker */ 307*86ee64e7SAndroid Build Coastguard Worker 308*86ee64e7SAndroid Build Coastguard Worker 309*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipWriteInFileInZip(zipFile file, 310*86ee64e7SAndroid Build Coastguard Worker const void* buf, 311*86ee64e7SAndroid Build Coastguard Worker unsigned len); 312*86ee64e7SAndroid Build Coastguard Worker /* 313*86ee64e7SAndroid Build Coastguard Worker Write data in the zipfile 314*86ee64e7SAndroid Build Coastguard Worker */ 315*86ee64e7SAndroid Build Coastguard Worker 316*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipCloseFileInZip(zipFile file); 317*86ee64e7SAndroid Build Coastguard Worker /* 318*86ee64e7SAndroid Build Coastguard Worker Close the current file in the zipfile 319*86ee64e7SAndroid Build Coastguard Worker */ 320*86ee64e7SAndroid Build Coastguard Worker 321*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipCloseFileInZipRaw(zipFile file, 322*86ee64e7SAndroid Build Coastguard Worker uLong uncompressed_size, 323*86ee64e7SAndroid Build Coastguard Worker uLong crc32); 324*86ee64e7SAndroid Build Coastguard Worker 325*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipCloseFileInZipRaw64(zipFile file, 326*86ee64e7SAndroid Build Coastguard Worker ZPOS64_T uncompressed_size, 327*86ee64e7SAndroid Build Coastguard Worker uLong crc32); 328*86ee64e7SAndroid Build Coastguard Worker 329*86ee64e7SAndroid Build Coastguard Worker /* 330*86ee64e7SAndroid Build Coastguard Worker Close the current file in the zipfile, for file opened with 331*86ee64e7SAndroid Build Coastguard Worker parameter raw=1 in zipOpenNewFileInZip2 332*86ee64e7SAndroid Build Coastguard Worker uncompressed_size and crc32 are value for the uncompressed size 333*86ee64e7SAndroid Build Coastguard Worker */ 334*86ee64e7SAndroid Build Coastguard Worker 335*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipClose(zipFile file, 336*86ee64e7SAndroid Build Coastguard Worker const char* global_comment); 337*86ee64e7SAndroid Build Coastguard Worker /* 338*86ee64e7SAndroid Build Coastguard Worker Close the zipfile 339*86ee64e7SAndroid Build Coastguard Worker */ 340*86ee64e7SAndroid Build Coastguard Worker 341*86ee64e7SAndroid Build Coastguard Worker 342*86ee64e7SAndroid Build Coastguard Worker extern int ZEXPORT zipRemoveExtraInfoBlock(char* pData, int* dataLen, short sHeader); 343*86ee64e7SAndroid Build Coastguard Worker /* 344*86ee64e7SAndroid Build Coastguard Worker zipRemoveExtraInfoBlock - Added by Mathias Svensson 345*86ee64e7SAndroid Build Coastguard Worker 346*86ee64e7SAndroid Build Coastguard Worker Remove extra information block from a extra information data for the local file header or central directory header 347*86ee64e7SAndroid Build Coastguard Worker 348*86ee64e7SAndroid Build Coastguard Worker It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode. 349*86ee64e7SAndroid Build Coastguard Worker 350*86ee64e7SAndroid Build Coastguard Worker 0x0001 is the signature header for the ZIP64 extra information blocks 351*86ee64e7SAndroid Build Coastguard Worker 352*86ee64e7SAndroid Build Coastguard Worker usage. 353*86ee64e7SAndroid Build Coastguard Worker Remove ZIP64 Extra information from a central director extra field data 354*86ee64e7SAndroid Build Coastguard Worker zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001); 355*86ee64e7SAndroid Build Coastguard Worker 356*86ee64e7SAndroid Build Coastguard Worker Remove ZIP64 Extra information from a Local File Header extra field data 357*86ee64e7SAndroid Build Coastguard Worker zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001); 358*86ee64e7SAndroid Build Coastguard Worker */ 359*86ee64e7SAndroid Build Coastguard Worker 360*86ee64e7SAndroid Build Coastguard Worker #ifdef __cplusplus 361*86ee64e7SAndroid Build Coastguard Worker } 362*86ee64e7SAndroid Build Coastguard Worker #endif 363*86ee64e7SAndroid Build Coastguard Worker 364*86ee64e7SAndroid Build Coastguard Worker #endif /* _zip64_H */ 365