~ubuntu-branches/ubuntu/vivid/libzip/vivid

« back to all changes in this revision

Viewing changes to lib/zip.h

  • Committer: Package Import Robot
  • Author(s): Fathi Boudra
  • Date: 2014-02-09 13:24:18 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20140209132418-t7u2auujqnfb5rvm
Tags: 0.11.2-1
* New upstream release (Closes: #734388).
* Remove patches:
  - fix_open_nonarchive_test.patch - fixed upstream
  - fix_zipconf_path.patch - fixed upstream
  - fix_broken_decrypt.patch - fixed upstream
  - fix_autotools_tests.diff - stolen upstream
* Update debian/control:
  - add unzip to Build-Depends.
  - bump compat to 9
* Update *.install: multiarch paths.
* Update libzip2 symbols file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
/*
5
5
  zip.h -- exported declarations.
6
 
  Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner
 
6
  Copyright (C) 1999-2012 Dieter Baron and Thomas Klausner
7
7
 
8
8
  This file is part of libzip, a library to manipulate ZIP archives.
9
9
  The authors can be contacted at <libzip@nih.at>
39
39
#ifndef ZIP_EXTERN
40
40
#ifdef _WIN32
41
41
#define ZIP_EXTERN __declspec(dllimport)
 
42
#elif defined(__GNUC__) && __GNUC__ >= 4
 
43
#define ZIP_EXTERN __attribute__ ((visibility ("default")))
42
44
#else
43
45
#define ZIP_EXTERN
44
46
#endif
59
61
#define ZIP_CREATE           1
60
62
#define ZIP_EXCL             2
61
63
#define ZIP_CHECKCONS        4
 
64
#define ZIP_TRUNCATE         8
62
65
 
63
66
 
64
67
/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
65
68
 
66
 
#define ZIP_FL_NOCASE           1 /* ignore case on name lookup */
67
 
#define ZIP_FL_NODIR            2 /* ignore directory component */
68
 
#define ZIP_FL_COMPRESSED       4 /* read compressed data */
69
 
#define ZIP_FL_UNCHANGED        8 /* use original data, ignoring changes */
70
 
#define ZIP_FL_RECOMPRESS      16 /* force recompression of data */
71
 
#define ZIP_FL_ENCRYPTED       32 /* read encrypted data
72
 
                                     (implies ZIP_FL_COMPRESSED) */
 
69
#define ZIP_FL_NOCASE           1u /* ignore case on name lookup */
 
70
#define ZIP_FL_NODIR            2u /* ignore directory component */
 
71
#define ZIP_FL_COMPRESSED       4u /* read compressed data */
 
72
#define ZIP_FL_UNCHANGED        8u /* use original data, ignoring changes */
 
73
#define ZIP_FL_RECOMPRESS      16u /* force recompression of data */
 
74
#define ZIP_FL_ENCRYPTED       32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
 
75
#define ZIP_FL_ENC_GUESS        0u /* guess string encoding (is default) */
 
76
#define ZIP_FL_ENC_RAW         64u /* get unmodified string */
 
77
#define ZIP_FL_ENC_STRICT     128u /* follow specification strictly */
 
78
#define ZIP_FL_LOCAL          256u /* in local header */
 
79
#define ZIP_FL_CENTRAL        512u /* in central directory */
 
80
/*                           1024u    reserved for internal use */
 
81
#define ZIP_FL_ENC_UTF_8     2048u /* string is UTF-8 encoded */
 
82
#define ZIP_FL_ENC_CP437     4096u /* string is CP437 encoded */
 
83
#define ZIP_FL_OVERWRITE     8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
73
84
 
74
85
/* archive global flags flags */
75
86
 
76
 
#define ZIP_AFL_TORRENT         1 /* torrent zipped */
77
 
#define ZIP_AFL_RDONLY          2 /* read only -- cannot be cleared */
78
 
 
 
87
#define ZIP_AFL_TORRENT         1u /* torrent zipped */
 
88
#define ZIP_AFL_RDONLY          2u /* read only -- cannot be cleared */
 
89
 
 
90
 
 
91
/* create a new extra field */
 
92
 
 
93
#define ZIP_EXTRA_FIELD_ALL     ZIP_UINT16_MAX
 
94
#define ZIP_EXTRA_FIELD_NEW     ZIP_UINT16_MAX
79
95
 
80
96
/* flags for compression and encryption sources */
81
97
 
 
98
#define ZIP_CODEC_DECODE        0 /* decompress/decrypt (encode flag not set) */
82
99
#define ZIP_CODEC_ENCODE        1 /* compress/encrypt */
83
100
 
84
101
 
160
177
#endif
161
178
#define ZIP_EM_UNKNOWN    0xffff  /* unknown algorithm */
162
179
 
 
180
#define ZIP_OPSYS_DOS           0x00u
 
181
#define ZIP_OPSYS_AMIGA         0x01u
 
182
#define ZIP_OPSYS_OPENVMS       0x02u
 
183
#define ZIP_OPSYS_UNIX          0x03u
 
184
#define ZIP_OPSYS_VM_CMS        0x04u
 
185
#define ZIP_OPSYS_ATARI_ST      0x05u
 
186
#define ZIP_OPSYS_OS_2          0x06u
 
187
#define ZIP_OPSYS_MACINTOSH     0x07u
 
188
#define ZIP_OPSYS_Z_SYSTEM      0x08u
 
189
#define ZIP_OPSYS_CPM           0x09u
 
190
#define ZIP_OPSYS_WINDOWS_NTFS  0x0au
 
191
#define ZIP_OPSYS_MVS           0x0bu
 
192
#define ZIP_OPSYS_VSE           0x0cu
 
193
#define ZIP_OPSYS_ACORN_RISC    0x0du
 
194
#define ZIP_OPSYS_VFAT          0x0eu
 
195
#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
 
196
#define ZIP_OPSYS_BEOS          0x10u
 
197
#define ZIP_OPSYS_TANDEM        0x11u
 
198
#define ZIP_OPSYS_OS_400        0x12u
 
199
#define ZIP_OPSYS_OS_X          0x13u
 
200
 
 
201
#define ZIP_OPSYS_DEFAULT       ZIP_OPSYS_UNIX
 
202
 
163
203
 
164
204
 
165
205
enum zip_source_cmd {
173
213
 
174
214
#define ZIP_SOURCE_ERR_LOWER    -2
175
215
 
176
 
#define ZIP_STAT_NAME                   0x0001
177
 
#define ZIP_STAT_INDEX                  0x0002
178
 
#define ZIP_STAT_SIZE                   0x0004
179
 
#define ZIP_STAT_COMP_SIZE              0x0008
180
 
#define ZIP_STAT_MTIME                  0x0010
181
 
#define ZIP_STAT_CRC                    0x0020
182
 
#define ZIP_STAT_COMP_METHOD            0x0040
183
 
#define ZIP_STAT_ENCRYPTION_METHOD      0x0080
184
 
#define ZIP_STAT_FLAGS                  0x0100
 
216
#define ZIP_STAT_NAME                   0x0001u
 
217
#define ZIP_STAT_INDEX                  0x0002u
 
218
#define ZIP_STAT_SIZE                   0x0004u
 
219
#define ZIP_STAT_COMP_SIZE              0x0008u
 
220
#define ZIP_STAT_MTIME                  0x0010u
 
221
#define ZIP_STAT_CRC                    0x0020u
 
222
#define ZIP_STAT_COMP_METHOD            0x0040u
 
223
#define ZIP_STAT_ENCRYPTION_METHOD      0x0080u
 
224
#define ZIP_STAT_FLAGS                  0x0100u
185
225
 
186
226
struct zip_stat {
187
227
    zip_uint64_t valid;                 /* which fields have valid values */
200
240
struct zip_file;
201
241
struct zip_source;
202
242
 
 
243
typedef zip_uint32_t zip_flags_t;    
 
244
 
203
245
typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t,
204
246
                                           enum zip_source_cmd);
205
247
 
206
248
 
207
249
 
208
 
ZIP_EXTERN zip_int64_t zip_add(struct zip *, const char *, struct zip_source *);
209
 
ZIP_EXTERN zip_int64_t zip_add_dir(struct zip *, const char *);
 
250
#ifndef ZIP_DISABLE_DEPRECATED
 
251
ZIP_EXTERN zip_int64_t zip_add(struct zip *, const char *, struct zip_source *); /* use zip_file_add */
 
252
ZIP_EXTERN zip_int64_t zip_add_dir(struct zip *, const char *); /* use zip_dir_add */
 
253
ZIP_EXTERN const char *zip_get_file_comment(struct zip *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
 
254
ZIP_EXTERN int zip_get_num_files(struct zip *);  /* use zip_get_num_entries instead */
 
255
ZIP_EXTERN int zip_rename(struct zip *, zip_uint64_t, const char *); /* use zip_file_rename */
 
256
ZIP_EXTERN int zip_replace(struct zip *, zip_uint64_t, struct zip_source *); /* use zip_file_replace */
 
257
ZIP_EXTERN int zip_set_file_comment(struct zip *, zip_uint64_t, const char *, int); /* use zip_file_set_comment */
 
258
#endif
 
259
 
 
260
ZIP_EXTERN int zip_archive_set_tempdir(struct zip *, const char *);
210
261
ZIP_EXTERN int zip_close(struct zip *);
211
262
ZIP_EXTERN int zip_delete(struct zip *, zip_uint64_t);
 
263
ZIP_EXTERN zip_int64_t zip_dir_add(struct zip *, const char *, zip_flags_t);
 
264
ZIP_EXTERN void zip_discard(struct zip *);
212
265
ZIP_EXTERN void zip_error_clear(struct zip *);
213
266
ZIP_EXTERN void zip_error_get(struct zip *, int *, int *);
214
267
ZIP_EXTERN int zip_error_get_sys_type(int);
215
268
ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
216
269
ZIP_EXTERN int zip_fclose(struct zip_file *);
217
270
ZIP_EXTERN struct zip *zip_fdopen(int, int, int *);
 
271
ZIP_EXTERN zip_int64_t zip_file_add(struct zip *, const char *, struct zip_source *, zip_flags_t);
218
272
ZIP_EXTERN void zip_file_error_clear(struct zip_file *);
219
273
ZIP_EXTERN void zip_file_error_get(struct zip_file *, int *, int *);
 
274
ZIP_EXTERN int zip_file_extra_field_delete(struct zip *, zip_uint64_t, zip_uint16_t, zip_flags_t);
 
275
ZIP_EXTERN int zip_file_extra_field_delete_by_id(struct zip *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
 
276
ZIP_EXTERN int zip_file_extra_field_set(struct zip *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t);
 
277
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(struct zip *, zip_uint64_t, zip_flags_t);
 
278
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(struct zip *, zip_uint64_t, zip_uint16_t, zip_flags_t);
 
279
ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(struct zip *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
 
280
ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(struct zip *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
 
281
ZIP_EXTERN const char *zip_file_get_comment(struct zip *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
 
282
ZIP_EXTERN int zip_file_get_external_attributes(struct zip *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *);
 
283
ZIP_EXTERN int zip_file_rename(struct zip *, zip_uint64_t, const char *, zip_flags_t);
 
284
ZIP_EXTERN int zip_file_replace(struct zip *, zip_uint64_t, struct zip_source *, zip_flags_t);
 
285
ZIP_EXTERN int zip_file_set_comment(struct zip *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t);
 
286
ZIP_EXTERN int zip_file_set_external_attributes(struct zip *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
220
287
ZIP_EXTERN const char *zip_file_strerror(struct zip_file *);
221
 
ZIP_EXTERN struct zip_file *zip_fopen(struct zip *, const char *, int);
222
 
ZIP_EXTERN struct zip_file *zip_fopen_encrypted(struct zip *, const char *,
223
 
                                                int, const char *);
224
 
ZIP_EXTERN struct zip_file *zip_fopen_index(struct zip *, zip_uint64_t, int);
225
 
ZIP_EXTERN struct zip_file *zip_fopen_index_encrypted(struct zip *,
226
 
                                                      zip_uint64_t, int,
227
 
                                                      const char *);
 
288
ZIP_EXTERN struct zip_file *zip_fopen(struct zip *, const char *, zip_flags_t);
 
289
ZIP_EXTERN struct zip_file *zip_fopen_encrypted(struct zip *, const char *, zip_flags_t, const char *);
 
290
ZIP_EXTERN struct zip_file *zip_fopen_index(struct zip *, zip_uint64_t, zip_flags_t);
 
291
ZIP_EXTERN struct zip_file *zip_fopen_index_encrypted(struct zip *, zip_uint64_t, zip_flags_t, const char *);
228
292
ZIP_EXTERN zip_int64_t zip_fread(struct zip_file *, void *, zip_uint64_t);
229
 
ZIP_EXTERN const char *zip_get_archive_comment(struct zip *, int *, int);
230
 
ZIP_EXTERN int zip_get_archive_flag(struct zip *, int, int);
231
 
ZIP_EXTERN const char *zip_get_file_comment(struct zip *, zip_uint64_t,
232
 
                                            int *, int);
233
 
ZIP_EXTERN const char *zip_get_file_extra(struct zip *, zip_uint64_t,
234
 
                                          int *, int);
235
 
ZIP_EXTERN const char *zip_get_name(struct zip *, zip_uint64_t, int);
236
 
ZIP_EXTERN zip_uint64_t zip_get_num_entries(struct zip *, int);
237
 
ZIP_EXTERN int zip_get_num_files(struct zip *);  /* deprecated, use zip_get_num_entries instead */
238
 
ZIP_EXTERN int zip_name_locate(struct zip *, const char *, int);
 
293
ZIP_EXTERN const char *zip_get_archive_comment(struct zip *, int *, zip_flags_t);
 
294
ZIP_EXTERN int zip_get_archive_flag(struct zip *, zip_flags_t, zip_flags_t);
 
295
ZIP_EXTERN const char *zip_get_name(struct zip *, zip_uint64_t, zip_flags_t);
 
296
ZIP_EXTERN zip_int64_t zip_get_num_entries(struct zip *, zip_flags_t);
 
297
ZIP_EXTERN zip_int64_t zip_name_locate(struct zip *, const char *, zip_flags_t);
239
298
ZIP_EXTERN struct zip *zip_open(const char *, int, int *);
240
 
ZIP_EXTERN int zip_rename(struct zip *, zip_uint64_t, const char *);
241
 
ZIP_EXTERN int zip_replace(struct zip *, zip_uint64_t, struct zip_source *);
242
 
ZIP_EXTERN int zip_set_archive_comment(struct zip *, const char *, int);
243
 
ZIP_EXTERN int zip_set_archive_flag(struct zip *, int, int);
 
299
ZIP_EXTERN int zip_set_archive_comment(struct zip *, const char *, zip_uint16_t);
 
300
ZIP_EXTERN int zip_set_archive_flag(struct zip *, zip_flags_t, int);
244
301
ZIP_EXTERN int zip_set_default_password(struct zip *, const char *);
245
 
ZIP_EXTERN int zip_set_file_comment(struct zip *, zip_uint64_t,
246
 
                                    const char *, int);
247
 
ZIP_EXTERN int zip_set_file_extra(struct zip *, zip_uint64_t,
248
 
                                  const char *, int);
249
 
ZIP_EXTERN struct zip_source *zip_source_buffer(struct zip *, const void *,
250
 
                                                zip_uint64_t, int);
251
 
ZIP_EXTERN struct zip_source *zip_source_file(struct zip *, const char *,
252
 
                                              zip_uint64_t, zip_int64_t);
253
 
ZIP_EXTERN struct zip_source *zip_source_filep(struct zip *, FILE *,
254
 
                                               zip_uint64_t, zip_int64_t);
 
302
ZIP_EXTERN int zip_set_file_compression(struct zip *, zip_uint64_t, zip_int32_t, zip_uint32_t);
 
303
ZIP_EXTERN struct zip_source *zip_source_buffer(struct zip *, const void *, zip_uint64_t, int);
 
304
ZIP_EXTERN struct zip_source *zip_source_file(struct zip *, const char *, zip_uint64_t, zip_int64_t);
 
305
ZIP_EXTERN struct zip_source *zip_source_filep(struct zip *, FILE *, zip_uint64_t, zip_int64_t);
255
306
ZIP_EXTERN void zip_source_free(struct zip_source *);
256
 
ZIP_EXTERN struct zip_source *zip_source_function(struct zip *,
257
 
                                                  zip_source_callback, void *);
258
 
ZIP_EXTERN struct zip_source *zip_source_zip(struct zip *, struct zip *,
259
 
                                             zip_uint64_t, int,
260
 
                                             zip_uint64_t, zip_int64_t);
261
 
ZIP_EXTERN int zip_stat(struct zip *, const char *, int, struct zip_stat *);
262
 
ZIP_EXTERN int zip_stat_index(struct zip *, zip_uint64_t, int,
263
 
                              struct zip_stat *);
 
307
ZIP_EXTERN struct zip_source *zip_source_function(struct zip *, zip_source_callback, void *);
 
308
ZIP_EXTERN struct zip_source *zip_source_zip(struct zip *, struct zip *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
 
309
ZIP_EXTERN int zip_stat(struct zip *, const char *, zip_flags_t, struct zip_stat *);
 
310
ZIP_EXTERN int zip_stat_index(struct zip *, zip_uint64_t, zip_flags_t, struct zip_stat *);
264
311
ZIP_EXTERN void zip_stat_init(struct zip_stat *);
265
312
ZIP_EXTERN const char *zip_strerror(struct zip *);
266
313
ZIP_EXTERN int zip_unchange(struct zip *, zip_uint64_t);