#include "php_git2.h"
#include "php_git2_priv.h"
#include "refspec.h"
/* {{{ proto string git_refspec_src(resource $refspec)
*/
PHP_FUNCTION(git_refspec_src)
{
const char *result = NULL;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"r", &refspec) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_src(PHP_GIT2_V(_refspec, refspec));
RETURN_STRING(result, 1);
}
/* }}} */
/* {{{ proto string git_refspec_dst(resource $refspec)
*/
PHP_FUNCTION(git_refspec_dst)
{
const char *result = NULL;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"r", &refspec) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_dst(PHP_GIT2_V(_refspec, refspec));
RETURN_STRING(result, 1);
}
/* }}} */
/* {{{ proto string git_refspec_string(resource $refspec)
*/
PHP_FUNCTION(git_refspec_string)
{
const char *result = NULL;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"r", &refspec) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_string(PHP_GIT2_V(_refspec, refspec));
RETURN_STRING(result, 1);
}
/* }}} */
/* {{{ proto long git_refspec_force(resource $refspec)
*/
PHP_FUNCTION(git_refspec_force)
{
int result = 0;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"r", &refspec) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_force(PHP_GIT2_V(_refspec, refspec));
RETURN_LONG(result);
}
/* }}} */
/* {{{ proto long git_refspec_direction(resource $spec)
*/
PHP_FUNCTION(git_refspec_direction)
{
git_direction result;
zval *spec = NULL;
php_git2_t *_spec = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"r", &spec) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_spec, php_git2_t*, &spec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_direction(PHP_GIT2_V(_spec, refspec));
RETURN_LONG(result);
}
/* }}} */
/* {{{ proto long git_refspec_src_matches(resource $refspec, string $refname)
*/
PHP_FUNCTION(git_refspec_src_matches)
{
int result = 0, refname_len = 0;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
char *refname = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"rs", &refspec, &refname, &refname_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_src_matches(PHP_GIT2_V(_refspec, refspec), refname);
RETURN_LONG(result);
}
/* }}} */
/* {{{ proto long git_refspec_dst_matches(resource $refspec, string $refname)
*/
PHP_FUNCTION(git_refspec_dst_matches)
{
int result = 0, refname_len = 0;
zval *refspec = NULL;
php_git2_t *_refspec = NULL;
char *refname = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"rs", &refspec, &refname, &refname_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_refspec, php_git2_t*, &refspec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
result = git_refspec_dst_matches(PHP_GIT2_V(_refspec, refspec), refname);
RETURN_LONG(result);
}
/* }}} */
/* {{{ proto string git_refspec_transform(long $outlen, resource $spec, string $name)
*/
PHP_FUNCTION(git_refspec_transform)
{
// TODO(chobie): fix this implementation
php_git2_t *_spec = NULL;
char out = NULL, *name = NULL;
long outlen = 0;
zval *spec = NULL;
int name_len = 0, error = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"lrs", &outlen, &spec, &name, &name_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_spec, php_git2_t*, &spec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
error = git_refspec_transform(&out, outlen, PHP_GIT2_V(_spec, refspec), name);
if (php_git2_check_error(error, "git_refspec_transform" TSRMLS_CC)) {
RETURN_FALSE;
}
RETURN_STRING(out, 1);
}
/* }}} */
/* {{{ proto string git_refspec_rtransform(long $outlen, resource $spec, string $name)
*/
PHP_FUNCTION(git_refspec_rtransform)
{
// TODO(chobie): fix this implementation
php_git2_t *_spec = NULL;
char out = NULL, *name = NULL;
long outlen = 0;
zval *spec = NULL;
int name_len = 0, error = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"lrs", &outlen, &spec, &name, &name_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(_spec, php_git2_t*, &spec, -1, PHP_GIT2_RESOURCE_NAME, git2_resource_handle);
error = git_refspec_rtransform(&out, outlen, PHP_GIT2_V(_spec, refspec), name);
if (php_git2_check_error(error, "git_refspec_rtransform" TSRMLS_CC)) {
RETURN_FALSE;
}
RETURN_STRING(out, 1);
}
/* }}} */