felipe          Mon Jun 30 17:14:48 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/pcre   php_pcre.c 
    /php-src/ext/pcre/tests     preg_replace_callback3.phpt 
                                preg_replace_callback_error.phpt 
                                preg_replace_error.phpt 
  Log:
  - New parameter parsing API (to preg_replace*)
  - Fixed related tests
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/php_pcre.c?r1=1.168.2.9.2.21.2.16&r2=1.168.2.9.2.21.2.17&diff_format=u
Index: php-src/ext/pcre/php_pcre.c
diff -u php-src/ext/pcre/php_pcre.c:1.168.2.9.2.21.2.16 
php-src/ext/pcre/php_pcre.c:1.168.2.9.2.21.2.17
--- php-src/ext/pcre/php_pcre.c:1.168.2.9.2.21.2.16     Mon Jun 30 12:15:53 2008
+++ php-src/ext/pcre/php_pcre.c Mon Jun 30 17:14:48 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_pcre.c,v 1.168.2.9.2.21.2.16 2008/06/30 12:15:53 felipe Exp $ */
+/* $Id: php_pcre.c,v 1.168.2.9.2.21.2.17 2008/06/30 17:14:48 felipe Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -1289,12 +1289,12 @@
        zval               **regex,
                                   **replace,
                                   **subject,
-                                  **limit,
                                   **subject_entry,
                                   **zcount;
        char                    *result;
        int                              result_len;
        int                              limit_val = -1;
+       long                    limit;
        char                    *string_key;
        ulong                    num_key;
        char                    *callback_name;
@@ -1302,10 +1302,10 @@
        int                             *replace_count_ptr=NULL; 
        
        /* Get function parameters and do error-checking. */
-       if (ZEND_NUM_ARGS() < 3 || ZEND_NUM_ARGS() > 5 ||
-               zend_get_parameters_ex(ZEND_NUM_ARGS(), &regex, &replace, 
&subject, &limit, &zcount) == FAILURE) {
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZZ|lZ", &regex, 
&replace, &subject, &limit, &zcount) == FAILURE) {
+               return;
        }
+       
        if (!is_callable_replace && Z_TYPE_PP(replace) == IS_ARRAY && 
Z_TYPE_PP(regex) != IS_ARRAY) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter 
mismatch, pattern is a string while replacement is an array");
                RETURN_FALSE;
@@ -1330,8 +1330,7 @@
        SEPARATE_ZVAL(subject);
 
        if (ZEND_NUM_ARGS() > 3) {
-               convert_to_long_ex(limit);
-               limit_val = Z_LVAL_PP(limit);
+               limit_val = limit;
        }
        if (ZEND_NUM_ARGS() > 4) {
                replace_count_ptr =& replace_count;
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/preg_replace_callback3.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/pcre/tests/preg_replace_callback3.phpt
diff -u php-src/ext/pcre/tests/preg_replace_callback3.phpt:1.1.2.2 
php-src/ext/pcre/tests/preg_replace_callback3.phpt:1.1.2.2.2.1
--- php-src/ext/pcre/tests/preg_replace_callback3.phpt:1.1.2.2  Wed Aug 30 
16:46:59 2006
+++ php-src/ext/pcre/tests/preg_replace_callback3.phpt  Mon Jun 30 17:14:48 2008
@@ -18,13 +18,13 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
+Warning: preg_replace_callback() expects at least 3 parameters, 0 given in %s 
on line %d
 NULL
 
-Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
+Warning: preg_replace_callback() expects at least 3 parameters, 1 given in %s 
on line %d
 NULL
 
-Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
+Warning: preg_replace_callback() expects at least 3 parameters, 2 given in %s 
on line %d
 NULL
 
 Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid 
callback in %s on line %d
@@ -36,10 +36,9 @@
 Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid 
callback in %s on line %d
 int(3)
 
-Warning: preg_replace_callback(): Requires argument 2, '', to be a valid 
callback in %s on line 1%d
-string(0) ""
+Warning: preg_replace_callback() expects parameter 4 to be long, string given 
in %s on line %d
+NULL
 
-Warning: preg_replace_callback(): Requires argument 2, 'Array', to be a valid 
callback in %s on line %d
-array(0) {
-}
+Warning: preg_replace_callback() expects parameter 4 to be long, array given 
in %s on line %d
+NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/preg_replace_callback_error.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/pcre/tests/preg_replace_callback_error.phpt
diff -u php-src/ext/pcre/tests/preg_replace_callback_error.phpt:1.1.4.2 
php-src/ext/pcre/tests/preg_replace_callback_error.phpt:1.1.4.3
--- php-src/ext/pcre/tests/preg_replace_callback_error.phpt:1.1.4.2     Wed Nov 
21 18:22:01 2007
+++ php-src/ext/pcre/tests/preg_replace_callback_error.phpt     Mon Jun 30 
17:14:48 2008
@@ -33,16 +33,16 @@
 
 -- Testing preg_replace_callback() function with Zero arguments --
 
-Warning: Wrong parameter count for preg_replace_callback() in 
%spreg_replace_callback_error.php on line %d
+Warning: preg_replace_callback() expects at least 3 parameters, 0 given in %s 
on line %d
 NULL
 
 -- Testing preg_replace_callback() function with more than expected no. of 
arguments --
 
-Warning: Wrong parameter count for preg_replace_callback() in 
%spreg_replace_callback_error.php on line %d
+Warning: preg_replace_callback() expects at most 5 parameters, 6 given in %s 
on line %d
 NULL
 
 -- Testing preg_replace_callback() function with less than expected no. of 
arguments --
 
-Warning: Wrong parameter count for preg_replace_callback() in 
%spreg_replace_callback_error.php on line %d
+Warning: preg_replace_callback() expects at least 3 parameters, 2 given in %s 
on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/preg_replace_error.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/pcre/tests/preg_replace_error.phpt
diff -u php-src/ext/pcre/tests/preg_replace_error.phpt:1.1.4.2 
php-src/ext/pcre/tests/preg_replace_error.phpt:1.1.4.3
--- php-src/ext/pcre/tests/preg_replace_error.phpt:1.1.4.2      Wed Nov 21 
18:22:01 2007
+++ php-src/ext/pcre/tests/preg_replace_error.phpt      Mon Jun 30 17:14:48 2008
@@ -30,16 +30,16 @@
 
 -- Testing preg_replace() function with zero arguments --
 
-Warning: Wrong parameter count for preg_replace() in %spreg_replace_error.php 
on line %d
+Warning: preg_replace() expects at least 3 parameters, 0 given in %s on line %d
 NULL
 
 -- Testing preg_replace() function with more than expected no. of arguments --
 
-Warning: Wrong parameter count for preg_replace() in %spreg_replace_error.php 
on line %d
+Warning: preg_replace() expects at most 5 parameters, 6 given in %s on line %d
 NULL
 
 -- Testing preg_replace() function with less than expected no. of arguments --
 
-Warning: Wrong parameter count for preg_replace() in %spreg_replace_error.php 
on line %d
+Warning: preg_replace() expects at least 3 parameters, 2 given in %s on line %d
 NULL
 Done



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

Reply via email to