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