mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
convert_cyr_string() should operate only on binary strings.
This commit is contained in:
parent
e8744ca86f
commit
28e7df42db
@ -267,24 +267,22 @@ static char * php_convert_cyr_string(unsigned char *str, int length, char from,
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto string convert_cyr_string(string str, string from, string to)
|
||||
/* {{{ proto string convert_cyr_string(string str, string from, string to) U
|
||||
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));
|
||||
str = (unsigned char*) estrndup(input, input_len);
|
||||
|
||||
php_convert_cyr_string(str, Z_STRLEN_PP(str_arg), Z_STRVAL_PP(fr_cs)[0], Z_STRVAL_PP(to_cs)[0] TSRMLS_CC);
|
||||
php_convert_cyr_string(str, input_len, fr_cs[0], to_cs[0] TSRMLS_CC);
|
||||
RETVAL_STRING((char *)str, 0)
|
||||
}
|
||||
/* }}} */
|
||||
|
Loading…
Reference in New Issue
Block a user