mirror of
https://github.com/php/php-src.git
synced 2025-01-22 03:34:19 +08:00
Fix a bug that would not fill in the fifth argument to preg_replace()
properly, if the variable was not declared previously.
This commit is contained in:
parent
ad7768ee63
commit
d288f66c7c
@ -40,6 +40,14 @@ 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();
|
||||
|
||||
|
@ -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
|
||||
|
20
ext/pcre/TODO
Normal file
20
ext/pcre/TODO
Normal file
@ -0,0 +1,20 @@
|
||||
- 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)
|
||||
|
||||
|
@ -18,13 +18,6 @@
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* TODO
|
||||
*
|
||||
* - Allow NULL for $matches argument (helps when using preg_match only for
|
||||
* match condition)
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
@ -1622,8 +1615,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)
|
||||
|
Loading…
Reference in New Issue
Block a user