hirokawa Sun, 25 Sep 2011 08:22:58 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=317264
Log: revert the previous patch. Changed paths: U php/php-src/branches/PHP_5_4/ext/mbstring/mbstring.c U php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.c U php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.h Modified: php/php-src/branches/PHP_5_4/ext/mbstring/mbstring.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/mbstring/mbstring.c 2011-09-25 08:15:50 UTC (rev 317263) +++ php/php-src/branches/PHP_5_4/ext/mbstring/mbstring.c 2011-09-25 08:22:58 UTC (rev 317264) @@ -467,13 +467,6 @@ ZEND_ARG_INFO(0, string) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_mb_ereg_replace_callback, 0, 0, 3) - ZEND_ARG_INFO(0, pattern) - ZEND_ARG_INFO(0, callback) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, option) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_mb_split, 0, 0, 2) ZEND_ARG_INFO(0, pattern) ZEND_ARG_INFO(0, string) Modified: php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.c 2011-09-25 08:15:50 UTC (rev 317263) +++ php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.c 2011-09-25 08:22:58 UTC (rev 317264) @@ -784,7 +784,7 @@ /* }}} */ /* {{{ _php_mb_regex_ereg_replace_exec */ -static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOptionType options, int is_callable) +static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOptionType options) { zval **arg_pattern_zval; @@ -793,11 +793,9 @@ char *replace; int replace_len; - zval **arg_replace_zval; char *string; int string_len; - zval **arg_string_zval; char *p; php_mb_regex_t *re; @@ -828,20 +826,14 @@ char *option_str = NULL; int option_str_len = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZZ|s", - &arg_pattern_zval, - &arg_replace_zval, - &arg_string_zval, - &option_str, &option_str_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zss|s", + &arg_pattern_zval, + &replace, &replace_len, + &string, &string_len, + &option_str, &option_str_len) == FAILURE) { RETURN_FALSE; } - replace = Z_STRVAL_PP(arg_replace_zval); - replace_len = Z_STRLEN_PP(arg_replace_zval); - - string = Z_STRVAL_PP(arg_string_zval); - string_len = Z_STRLEN_PP(arg_string_zval); - if (option_str != NULL) { _php_mb_regex_init_options(option_str, option_str_len, &options, &syntax, &eval); } else { @@ -867,7 +859,7 @@ RETURN_FALSE; } - if (eval || is_callable) { + if (eval) { pbuf = &eval_buf; description = zend_make_compiled_string_description("mbregex replace" TSRMLS_CC); } else { @@ -875,22 +867,6 @@ description = NULL; } - if (is_callable) { - char *callback_name; - if (!zend_is_callable(*arg_replace_zval, 0, &callback_name TSRMLS_CC)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires argument 2, '%s', to be a valid callback", callback_name); - efree(callback_name); - MAKE_COPY_ZVAL(arg_string_zval, return_value); - RETURN_FALSE; - } - efree(callback_name); - - if (eval) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Option 'e' cannot be used with replacement callback"); - RETURN_FALSE; - } - } - /* do the actual work */ err = 0; pos = (OnigUChar *)string; @@ -935,8 +911,6 @@ i += fwd; } } - - if (eval) { zval v; /* null terminate buffer */ @@ -954,38 +928,7 @@ /* Clean up */ eval_buf.len = 0; zval_dtor(&v); - } else if (is_callable) { - zval *retval_ptr; - zval **args[1]; - zval *subpats; - int i; - - MAKE_STD_ZVAL(subpats); - array_init(subpats); - - for (i = 0; i < regs->num_regs; i++) { - add_next_index_stringl(subpats, string + regs->beg[i], regs->end[i] - regs->beg[i], 1); - } - - args[0] = &subpats; - /* null terminate buffer */ - smart_str_0(&eval_buf); - - if (call_user_function_ex(EG(function_table), NULL, *arg_replace_zval, &retval_ptr, 1, args, 0, - NULL TSRMLS_CC) == SUCCESS && retval_ptr) { - convert_to_string_ex(&retval_ptr); - smart_str_appendl(&out_buf, Z_STRVAL_P(retval_ptr), Z_STRLEN_P(retval_ptr)); - eval_buf.len = 0; - zval_ptr_dtor(&retval_ptr); - } else { - efree(description); - if (!EG(exception)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call custom replacement function"); - } - } - zval_ptr_dtor(&subpats); } - n = regs->end[0]; if ((pos - (OnigUChar *)string) < n) { pos = (OnigUChar *)string + n; @@ -1026,7 +969,7 @@ Replace regular expression for multibyte string */ PHP_FUNCTION(mb_ereg_replace) { - _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 0); + _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } /* }}} */ @@ -1034,18 +977,10 @@ Case insensitive replace regular expression for multibyte string */ PHP_FUNCTION(mb_eregi_replace) { - _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAM_PASSTHRU, ONIG_OPTION_IGNORECASE, 0); + _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAM_PASSTHRU, ONIG_OPTION_IGNORECASE); } /* }}} */ -/* {{{ proto string mb_ereg_replace_callback(string pattern, string callback, string string [, string option]) - regular expression for multibyte string using replacement callback */ -PHP_FUNCTION(mb_ereg_replace_callback) -{ - _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 1); -} -/* }}} */ - /* {{{ proto array mb_split(string pattern, string string [, int limit]) split multibyte string into array by regular expression */ PHP_FUNCTION(mb_split) Modified: php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.h =================================================================== --- php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.h 2011-09-25 08:15:50 UTC (rev 317263) +++ php/php-src/branches/PHP_5_4/ext/mbstring/php_mbregex.h 2011-09-25 08:22:58 UTC (rev 317264) @@ -34,7 +34,6 @@ PHP_FE(mb_eregi, arginfo_mb_eregi) \ PHP_FE(mb_ereg_replace, arginfo_mb_ereg_replace) \ PHP_FE(mb_eregi_replace, arginfo_mb_eregi_replace) \ - PHP_FE(mb_ereg_replace_callback, arginfo_mb_ereg_replace_callback) \ PHP_FE(mb_split, arginfo_mb_split) \ PHP_FE(mb_ereg_match, arginfo_mb_ereg_match) \ PHP_FE(mb_ereg_search, arginfo_mb_ereg_search) \ @@ -82,7 +81,6 @@ PHP_FUNCTION(mb_eregi); PHP_FUNCTION(mb_ereg_replace); PHP_FUNCTION(mb_eregi_replace); -PHP_FUNCTION(mb_ereg_replace_callback); PHP_FUNCTION(mb_split); PHP_FUNCTION(mb_ereg_match); PHP_FUNCTION(mb_ereg_search);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php