@@ -76,7 +76,6 @@ ZEND_GET_MODULE(zip)
76
76
static void php_zip_free_dir (zend_rsrc_list_entry * rsrc TSRMLS_DC )
77
77
{
78
78
ZZIP_DIR * z_dir = (ZZIP_DIR * ) rsrc -> ptr ;
79
-
80
79
zzip_closedir (z_dir );
81
80
}
82
81
/* }}} */
@@ -87,9 +86,8 @@ static void php_zip_free_entry(zend_rsrc_list_entry *rsrc TSRMLS_DC)
87
86
{
88
87
php_zzip_dirent * entry = (php_zzip_dirent * ) rsrc -> ptr ;
89
88
90
- if (entry -> fp ) {
91
- zzip_close (entry -> fp );
92
- }
89
+ if (entry -> fp )
90
+ zzip_close (entry -> fp );
93
91
94
92
efree (entry );
95
93
}
@@ -99,9 +97,9 @@ static void php_zip_free_entry(zend_rsrc_list_entry *rsrc TSRMLS_DC)
99
97
*/
100
98
PHP_MINIT_FUNCTION (zip )
101
99
{
102
- le_zip_dir = zend_register_list_destructors_ex (php_zip_free_dir , NULL , le_zip_dir_name , module_number );
100
+ le_zip_dir = zend_register_list_destructors_ex (php_zip_free_dir , NULL , le_zip_dir_name , module_number );
103
101
le_zip_entry = zend_register_list_destructors_ex (php_zip_free_entry , NULL , le_zip_entry_name , module_number );
104
- return ( SUCCESS ) ;
102
+ return SUCCESS ;
105
103
}
106
104
/* }}} */
107
105
@@ -120,18 +118,17 @@ PHP_MINFO_FUNCTION(zip)
120
118
Open a new zip archive for reading */
121
119
PHP_FUNCTION (zip_open )
122
120
{
123
- zval * * filename ;
121
+ char * filename ;
124
122
ZZIP_DIR * archive_p = NULL ;
123
+ int filename_len ;
125
124
126
- if (ZEND_NUM_ARGS () != 1 ||
127
- zend_get_parameters_ex (1 , & filename ) == FAILURE ) {
128
- WRONG_PARAM_COUNT ;
129
- }
125
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "s" , & filename , & filename_len ) == FAILURE )
126
+ return ;
130
127
131
- archive_p = zzip_opendir (Z_STRVAL_PP ( filename ) );
128
+ archive_p = zzip_opendir (filename );
132
129
if (archive_p == NULL ) {
133
- php_error (E_WARNING , "Cannot open zip archive %s" , Z_STRVAL_PP ( filename ) );
134
- RETURN_FALSE ;
130
+ php_error (E_WARNING , "Cannot open zip archive %s" , filename );
131
+ RETURN_FALSE ;
135
132
}
136
133
137
134
ZEND_REGISTER_RESOURCE (return_value , archive_p , le_zip_dir );
@@ -142,26 +139,22 @@ PHP_FUNCTION(zip_open)
142
139
Returns the next file in the archive */
143
140
PHP_FUNCTION (zip_read )
144
141
{
145
- zval * * zzip_dp ;
146
- ZZIP_DIR * archive_p = NULL ;
147
- php_zzip_dirent * entry = NULL ;
148
- int ret ;
149
-
150
- if (ZEND_NUM_ARGS () != 1 ||
151
- zend_get_parameters_ex (1 , & zzip_dp ) == FAILURE ) {
152
- WRONG_PARAM_COUNT ;
153
- }
154
-
142
+ zval * * zzip_dp ;
143
+ ZZIP_DIR * archive_p = NULL ;
144
+ php_zzip_dirent * entry = NULL ;
145
+ int ret ;
146
+
147
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r" , & zzip_dp ) == FAILURE )
148
+ return ;
149
+
155
150
ZEND_FETCH_RESOURCE (archive_p , ZZIP_DIR * , zzip_dp , -1 , le_zip_dir_name , le_zip_dir );
156
151
157
152
entry = emalloc (sizeof (php_zzip_dirent ));
158
-
159
153
ret = zzip_dir_read (archive_p , & entry -> dirent );
160
154
if (ret == 0 ) {
161
- efree (entry );
162
- RETURN_FALSE ;
155
+ efree (entry );
156
+ RETURN_FALSE ;
163
157
}
164
-
165
158
entry -> fp = NULL ;
166
159
167
160
ZEND_REGISTER_RESOURCE (return_value , entry , le_zip_entry );
@@ -175,10 +168,8 @@ PHP_FUNCTION(zip_close)
175
168
zval * * zzip_dp ;
176
169
ZZIP_DIR * archive_p = NULL ;
177
170
178
- if (ZEND_NUM_ARGS () != 1 ||
179
- zend_get_parameters_ex (1 , & zzip_dp ) == FAILURE ) {
180
- WRONG_PARAM_COUNT ;
181
- }
171
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r" , & zzip_dp ) == FAILURE )
172
+ return ;
182
173
183
174
ZEND_FETCH_RESOURCE (archive_p , ZZIP_DIR * , zzip_dp , -1 , le_zip_dir_name , le_zip_dir );
184
175
@@ -193,10 +184,8 @@ static void php_zzip_get_entry(INTERNAL_FUNCTION_PARAMETERS, int opt)
193
184
zval * * zzip_ent ;
194
185
php_zzip_dirent * entry = NULL ;
195
186
196
- if (ZEND_NUM_ARGS () != 1 ||
197
- zend_get_parameters_ex (1 , & zzip_ent ) == FAILURE ) {
198
- WRONG_PARAM_COUNT ;
199
- }
187
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r" , & zzip_ent ) == FAILURE )
188
+ return ;
200
189
201
190
ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
202
191
@@ -253,57 +242,47 @@ PHP_FUNCTION(zip_entry_compressionmethod)
253
242
Open a Zip File, pointed by the resource entry */
254
243
PHP_FUNCTION (zip_entry_open )
255
244
{
256
- zval * * zzip_dp , * * zzip_ent , * * mode ;
257
- ZZIP_DIR * archive_p = NULL ;
258
- php_zzip_dirent * entry = NULL ;
259
-
260
- if ( ZEND_NUM_ARGS () < 2 || ZEND_NUM_ARGS () > 3 ||
261
- zend_get_parameters_ex ( ZEND_NUM_ARGS (), & zzip_dp , & zzip_ent , & mode ) == FAILURE ) {
262
- WRONG_PARAM_COUNT ;
263
- }
264
-
265
- ZEND_FETCH_RESOURCE (archive_p , ZZIP_DIR * , zzip_dp , -1 , le_zip_dir_name , le_zip_dir );
266
- ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
245
+ zval * * zzip_dp ;
246
+ zval * * zzip_ent ;
247
+ ZZIP_DIR * archive_p = NULL ;
248
+ php_zzip_dirent * entry = NULL ;
249
+ int mode ;
250
+
251
+ if ( zend_parse_parameters ( ZEND_NUM_ARGS (), "rr|i" , & zzip_dp , & zzip_ent , & mode ) == FAILURE )
252
+ return ;
253
+
254
+ ZEND_FETCH_RESOURCE (archive_p , ZZIP_DIR * , zzip_dp , -1 , le_zip_dir_name , le_zip_dir );
255
+ ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
267
256
268
257
entry -> fp = zzip_file_open (archive_p , entry -> dirent .d_name , O_RDONLY | O_BINARY );
269
258
270
- if (entry -> fp ) {
271
- RETURN_TRUE ;
272
- } else {
273
- RETURN_FALSE ;
274
- }
259
+ if (entry -> fp )
260
+ RETURN_TRUE ;
261
+ else
262
+ RETURN_FALSE ;
275
263
}
276
264
/* }}} */
277
265
278
266
/* {{{ proto string zip_read(resource zip_ent)
279
267
Read X bytes from an opened zip entry */
280
268
PHP_FUNCTION (zip_entry_read )
281
269
{
282
- zval * * zzip_ent , * * length ;
283
- php_zzip_dirent * entry = NULL ;
284
- char * buf = NULL ;
285
- int len = 1024 ,
286
- argc = ZEND_NUM_ARGS (),
287
- ret = 0 ;
288
-
289
- if (argc < 1 || argc > 2 ||
290
- zend_get_parameters_ex (argc , & zzip_ent , & length ) == FAILURE ) {
291
- WRONG_PARAM_COUNT ;
292
- }
293
-
270
+ zval * * zzip_ent ;
271
+ php_zzip_dirent * entry = NULL ;
272
+ char * buf = NULL ;
273
+ int len = 1024 ;
274
+ int ret = 0 ;
275
+
276
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r|i" , & zzip_ent , & len ) == FAILURE )
277
+ return ;
278
+
294
279
ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
295
- if (argc > 1 ) {
296
- convert_to_long_ex (length );
297
- len = Z_LVAL_PP (length );
298
- }
299
280
300
281
buf = emalloc (len + 1 );
301
-
302
282
ret = zzip_read (entry -> fp , buf , len );
303
- if (ret == 0 ) {
304
- RETURN_FALSE ;
305
- }
306
-
283
+ if (ret == 0 )
284
+ RETURN_FALSE ;
285
+ else
307
286
RETURN_STRINGL (buf , len , 0 );
308
287
}
309
288
/* }}} */
@@ -312,15 +291,13 @@ PHP_FUNCTION(zip_entry_read)
312
291
Close a zip entry */
313
292
PHP_FUNCTION (zip_entry_close )
314
293
{
315
- zval * * zzip_ent ;
316
- php_zzip_dirent * entry = NULL ;
294
+ zval * * zzip_ent ;
295
+ php_zzip_dirent * entry = NULL ;
317
296
318
- if (ZEND_NUM_ARGS () != 1 ||
319
- zend_get_parameters_ex (1 , & zzip_ent ) == FAILURE ) {
320
- WRONG_PARAM_COUNT ;
321
- }
297
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "r" , & zzip_ent ) == FAILURE )
298
+ return ;
322
299
323
- ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
300
+ ZEND_FETCH_RESOURCE (entry , php_zzip_dirent * , zzip_ent , -1 , le_zip_entry_name , le_zip_entry );
324
301
325
302
zend_list_delete (Z_LVAL_PP (zzip_ent ));
326
303
}
0 commit comments