@@ -128,3 +128,224 @@ PHP_FUNCTION(git_filter_list_free)
128
128
}
129
129
/* }}} */
130
130
131
+
132
+ /* sys/filter */
133
+
134
+ /* {{{ proto resource git_filter_lookup(string $name)
135
+ */
136
+ PHP_FUNCTION (git_filter_lookup )
137
+ {
138
+ git_filter * result = NULL ;
139
+ char * name = NULL ;
140
+ int name_len = 0 ;
141
+
142
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
143
+ "s" , & name , & name_len ) == FAILURE ) {
144
+ return ;
145
+ }
146
+
147
+ result = git_filter_lookup (name );
148
+ /* TODO(chobie): implement this */
149
+ }
150
+ /* }}} */
151
+
152
+ /* {{{ proto resource git_filter_list_new(resource $repo, $mode)
153
+ */
154
+ PHP_FUNCTION (git_filter_list_new )
155
+ {
156
+ php_git2_t * result = NULL , * _repo = NULL ;
157
+ git_filter_list * out = NULL ;
158
+ zval * repo = NULL , * mode = NULL ;
159
+ int error = 0 ;
160
+
161
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
162
+ "r<git_filter_mode_t>" , & repo , & mode ) == FAILURE ) {
163
+ return ;
164
+ }
165
+
166
+ ZEND_FETCH_RESOURCE (_repo , php_git2_t * , & repo , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
167
+ error = git_filter_list_new (& out , PHP_GIT2_V (_repo , repository ), mode );
168
+ if (php_git2_check_error (error , "git_filter_list_new" TSRMLS_CC )) {
169
+ RETURN_FALSE ;
170
+ }
171
+ if (php_git2_make_resource (& result , PHP_GIT2_TYPE_FILTER_LIST , out , 1 TSRMLS_CC )) {
172
+ RETURN_FALSE ;
173
+ }
174
+ ZVAL_RESOURCE (return_value , GIT2_RVAL_P (result ));
175
+ }
176
+ /* }}} */
177
+
178
+ /* {{{ proto long git_filter_list_push(resource $fl, resource $filter, $payload)
179
+ */
180
+ PHP_FUNCTION (git_filter_list_push )
181
+ {
182
+ int result = 0 , error = 0 ;
183
+ zval * fl = NULL , * filter = NULL , * payload = NULL ;
184
+ php_git2_t * _fl = NULL , * _filter = NULL ;
185
+
186
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
187
+ "rr<void>" , & fl , & filter , & payload ) == FAILURE ) {
188
+ return ;
189
+ }
190
+
191
+ ZEND_FETCH_RESOURCE (_fl , php_git2_t * , & fl , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
192
+ ZEND_FETCH_RESOURCE (_filter , php_git2_t * , & filter , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
193
+ //result = git_filter_list_push(PHP_GIT2_V(_fl, filter_list), PHP_GIT2_V(_filter, filter), cb);
194
+ RETURN_LONG (result );
195
+ }
196
+ /* }}} */
197
+
198
+ /* {{{ proto long git_filter_list_length(resource $fl)
199
+ */
200
+ PHP_FUNCTION (git_filter_list_length )
201
+ {
202
+ size_t result = 0 ;
203
+ zval * fl = NULL ;
204
+ php_git2_t * _fl = NULL ;
205
+
206
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
207
+ "r" , & fl ) == FAILURE ) {
208
+ return ;
209
+ }
210
+
211
+ ZEND_FETCH_RESOURCE (_fl , php_git2_t * , & fl , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
212
+ result = git_filter_list_length (PHP_GIT2_V (_fl , filter_list ));
213
+ RETURN_LONG (result );
214
+ }
215
+ /* }}} */
216
+
217
+ /* {{{ proto resource git_filter_source_repo(resource $src)
218
+ */
219
+ PHP_FUNCTION (git_filter_source_repo )
220
+ {
221
+ git_repository * result = NULL ;
222
+ zval * src = NULL ;
223
+ php_git2_t * _src = NULL ;
224
+
225
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
226
+ "r" , & src ) == FAILURE ) {
227
+ return ;
228
+ }
229
+
230
+ ZEND_FETCH_RESOURCE (_src , php_git2_t * , & src , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
231
+ result = git_filter_source_repo (PHP_GIT2_V (_src , filter_source ));
232
+ /* TODO(chobie): implement this */
233
+ }
234
+ /* }}} */
235
+
236
+ /* {{{ proto string git_filter_source_path(resource $src)
237
+ */
238
+ PHP_FUNCTION (git_filter_source_path )
239
+ {
240
+ const char * result = NULL ;
241
+ zval * src = NULL ;
242
+ php_git2_t * _src = NULL ;
243
+
244
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
245
+ "r" , & src ) == FAILURE ) {
246
+ return ;
247
+ }
248
+
249
+ ZEND_FETCH_RESOURCE (_src , php_git2_t * , & src , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
250
+ result = git_filter_source_path (PHP_GIT2_V (_src , filter_source ));
251
+ RETURN_STRING (result , 1 );
252
+ }
253
+ /* }}} */
254
+
255
+ /* {{{ proto long git_filter_source_filemode(resource $src)
256
+ */
257
+ PHP_FUNCTION (git_filter_source_filemode )
258
+ {
259
+ uint16_t result = 0 ;
260
+ zval * src = NULL ;
261
+ php_git2_t * _src = NULL ;
262
+
263
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
264
+ "r" , & src ) == FAILURE ) {
265
+ return ;
266
+ }
267
+
268
+ ZEND_FETCH_RESOURCE (_src , php_git2_t * , & src , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
269
+ result = git_filter_source_filemode (PHP_GIT2_V (_src , filter_source ));
270
+ RETURN_LONG (result );
271
+ }
272
+ /* }}} */
273
+
274
+ /* {{{ proto resource git_filter_source_id(resource $src)
275
+ */
276
+ PHP_FUNCTION (git_filter_source_id )
277
+ {
278
+ const git_oid * result = NULL ;
279
+ zval * src = NULL ;
280
+ php_git2_t * _src = NULL ;
281
+ char __result [GIT2_OID_HEXSIZE ] = {0 };
282
+
283
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
284
+ "r" , & src ) == FAILURE ) {
285
+ return ;
286
+ }
287
+
288
+ ZEND_FETCH_RESOURCE (_src , php_git2_t * , & src , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
289
+ result = git_filter_source_id (PHP_GIT2_V (_src , filter_source ));
290
+ git_oid_fmt (__result , result );
291
+ RETURN_STRING (__result , 1 );
292
+ }
293
+ /* }}} */
294
+
295
+ /* {{{ proto resource git_filter_source_mode(resource $src)
296
+ */
297
+ PHP_FUNCTION (git_filter_source_mode )
298
+ {
299
+ git_filter_mode_t * result = NULL ;
300
+ zval * src = NULL ;
301
+ php_git2_t * _src = NULL ;
302
+
303
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
304
+ "r" , & src ) == FAILURE ) {
305
+ return ;
306
+ }
307
+
308
+ ZEND_FETCH_RESOURCE (_src , php_git2_t * , & src , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
309
+ result = git_filter_source_mode (PHP_GIT2_V (_src , filter_source ));
310
+ /* TODO(chobie): implement this */
311
+ }
312
+ /* }}} */
313
+
314
+ /* {{{ proto long git_filter_register(string $name, resource $filter, long $priority)
315
+ */
316
+ PHP_FUNCTION (git_filter_register )
317
+ {
318
+ int result = 0 , name_len = 0 , error = 0 ;
319
+ char * name = NULL ;
320
+ zval * filter = NULL ;
321
+ php_git2_t * _filter = NULL ;
322
+ long priority = 0 ;
323
+
324
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
325
+ "srl" , & name , & name_len , & filter , & priority ) == FAILURE ) {
326
+ return ;
327
+ }
328
+
329
+ ZEND_FETCH_RESOURCE (_filter , php_git2_t * , & filter , -1 , PHP_GIT2_RESOURCE_NAME , git2_resource_handle );
330
+ //result = git_filter_register(name, PHP_GIT2_V(_filter, filter), priority);
331
+ RETURN_LONG (result );
332
+ }
333
+ /* }}} */
334
+
335
+ /* {{{ proto long git_filter_unregister(string $name)
336
+ */
337
+ PHP_FUNCTION (git_filter_unregister )
338
+ {
339
+ int result = 0 , name_len = 0 , error = 0 ;
340
+ char * name = NULL ;
341
+
342
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC ,
343
+ "s" , & name , & name_len ) == FAILURE ) {
344
+ return ;
345
+ }
346
+
347
+ result = git_filter_unregister (name );
348
+ RETURN_LONG (result );
349
+ }
350
+ /* }}} */
351
+
0 commit comments