diff options
author | Jani Taskinen <jani@php.net> | 2007-11-05 12:44:52 +0000 |
---|---|---|
committer | Jani Taskinen <jani@php.net> | 2007-11-05 12:44:52 +0000 |
commit | 9e235c62ef5e728069abac77d0d36f145d1597c3 (patch) | |
tree | 24767d4bea700fca13cde59fb7e6b2e0a43eb683 /ext/standard/cyr_convert.c | |
parent | 910972fc934c20af7b85d28d9fa5812de3cd92bc (diff) | |
download | php-git-9e235c62ef5e728069abac77d0d36f145d1597c3.tar.gz |
MFH
Diffstat (limited to 'ext/standard/cyr_convert.c')
-rw-r--r-- | ext/standard/cyr_convert.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/ext/standard/cyr_convert.c b/ext/standard/cyr_convert.c index f9095e97e1..62c15e00c2 100644 --- a/ext/standard/cyr_convert.c +++ b/ext/standard/cyr_convert.c @@ -187,7 +187,7 @@ _cyr_mac = { }; /* }}} */ -/* {{{ php_convert_cyr_string +/* {{{ static char * php_convert_cyr_string(unsigned char *str, int length, char from, char to TSRMLS_DC) * This is the function that performs real in-place conversion of the string * between charsets. * Parameters: @@ -271,20 +271,17 @@ static char * php_convert_cyr_string(unsigned char *str, int length, char from, Convert from one Cyrillic character set to another */ PHP_FUNCTION(convert_cyr_string) { - zval **str_arg, **fr_cs, **to_cs; + char *input, *fr_cs, *to_cs; + int input_len, fr_cs_len, to_cs_len; unsigned char *str; - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&str_arg,&fr_cs, &to_cs)==FAILURE) - { - WRONG_PARAM_COUNT; - } - convert_to_string_ex(str_arg); - convert_to_string_ex(fr_cs); - convert_to_string_ex(to_cs); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", &input, &input_len, &fr_cs, &fr_cs_len, &to_cs, &to_cs_len) == FAILURE) { + return; + } - str = (unsigned char*) estrndup(Z_STRVAL_PP(str_arg), Z_STRLEN_PP(str_arg)); - - php_convert_cyr_string(str, Z_STRLEN_PP(str_arg), Z_STRVAL_PP(fr_cs)[0], Z_STRVAL_PP(to_cs)[0] TSRMLS_CC); + str = (unsigned char*) estrndup(input, input_len); + + php_convert_cyr_string(str, input_len, fr_cs[0], to_cs[0] TSRMLS_CC); RETVAL_STRING((char *)str, 0) } /* }}} */ |