forked from devnoname120/libzip
-
Notifications
You must be signed in to change notification settings - Fork 1
/
API-CHANGES
159 lines (106 loc) · 4.23 KB
/
API-CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
* libzip API changes
This file describes changes in the libzip API and how to adapt your
code for them.
You can define ZIP_DISABLE_DEPRECATED before including <zip.h> to hide
prototypes for deprecated functions, to find out about functions that
might be removed at some point.
* 1.0
** new type zip_error_t
Error information is stored in the newly public type zip_error_t. Use
this to access information about an error, instead of the deprecated
functions that operated on two ints.
deprecated functions: zip_error_get_sys_type(), zip_error_get(),
zip_error_to_str(), zip_file_error_get()
See their man pages for instructions on how to replace them.
The most common affected use is zip_open. The new recommended usage
is:
int err;
if ((za = zip_open(archive, flags, &err)) == NULL) {
zip_error_t error;
zip_error_init_with_code(&error, err);
fprintf(stderr, "can't open zip archive '%s': %s\n", archive, zip_error_strerror(&error));
zip_error_fini(&error);
}
** more typedefs
The following typedefs have been added for better readability:
typedef struct zip zip_t;
typedef struct zip_file zip_file_t;
typedef struct zip_source zip_source_t;
typedef struct zip_stat zip_stat_t;
This means you can use "zip_t" instead of "struct zip", etc.
** torrentzip support removed
torrentzip depends on a particular zlib version which is by now quite
old.
* 0.11
** new type zip_flags_t
The functions which have flags now use the zip_flags_t type for this.
All old flags fit; you need code only to adapt if you were saving flags in a
local variable. Use zip_flags_t for such a variable.
This affects:
zip_fopen()
zip_fopen_encrypted()
zip_fopen_index()
zip_fopen_index_encrypted()
zip_get_archive_comment()
zip_get_archive_flag()
zip_get_num_entries()
zip_get_name()
zip_name_locate()
zip_set_archive_flag()
zip_source_zip()
zip_stat()
zip_stat_index()
*** ZIP_FL_*, ZIP_AFL_*, ZIP_STAT_* are now unsigned constants
To match the new zip_flags_t type.
*** zip_add(), zip_add_dir()
These functions were replaced with zip_file_add() and zip_dir_add(), respectively,
to add a flags argument.
*** zip_rename(), zip_replace()
These functions were replaced with zip_file_rename() and zip_file_replace(),
respectively, to add a flags argument.
*** zip_get_file_comment()
This function was replaced with zip_file_get_comment(); one argument was promoted from
int to zip_uint32_t, the other is now a zip_flags_t.
*** zip_set_file_comment()
This function was replaced with zip_file_set_comment(); an argument was promoted from
int to zip_uint16_t, and a zip_flags_t argument was added.
** integer type size changes
Some argument and return values were not the right size or sign.
*** zip_name_locate()
The return value was int, which can be too small. The function now returns zip_int64_t.
*** zip_get_num_entries()
The return type is now signed, to allow signaling errors.
*** zip_set_archive_comment()
The last argument changed from int to zip_uint16_t.
** extra field handling rewritten
The zip_get_file_extra() and zip_set_file_extra() functions were removed.
They only worked on the whole extra field set.
Instead, you can now set, get, count, and delete each extra field separately,
using the functions:
zip_file_extra_field_delete()
zip_file_extra_field_delete_by_id()
zip_file_extra_field_get()
zip_file_extra_field_get_by_id()
zip_file_extra_fields_count()
zip_file_extra_fields_count_by_id()
zip_file_extra_field_set()
Please read the corresponding man pages for details.
** new functions
*** zip_discard()
The new zip_discard() function closes an archive without committing the
scheduled changes.
*** zip_set_file_compression()
The new zip_set_file_compression() function allows setting compression
levels for files.
** argument changes
*** file names
File names arguments are now allowed to be NULL to have an empty file name.
This mostly affects zip_file_add(), zip_dir_add(), and zip_file_rename().
For zip_get_name(), zip_file_get_comment(), and zip_get_archive_comment(), if
the file name or comment is empty, a string of length 0 is returned.
NULL is returned for errors only.
Previously, NULL was returned for empty/unset file names and comments and
errors, leaving no way to differentiate between the two.
/* Local Variables: */
/* mode: org */
/* End: */