Bug #72693 [Ver->Csd]: mb_ereg_search increments search position when a match zero-width
Edit report at https://bugs.php.net/bug.php?id=72693&edit=1
ID: 72693
Updated by: cmb@php.net
Reported by: ju1ius at laposte dot net
Summary: mb_ereg_search increments search position when a
match zero-width
-Status: Verified
+Status: Closed
Type: Bug
Package: mbstring related
Operating System: Debian Sid
PHP Version: 5.6.24
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of cmb
Revision: http://git.php.net/?p=php-src.git;a=commit;h=56cdaecb284b2b292ce1ecb076c1f8b041e47a02
Log: Fix #72693: mb_ereg_search increments search position when a match zero-width
Previous Comments:
------------------------------------------------------------------------
[2016-07-28 12:02:50] cmb@php.net
Related To: Bug #72691
------------------------------------------------------------------------
[2016-07-28 11:59:06] cmb@php.net
Confirmed: <https://3v4l.org/NMmr1>.
------------------------------------------------------------------------
[2016-07-28 11:35:25] cmb@php.net
Related To: Bug #72691
------------------------------------------------------------------------
[2016-07-28 05:32:33] ju1ius at laposte dot net
Description:
------------
When provided a pattern that produces a zero-width match, mb_ereg_search increments search position
by one, eventhough it shouldn't.
Test script:
---------------
<?php
mb_ereg_search_init('foo');
var_dump(mb_ereg_search('\A'));
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search('\s*'));
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search('\w+'));
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search_getregs());
var_dump(mb_ereg_search('\s*'));
var_dump(mb_ereg_search_getpos());
var_dump(mb_ereg_search('\Z'));
var_dump(mb_ereg_search_getpos());
Expected result:
----------------
bool(true)
int(0)
bool(true)
int(0)
bool(true)
int(3)
array(1) {
[0]=>
string(1) "foo"
}
bool(true)
int(3)
bool(true)
int(3)
Actual result:
--------------
// warnings suppressed, see bug #72691
bool(true)
int(1)
bool(true)
int(2)
bool(true)
int(3)
array(1) {
[0]=>
string(1) "o"
}
bool(true)
int(4)
bool(false)
int(3)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72693&edit=1
Thread (3 messages)