diff options
| author | Antony Dovgal <tony2001@php.net> | 2006-10-11 11:52:41 +0000 | 
|---|---|---|
| committer | Antony Dovgal <tony2001@php.net> | 2006-10-11 11:52:41 +0000 | 
| commit | 08d9facf5144ade95a5bbbba9efc3a596f75c2d5 (patch) | |
| tree | c43f69f74a0d59f538330b63cc7d70a263df4d19 | |
| parent | 77bfbfc880691ba284e94df08858b6c92ceed434 (diff) | |
| download | php-git-08d9facf5144ade95a5bbbba9efc3a596f75c2d5.tar.gz | |
more fixed problems
| -rw-r--r-- | ext/mbstring/php_mbregex.c | 11 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_ereg2.phpt | 41 | 
2 files changed, 46 insertions, 6 deletions
| diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c index 4c381c3755..de8dfddc19 100644 --- a/ext/mbstring/php_mbregex.c +++ b/ext/mbstring/php_mbregex.c @@ -517,7 +517,6 @@ PHP_FUNCTION(mb_regex_encoding)  /* {{{ _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 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)  	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 @@ PHP_FUNCTION(mb_ereg_search_init)  		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); diff --git a/ext/mbstring/tests/mb_ereg2.phpt b/ext/mbstring/tests/mb_ereg2.phpt new file mode 100644 index 0000000000..922a8e78d4 --- /dev/null +++ b/ext/mbstring/tests/mb_ereg2.phpt @@ -0,0 +1,41 @@ +--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 | 
