forked from boostorg/regex
Fix for non-greedy repeats see https://sourceforge.net/tracker/index.php?func=detail&aid=1515830&group_id=7586&atid=107586
[SVN r34493]
This commit is contained in:
@ -478,7 +478,7 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_fast()
|
|||||||
return true;
|
return true;
|
||||||
if(count >= rep->max)
|
if(count >= rep->max)
|
||||||
return false;
|
return false;
|
||||||
if(position == last)
|
if(save_pos == last)
|
||||||
return false;
|
return false;
|
||||||
position = ++save_pos;
|
position = ++save_pos;
|
||||||
++count;
|
++count;
|
||||||
@ -572,9 +572,9 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat()
|
|||||||
return true;
|
return true;
|
||||||
if(count >= rep->max)
|
if(count >= rep->max)
|
||||||
return false;
|
return false;
|
||||||
|
position = save_pos;
|
||||||
if(position == last)
|
if(position == last)
|
||||||
return false;
|
return false;
|
||||||
position = save_pos;
|
|
||||||
if(traits_inst.translate(*position, icase) == what)
|
if(traits_inst.translate(*position, icase) == what)
|
||||||
{
|
{
|
||||||
++position;
|
++position;
|
||||||
@ -661,9 +661,9 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_set_repeat()
|
|||||||
return true;
|
return true;
|
||||||
if(count >= rep->max)
|
if(count >= rep->max)
|
||||||
return false;
|
return false;
|
||||||
|
position = save_pos;
|
||||||
if(position == last)
|
if(position == last)
|
||||||
return false;
|
return false;
|
||||||
position = save_pos;
|
|
||||||
if(map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
|
if(map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
|
||||||
{
|
{
|
||||||
++position;
|
++position;
|
||||||
@ -751,9 +751,9 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_long_set_repeat()
|
|||||||
return true;
|
return true;
|
||||||
if(count >= rep->max)
|
if(count >= rep->max)
|
||||||
return false;
|
return false;
|
||||||
|
position = save_pos;
|
||||||
if(position == last)
|
if(position == last)
|
||||||
return false;
|
return false;
|
||||||
position = save_pos;
|
|
||||||
if(position != re_is_set_member(position, last, set, re.get_data(), icase))
|
if(position != re_is_set_member(position, last, set, re.get_data(), icase))
|
||||||
{
|
{
|
||||||
++position;
|
++position;
|
||||||
|
Reference in New Issue
Block a user