diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:25:17 -0700 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:25:17 -0700 |
commit | abf180a067223611620dd97dd5681df7c7fa7c9b (patch) | |
tree | 48ce6022aa1670380c098bd0abed2ac4aa1d9ca0 /contrib/minizip/zip.h | |
parent | 9c3a5830218c4e7fff23b8fc4386269db77a03a9 (diff) | |
download | zlib-1.2.3.tar.gz zlib-1.2.3.tar.bz2 zlib-1.2.3.zip |
zlib 1.2.3v1.2.3
Diffstat (limited to 'contrib/minizip/zip.h')
-rw-r--r-- | contrib/minizip/zip.h | 470 |
1 files changed, 235 insertions, 235 deletions
diff --git a/contrib/minizip/zip.h b/contrib/minizip/zip.h index cd38b67..acacce8 100644 --- a/contrib/minizip/zip.h +++ b/contrib/minizip/zip.h | |||
@@ -1,235 +1,235 @@ | |||
1 | /* zip.h -- IO for compress .zip files using zlib | 1 | /* zip.h -- IO for compress .zip files using zlib |
2 | Version 1.01e, February 12th, 2005 | 2 | Version 1.01e, February 12th, 2005 |
3 | 3 | ||
4 | Copyright (C) 1998-2005 Gilles Vollant | 4 | Copyright (C) 1998-2005 Gilles Vollant |
5 | 5 | ||
6 | This unzip package allow creates .ZIP file, compatible with PKZip 2.04g | 6 | This unzip package allow creates .ZIP file, compatible with PKZip 2.04g |
7 | WinZip, InfoZip tools and compatible. | 7 | WinZip, InfoZip tools and compatible. |
8 | Multi volume ZipFile (span) are not supported. | 8 | Multi volume ZipFile (span) are not supported. |
9 | Encryption compatible with pkzip 2.04g only supported | 9 | Encryption compatible with pkzip 2.04g only supported |
10 | Old compressions used by old PKZip 1.x are not supported | 10 | Old compressions used by old PKZip 1.x are not supported |
11 | 11 | ||
12 | For uncompress .zip file, look at unzip.h | 12 | For uncompress .zip file, look at unzip.h |
13 | 13 | ||
14 | 14 | ||
15 | I WAIT FEEDBACK at mail info@winimage.com | 15 | I WAIT FEEDBACK at mail info@winimage.com |
16 | Visit also http://www.winimage.com/zLibDll/unzip.html for evolution | 16 | Visit also http://www.winimage.com/zLibDll/unzip.html for evolution |
17 | 17 | ||
18 | Condition of use and distribution are the same than zlib : | 18 | Condition of use and distribution are the same than zlib : |
19 | 19 | ||
20 | This software is provided 'as-is', without any express or implied | 20 | This software is provided 'as-is', without any express or implied |
21 | warranty. In no event will the authors be held liable for any damages | 21 | warranty. In no event will the authors be held liable for any damages |
22 | arising from the use of this software. | 22 | arising from the use of this software. |
23 | 23 | ||
24 | Permission is granted to anyone to use this software for any purpose, | 24 | Permission is granted to anyone to use this software for any purpose, |
25 | including commercial applications, and to alter it and redistribute it | 25 | including commercial applications, and to alter it and redistribute it |
26 | freely, subject to the following restrictions: | 26 | freely, subject to the following restrictions: |
27 | 27 | ||
28 | 1. The origin of this software must not be misrepresented; you must not | 28 | 1. The origin of this software must not be misrepresented; you must not |
29 | claim that you wrote the original software. If you use this software | 29 | claim that you wrote the original software. If you use this software |
30 | in a product, an acknowledgment in the product documentation would be | 30 | in a product, an acknowledgment in the product documentation would be |
31 | appreciated but is not required. | 31 | appreciated but is not required. |
32 | 2. Altered source versions must be plainly marked as such, and must not be | 32 | 2. Altered source versions must be plainly marked as such, and must not be |
33 | misrepresented as being the original software. | 33 | misrepresented as being the original software. |
34 | 3. This notice may not be removed or altered from any source distribution. | 34 | 3. This notice may not be removed or altered from any source distribution. |
35 | 35 | ||
36 | 36 | ||
37 | */ | 37 | */ |
38 | 38 | ||
39 | /* for more info about .ZIP format, see | 39 | /* for more info about .ZIP format, see |
40 | http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip | 40 | http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip |
41 | http://www.info-zip.org/pub/infozip/doc/ | 41 | http://www.info-zip.org/pub/infozip/doc/ |
42 | PkWare has also a specification at : | 42 | PkWare has also a specification at : |
43 | ftp://ftp.pkware.com/probdesc.zip | 43 | ftp://ftp.pkware.com/probdesc.zip |
44 | */ | 44 | */ |
45 | 45 | ||
46 | #ifndef _zip_H | 46 | #ifndef _zip_H |
47 | #define _zip_H | 47 | #define _zip_H |
48 | 48 | ||
49 | #ifdef __cplusplus | 49 | #ifdef __cplusplus |
50 | extern "C" { | 50 | extern "C" { |
51 | #endif | 51 | #endif |
52 | 52 | ||
53 | #ifndef _ZLIB_H | 53 | #ifndef _ZLIB_H |
54 | #include "zlib.h" | 54 | #include "zlib.h" |
55 | #endif | 55 | #endif |
56 | 56 | ||
57 | #ifndef _ZLIBIOAPI_H | 57 | #ifndef _ZLIBIOAPI_H |
58 | #include "ioapi.h" | 58 | #include "ioapi.h" |
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | #if defined(STRICTZIP) || defined(STRICTZIPUNZIP) | 61 | #if defined(STRICTZIP) || defined(STRICTZIPUNZIP) |
62 | /* like the STRICT of WIN32, we define a pointer that cannot be converted | 62 | /* like the STRICT of WIN32, we define a pointer that cannot be converted |
63 | from (void*) without cast */ | 63 | from (void*) without cast */ |
64 | typedef struct TagzipFile__ { int unused; } zipFile__; | 64 | typedef struct TagzipFile__ { int unused; } zipFile__; |
65 | typedef zipFile__ *zipFile; | 65 | typedef zipFile__ *zipFile; |
66 | #else | 66 | #else |
67 | typedef voidp zipFile; | 67 | typedef voidp zipFile; |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | #define ZIP_OK (0) | 70 | #define ZIP_OK (0) |
71 | #define ZIP_EOF (0) | 71 | #define ZIP_EOF (0) |
72 | #define ZIP_ERRNO (Z_ERRNO) | 72 | #define ZIP_ERRNO (Z_ERRNO) |
73 | #define ZIP_PARAMERROR (-102) | 73 | #define ZIP_PARAMERROR (-102) |
74 | #define ZIP_BADZIPFILE (-103) | 74 | #define ZIP_BADZIPFILE (-103) |
75 | #define ZIP_INTERNALERROR (-104) | 75 | #define ZIP_INTERNALERROR (-104) |
76 | 76 | ||
77 | #ifndef DEF_MEM_LEVEL | 77 | #ifndef DEF_MEM_LEVEL |
78 | # if MAX_MEM_LEVEL >= 8 | 78 | # if MAX_MEM_LEVEL >= 8 |
79 | # define DEF_MEM_LEVEL 8 | 79 | # define DEF_MEM_LEVEL 8 |
80 | # else | 80 | # else |
81 | # define DEF_MEM_LEVEL MAX_MEM_LEVEL | 81 | # define DEF_MEM_LEVEL MAX_MEM_LEVEL |
82 | # endif | 82 | # endif |
83 | #endif | 83 | #endif |
84 | /* default memLevel */ | 84 | /* default memLevel */ |
85 | 85 | ||
86 | /* tm_zip contain date/time info */ | 86 | /* tm_zip contain date/time info */ |
87 | typedef struct tm_zip_s | 87 | typedef struct tm_zip_s |
88 | { | 88 | { |
89 | uInt tm_sec; /* seconds after the minute - [0,59] */ | 89 | uInt tm_sec; /* seconds after the minute - [0,59] */ |
90 | uInt tm_min; /* minutes after the hour - [0,59] */ | 90 | uInt tm_min; /* minutes after the hour - [0,59] */ |
91 | uInt tm_hour; /* hours since midnight - [0,23] */ | 91 | uInt tm_hour; /* hours since midnight - [0,23] */ |
92 | uInt tm_mday; /* day of the month - [1,31] */ | 92 | uInt tm_mday; /* day of the month - [1,31] */ |
93 | uInt tm_mon; /* months since January - [0,11] */ | 93 | uInt tm_mon; /* months since January - [0,11] */ |
94 | uInt tm_year; /* years - [1980..2044] */ | 94 | uInt tm_year; /* years - [1980..2044] */ |
95 | } tm_zip; | 95 | } tm_zip; |
96 | 96 | ||
97 | typedef struct | 97 | typedef struct |
98 | { | 98 | { |
99 | tm_zip tmz_date; /* date in understandable format */ | 99 | tm_zip tmz_date; /* date in understandable format */ |
100 | uLong dosDate; /* if dos_date == 0, tmu_date is used */ | 100 | uLong dosDate; /* if dos_date == 0, tmu_date is used */ |
101 | /* uLong flag; */ /* general purpose bit flag 2 bytes */ | 101 | /* uLong flag; */ /* general purpose bit flag 2 bytes */ |
102 | 102 | ||
103 | uLong internal_fa; /* internal file attributes 2 bytes */ | 103 | uLong internal_fa; /* internal file attributes 2 bytes */ |
104 | uLong external_fa; /* external file attributes 4 bytes */ | 104 | uLong external_fa; /* external file attributes 4 bytes */ |
105 | } zip_fileinfo; | 105 | } zip_fileinfo; |
106 | 106 | ||
107 | typedef const char* zipcharpc; | 107 | typedef const char* zipcharpc; |
108 | 108 | ||
109 | 109 | ||
110 | #define APPEND_STATUS_CREATE (0) | 110 | #define APPEND_STATUS_CREATE (0) |
111 | #define APPEND_STATUS_CREATEAFTER (1) | 111 | #define APPEND_STATUS_CREATEAFTER (1) |
112 | #define APPEND_STATUS_ADDINZIP (2) | 112 | #define APPEND_STATUS_ADDINZIP (2) |
113 | 113 | ||
114 | extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); | 114 | extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); |
115 | /* | 115 | /* |
116 | Create a zipfile. | 116 | Create a zipfile. |
117 | pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on | 117 | pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on |
118 | an Unix computer "zlib/zlib113.zip". | 118 | an Unix computer "zlib/zlib113.zip". |
119 | if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip | 119 | if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip |
120 | will be created at the end of the file. | 120 | will be created at the end of the file. |
121 | (useful if the file contain a self extractor code) | 121 | (useful if the file contain a self extractor code) |
122 | if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will | 122 | if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will |
123 | add files in existing zip (be sure you don't add file that doesn't exist) | 123 | add files in existing zip (be sure you don't add file that doesn't exist) |
124 | If the zipfile cannot be opened, the return value is NULL. | 124 | If the zipfile cannot be opened, the return value is NULL. |
125 | Else, the return value is a zipFile Handle, usable with other function | 125 | Else, the return value is a zipFile Handle, usable with other function |
126 | of this zip package. | 126 | of this zip package. |
127 | */ | 127 | */ |
128 | 128 | ||
129 | /* Note : there is no delete function into a zipfile. | 129 | /* Note : there is no delete function into a zipfile. |
130 | If you want delete file into a zipfile, you must open a zipfile, and create another | 130 | If you want delete file into a zipfile, you must open a zipfile, and create another |
131 | Of couse, you can use RAW reading and writing to copy the file you did not want delte | 131 | Of couse, you can use RAW reading and writing to copy the file you did not want delte |
132 | */ | 132 | */ |
133 | 133 | ||
134 | extern zipFile ZEXPORT zipOpen2 OF((const char *pathname, | 134 | extern zipFile ZEXPORT zipOpen2 OF((const char *pathname, |
135 | int append, | 135 | int append, |
136 | zipcharpc* globalcomment, | 136 | zipcharpc* globalcomment, |
137 | zlib_filefunc_def* pzlib_filefunc_def)); | 137 | zlib_filefunc_def* pzlib_filefunc_def)); |
138 | 138 | ||
139 | extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, | 139 | extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, |
140 | const char* filename, | 140 | const char* filename, |
141 | const zip_fileinfo* zipfi, | 141 | const zip_fileinfo* zipfi, |
142 | const void* extrafield_local, | 142 | const void* extrafield_local, |
143 | uInt size_extrafield_local, | 143 | uInt size_extrafield_local, |
144 | const void* extrafield_global, | 144 | const void* extrafield_global, |
145 | uInt size_extrafield_global, | 145 | uInt size_extrafield_global, |
146 | const char* comment, | 146 | const char* comment, |
147 | int method, | 147 | int method, |
148 | int level)); | 148 | int level)); |
149 | /* | 149 | /* |
150 | Open a file in the ZIP for writing. | 150 | Open a file in the ZIP for writing. |
151 | filename : the filename in zip (if NULL, '-' without quote will be used | 151 | filename : the filename in zip (if NULL, '-' without quote will be used |
152 | *zipfi contain supplemental information | 152 | *zipfi contain supplemental information |
153 | if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local | 153 | if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local |
154 | contains the extrafield data the the local header | 154 | contains the extrafield data the the local header |
155 | if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global | 155 | if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global |
156 | contains the extrafield data the the local header | 156 | contains the extrafield data the the local header |
157 | if comment != NULL, comment contain the comment string | 157 | if comment != NULL, comment contain the comment string |
158 | method contain the compression method (0 for store, Z_DEFLATED for deflate) | 158 | method contain the compression method (0 for store, Z_DEFLATED for deflate) |
159 | level contain the level of compression (can be Z_DEFAULT_COMPRESSION) | 159 | level contain the level of compression (can be Z_DEFAULT_COMPRESSION) |
160 | */ | 160 | */ |
161 | 161 | ||
162 | 162 | ||
163 | extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, | 163 | extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, |
164 | const char* filename, | 164 | const char* filename, |
165 | const zip_fileinfo* zipfi, | 165 | const zip_fileinfo* zipfi, |
166 | const void* extrafield_local, | 166 | const void* extrafield_local, |
167 | uInt size_extrafield_local, | 167 | uInt size_extrafield_local, |
168 | const void* extrafield_global, | 168 | const void* extrafield_global, |
169 | uInt size_extrafield_global, | 169 | uInt size_extrafield_global, |
170 | const char* comment, | 170 | const char* comment, |
171 | int method, | 171 | int method, |
172 | int level, | 172 | int level, |
173 | int raw)); | 173 | int raw)); |
174 | 174 | ||
175 | /* | 175 | /* |
176 | Same than zipOpenNewFileInZip, except if raw=1, we write raw file | 176 | Same than zipOpenNewFileInZip, except if raw=1, we write raw file |
177 | */ | 177 | */ |
178 | 178 | ||
179 | extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, | 179 | extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, |
180 | const char* filename, | 180 | const char* filename, |
181 | const zip_fileinfo* zipfi, | 181 | const zip_fileinfo* zipfi, |
182 | const void* extrafield_local, | 182 | const void* extrafield_local, |
183 | uInt size_extrafield_local, | 183 | uInt size_extrafield_local, |
184 | const void* extrafield_global, | 184 | const void* extrafield_global, |
185 | uInt size_extrafield_global, | 185 | uInt size_extrafield_global, |
186 | const char* comment, | 186 | const char* comment, |
187 | int method, | 187 | int method, |
188 | int level, | 188 | int level, |
189 | int raw, | 189 | int raw, |
190 | int windowBits, | 190 | int windowBits, |
191 | int memLevel, | 191 | int memLevel, |
192 | int strategy, | 192 | int strategy, |
193 | const char* password, | 193 | const char* password, |
194 | uLong crcForCtypting)); | 194 | uLong crcForCtypting)); |
195 | 195 | ||
196 | /* | 196 | /* |
197 | Same than zipOpenNewFileInZip2, except | 197 | Same than zipOpenNewFileInZip2, except |
198 | windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 | 198 | windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 |
199 | password : crypting password (NULL for no crypting) | 199 | password : crypting password (NULL for no crypting) |
200 | crcForCtypting : crc of file to compress (needed for crypting) | 200 | crcForCtypting : crc of file to compress (needed for crypting) |
201 | */ | 201 | */ |
202 | 202 | ||
203 | 203 | ||
204 | extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, | 204 | extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, |
205 | const void* buf, | 205 | const void* buf, |
206 | unsigned len)); | 206 | unsigned len)); |
207 | /* | 207 | /* |
208 | Write data in the zipfile | 208 | Write data in the zipfile |
209 | */ | 209 | */ |
210 | 210 | ||
211 | extern int ZEXPORT zipCloseFileInZip OF((zipFile file)); | 211 | extern int ZEXPORT zipCloseFileInZip OF((zipFile file)); |
212 | /* | 212 | /* |
213 | Close the current file in the zipfile | 213 | Close the current file in the zipfile |
214 | */ | 214 | */ |
215 | 215 | ||
216 | extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, | 216 | extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, |
217 | uLong uncompressed_size, | 217 | uLong uncompressed_size, |
218 | uLong crc32)); | 218 | uLong crc32)); |
219 | /* | 219 | /* |
220 | Close the current file in the zipfile, for fiel opened with | 220 | Close the current file in the zipfile, for fiel opened with |
221 | parameter raw=1 in zipOpenNewFileInZip2 | 221 | parameter raw=1 in zipOpenNewFileInZip2 |
222 | uncompressed_size and crc32 are value for the uncompressed size | 222 | uncompressed_size and crc32 are value for the uncompressed size |
223 | */ | 223 | */ |
224 | 224 | ||
225 | extern int ZEXPORT zipClose OF((zipFile file, | 225 | extern int ZEXPORT zipClose OF((zipFile file, |
226 | const char* global_comment)); | 226 | const char* global_comment)); |
227 | /* | 227 | /* |
228 | Close the zipfile | 228 | Close the zipfile |
229 | */ | 229 | */ |
230 | 230 | ||
231 | #ifdef __cplusplus | 231 | #ifdef __cplusplus |
232 | } | 232 | } |
233 | #endif | 233 | #endif |
234 | 234 | ||
235 | #endif /* _zip_H */ | 235 | #endif /* _zip_H */ |