tony2001                Wed Oct 11 11:53:02 2006 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/mbstring/tests mb_ereg2.phpt 

  Modified files:              
    /php-src/ext/mbstring       php_mbregex.c 
  Log:
  MFH
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/php_mbregex.c?r1=1.53.2.1.2.1&r2=1.53.2.1.2.2&diff_format=u
Index: php-src/ext/mbstring/php_mbregex.c
diff -u php-src/ext/mbstring/php_mbregex.c:1.53.2.1.2.1 
php-src/ext/mbstring/php_mbregex.c:1.53.2.1.2.2
--- php-src/ext/mbstring/php_mbregex.c:1.53.2.1.2.1     Wed Oct 11 11:09:42 2006
+++ php-src/ext/mbstring/php_mbregex.c  Wed Oct 11 11:53:02 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_mbregex.c,v 1.53.2.1.2.1 2006/10/11 11:09:42 tony2001 Exp $ */
+/* $Id: php_mbregex.c,v 1.53.2.1.2.2 2006/10/11 11:53:02 tony2001 Exp $ */
 
 
 #ifdef HAVE_CONFIG_H
@@ -517,7 +517,6 @@
 /* {{{ _php_mb_regex_ereg_exec */
 static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
 {
-       zval tmp;
        zval **arg_pattern, *array;
        char *string;
        int string_len;
@@ -564,19 +563,18 @@
        match_len = 1;
        str = string;
        if (array != NULL) {
-               zval ret_array;
                match_len = regs->end[0] - regs->beg[0];
-               array_init(&ret_array);
+               zval_dtor(array);
+               array_init(array);
                for (i = 0; i < regs->num_regs; i++) {
                        beg = regs->beg[i];
                        end = regs->end[i];
                        if (beg >= 0 && beg < end && end <= string_len) {
-                               add_index_stringl(&ret_array, i, (char 
*)&str[beg], end - beg, 1);
+                               add_index_stringl(array, i, (char *)&str[beg], 
end - beg, 1);
                        } else {
-                               add_index_bool(&ret_array, i, 0);
+                               add_index_bool(array, i, 0);
                        }
                }
-               REPLACE_ZVAL_VALUE(&array, &ret_array, 0);
        }
 
        if (match_len == 0) {
@@ -1098,6 +1096,7 @@
                WRONG_PARAM_COUNT;
                break;
        }
+       convert_to_string_ex(arg_str);
        if (ZEND_NUM_ARGS() > 1) {
                /* create regex pattern buffer */
                convert_to_string_ex(arg_pattern);

http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/tests/mb_ereg2.phpt?view=markup&rev=1.1
Index: php-src/ext/mbstring/tests/mb_ereg2.phpt
+++ php-src/ext/mbstring/tests/mb_ereg2.phpt
--TEST--
mb_ereg() returning matches
--SKIPIF--
<?php if (!function_exists("mb_ereg")) print "skip"; ?>
--FILE--
<?php

$a = -1; $b = -1; $c = -1; 
mbereg($a, $b, $c); 
var_dump($a, $b, $c); 

mberegi($a, $b, $c); 
var_dump($a, $b, $c); 

mbereg_search_init($a, $b, $c); 
var_dump($a, $b, $c);

echo "Done\n";
?>
--EXPECTF--     
int(-1)
int(-1)
array(1) {
  [0]=>
  string(2) "-1"
}
int(-1)
int(-1)
array(1) {
  [0]=>
  string(2) "-1"
}

Notice: Array to string conversion in %s on line %d
int(-1)
int(-1)
array(1) {
  [0]=>
  string(2) "-1"
}
Done

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

Reply via email to