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

Reply via email to