Skip to content

Commit bc11496

Browse files
committed
[merge] update code base
1 parent f7adbda commit bc11496

File tree

3 files changed

+309
-119
lines changed

3 files changed

+309
-119
lines changed

filter.c

+221
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,224 @@ PHP_FUNCTION(git_filter_list_free)
128128
}
129129
/* }}} */
130130

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

Comments
 (0)