From: Andrei Zmievski Date: Thu, 6 Apr 2006 21:16:28 +0000 (+0000) Subject: MFB X-Git-Tag: RELEASE_1_3~139 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f37190dc57794a02a5977d134ed5e3270d77ac90;p=php MFB --- diff --git a/Zend/zend_arg_defs.c b/Zend/zend_arg_defs.c index a8483ff3af..721ca127f8 100644 --- a/Zend/zend_arg_defs.c +++ b/Zend/zend_arg_defs.c @@ -40,5 +40,13 @@ ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref, 0) ZEND_ARG_PASS_INFO(1) ZEND_END_ARG_INFO(); +ZEND_BEGIN_ARG_INFO(fifth_arg_force_ref, 0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(1) +ZEND_END_ARG_INFO(); + ZEND_BEGIN_ARG_INFO(all_args_by_ref, 1) ZEND_END_ARG_INFO(); diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index 8a0c092972..12f61d9441 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -36,6 +36,7 @@ extern struct _zend_arg_info first_arg_force_ref[2]; extern struct _zend_arg_info second_arg_force_ref[3]; extern struct _zend_arg_info third_arg_force_ref[4]; extern struct _zend_arg_info fourth_arg_force_ref[5]; +extern struct _zend_arg_info fifth_arg_force_ref[6]; extern struct _zend_arg_info all_args_by_ref[1]; #define ZEND_MODULE_API_NO 20050922 diff --git a/ext/pcre/TODO b/ext/pcre/TODO new file mode 100644 index 0000000000..1c596c0459 --- /dev/null +++ b/ext/pcre/TODO @@ -0,0 +1,21 @@ +- Allow NULL for $matches argument (helps when using preg_match only for + match condition) - might not be possible + +- http://bugs.php.net/bug.php?id=36975 + +- I'd love to see a pattern modifer which says "don't fill $matches except + for the overall match and any specific named captures". This would allow + (?: ...) to be avoided in a lot of cases. + + This could make for non-trivial speed enhancements with regexes that have + a lot of parens when working on long strings, since you'd not have to + copy them multiple times to the $matches array. + + Also, it makes $matches much cleaner after a match where you've named the + captures you're interested in. + + (Note that this would not involve the use of PCRE_NO_AUTO_CAPTURE, as + that would change the semantics of backreferences) + + + diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 7fe4d24078..01a0f5dcd4 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -1626,8 +1626,8 @@ PHP_FUNCTION(preg_grep) zend_function_entry pcre_functions[] = { PHP_FE(preg_match, third_arg_force_ref) PHP_FE(preg_match_all, third_arg_force_ref) - PHP_FE(preg_replace, NULL) - PHP_FE(preg_replace_callback, NULL) + PHP_FE(preg_replace, fifth_arg_force_ref) + PHP_FE(preg_replace_callback, fifth_arg_force_ref) PHP_FE(preg_split, NULL) PHP_FE(preg_quote, NULL) PHP_FE(preg_grep, NULL)