X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=1c8c2a2e01ea0cea71bc67c033e8c882ddcae350;hp=bf3fab60a99111b9d96670808625bb4094dac54e;hb=4771803db3e5de9f9ef64fa926a4e11f8e892d70;hpb=71904cb99d728c43ebebb10b695fbb9ac580e66f diff --git a/http_functions.c b/http_functions.c index bf3fab6..1c8c2a2 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; + int prefix_len = 0, arg_sep_len = 0; + char *prefix = NULL, *arg_sep = INI_STR("arg_separator.output"); 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; } /*