xref: /aosp_15_r20/external/zlib/contrib/minizip/zip.h (revision 86ee64e75fa5f8bce2c8c356138035642429cd05)
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