Fix #72691: mb_ereg_search raises a warning if a match zero-width

That warning doesn't make sense (PCRE doesn't throw such a warning either),
so we remove it.
This commit is contained in:
Christoph M. Becker 2016-07-28 13:07:05 +02:00
parent 0ae8c337a3
commit d276e6a838
3 changed files with 53 additions and 3 deletions

5
NEWS
View File

@ -40,6 +40,11 @@ PHP NEWS
- Intl:
. Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain
names). (cmb)
- mbstring:
. Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width).
(cmb)
- PCRE:
. Fixed bug #72688 (preg_match missing group names in matches). (cmb)

View File

@ -1235,9 +1235,6 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "mbregex search failure in mbregex_search(): %s", err_str);
RETVAL_FALSE;
} else {
if (MBREX(search_regs)->beg[0] == MBREX(search_regs)->end[0]) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty regular expression");
}
switch (mode) {
case 1:
array_init(return_value);

View File

@ -0,0 +1,48 @@
--TEST--
Bug #72691 (mb_ereg_search raises a warning if a match zero-width)
--SKIPIF--
<?php
if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
?>
--FILE--
<?php
$str = 'foo';
mb_ereg_search_init($str);
mb_ereg_search('\A');
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search_getregs());
mb_ereg_search('\s*');
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search_getregs());
mb_ereg_search('\w+');
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search_getregs());
mb_ereg_search('\Z');
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search_getregs());
?>
--EXPECT--
int(1)
array(1) {
[0]=>
string(0) ""
}
int(2)
array(1) {
[0]=>
string(0) ""
}
int(3)
array(1) {
[0]=>
string(1) "o"
}
int(4)
array(1) {
[0]=>
string(0) ""
}