andrei          Fri Oct 27 18:14:19 2006 UTC

  Modified files:              
    /php-src/ext/standard       cyr_convert.c 
  Log:
  convert_cyr_string() should operate only on binary strings.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/cyr_convert.c?r1=1.30&r2=1.31&diff_format=u
Index: php-src/ext/standard/cyr_convert.c
diff -u php-src/ext/standard/cyr_convert.c:1.30 
php-src/ext/standard/cyr_convert.c:1.31
--- php-src/ext/standard/cyr_convert.c:1.30     Wed Jan 18 23:55:27 2006
+++ php-src/ext/standard/cyr_convert.c  Fri Oct 27 18:14:19 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cyr_convert.c,v 1.30 2006/01/18 23:55:27 tony2001 Exp $ */
+/* $Id: cyr_convert.c,v 1.31 2006/10/27 18:14:19 andrei Exp $ */
 
 #include <stdlib.h>
 
@@ -267,24 +267,22 @@
 }
 /* }}} */
 
-/* {{{ 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)
 }
 /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to