X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=470c47b4ca19128f2b5603d82d3666e3abfb1499;hp=bf3fab60a99111b9d96670808625bb4094dac54e;hb=107576b154825ebac44f2cc08d97565a5349eca8;hpb=71904cb99d728c43ebebb10b695fbb9ac580e66f diff --git a/http_functions.c b/http_functions.c index bf3fab6..470c47b 100644 --- a/http_functions.c +++ b/http_functions.c @@ -952,16 +952,16 @@ PHP_FUNCTION(http_auth_basic_cb) /* {{{ Sara Golemons http_build_query() */ #ifndef ZEND_ENGINE_2 -/* {{{ proto string http_build_query(mixed formdata [, string prefix]) +/* {{{ proto string http_build_query(mixed formdata [, string prefix[, string arg_separator]]) Generates a form-encoded query string from an associative array or object. */ PHP_FUNCTION(http_build_query) { zval *formdata; - char *prefix = NULL, *arg_sep = NULL; - int prefix_len = 0; + char *prefix = NULL, *arg_sep = INI_STR("arg_separator.output"); + int prefix_len = 0, arg_sep_len = strlen(arg_sep); phpstr *formstr = phpstr_new(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|s", &formdata, &prefix, &prefix_len) != SUCCESS) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|ss", &formdata, &prefix, &prefix_len, &arg_sep, &arg_sep_len) != SUCCESS) { RETURN_FALSE; } @@ -970,16 +970,17 @@ PHP_FUNCTION(http_build_query) RETURN_FALSE; } - if (!strlen(arg_sep = INI_STR("arg_separator.output"))) { + if (!arg_sep_len) { arg_sep = HTTP_URL_ARGSEP_DEFAULT; } if (SUCCESS != http_urlencode_hash_implementation_ex(HASH_OF(formdata), formstr, arg_sep, prefix, prefix_len, NULL, 0, NULL, 0, (Z_TYPE_P(formdata) == IS_OBJECT ? formdata : NULL) TSRMLS_CC)) { - phpstr_dtor(formstr); + phpstr_free(formstr); RETURN_FALSE; } if (!formstr->used) { + phpstr_free(formstr); RETURN_NULL(); } @@ -991,6 +992,7 @@ PHP_FUNCTION(http_build_query) PHP_FUNCTION(http_test) { + RETURN_TRUE; } /*