summaryrefslogtreecommitdiff
path: root/ext/standard/url.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2001-06-13 17:04:36 +0000
committerZeev Suraski <zeev@php.net>2001-06-13 17:04:36 +0000
commit1093ed17fb7d4543d79803c387cfd8cf2bc479db (patch)
treea0466521b9ec20fb5652b37e9e299e177f4a8eee /ext/standard/url.c
parenta86a08cc061462218cd45bf75b495d66b933513b (diff)
downloadphp-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.c23
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);
}
/* }}} */