diff options
author | Zeev Suraski <zeev@php.net> | 2001-06-13 17:04:36 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-06-13 17:04:36 +0000 |
commit | 1093ed17fb7d4543d79803c387cfd8cf2bc479db (patch) | |
tree | a0466521b9ec20fb5652b37e9e299e177f4a8eee /ext/standard/url.c | |
parent | a86a08cc061462218cd45bf75b495d66b933513b (diff) | |
download | php-git-1093ed17fb7d4543d79803c387cfd8cf2bc479db.tar.gz |
Clean-up
Remove a lot of 100% redundent code
Diffstat (limited to 'ext/standard/url.c')
-rw-r--r-- | ext/standard/url.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/ext/standard/url.c b/ext/standard/url.c index b7710fb738..33fa35777f 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -38,7 +38,7 @@ /* {{{ free_url */ -PHPAPI void php_url_free(php_url * theurl) +PHPAPI void php_url_free(php_url *theurl) { if (theurl->scheme) efree(theurl->scheme); @@ -245,7 +245,7 @@ static unsigned char hexchars[] = "0123456789ABCDEF"; /* {{{ php_url_encode */ -PHPAPI char *php_url_encode(char *s, int len) +PHPAPI char *php_url_encode(char *s, int len, int *new_length) { register int x, y; unsigned char *str; @@ -274,6 +274,9 @@ PHPAPI char *php_url_encode(char *s, int len) #endif /*CHARSET_EBCDIC*/ } str[y] = '\0'; + if (new_length) { + *new_length = y; + } return ((char *) str); } /* }}} */ @@ -284,6 +287,7 @@ PHP_FUNCTION(urlencode) { pval **arg; char *str; + int str_len; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) { WRONG_PARAM_COUNT; @@ -294,8 +298,8 @@ PHP_FUNCTION(urlencode) var_reset(return_value); return; } - str = php_url_encode((*arg)->value.str.val, (*arg)->value.str.len); - RETVAL_STRING(str, 1); + str = php_url_encode((*arg)->value.str.val, (*arg)->value.str.len, &str_len); + RETVAL_STRINGL(str, str_len, 0); efree(str); } /* }}} */ @@ -355,7 +359,7 @@ PHPAPI int php_url_decode(char *str, int len) /* {{{ php_raw_url_encode */ -PHPAPI char *php_raw_url_encode(char *s, int len) +PHPAPI char *php_raw_url_encode(char *s, int len, int *new_length) { register int x, y; unsigned char *str; @@ -380,6 +384,9 @@ PHPAPI char *php_raw_url_encode(char *s, int len) } } str[y] = '\0'; + if (new_length) { + *new_length = y; + } return ((char *) str); } /* }}} */ @@ -390,6 +397,7 @@ PHP_FUNCTION(rawurlencode) { pval **arg; char *str; + int new_len; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) { WRONG_PARAM_COUNT; @@ -399,9 +407,8 @@ PHP_FUNCTION(rawurlencode) if (!(*arg)->value.str.len) { RETURN_FALSE; } - str = php_raw_url_encode((*arg)->value.str.val, (*arg)->value.str.len); - RETVAL_STRING(str, 1); - efree(str); + str = php_raw_url_encode((*arg)->value.str.val, (*arg)->value.str.len, &new_len); + RETVAL_STRINGL(str, new_len, 0); } /* }}} */ |