Fix allusedtext bug, rightmost consulted character incorrect in negative
lookaheads.
This commit is contained in:
parent
ce751bfc84
commit
71eb916d79
|
@ -129,6 +129,10 @@ that is remembered as a minimum length), the whole group's length was
|
||||||
incorrectly recorded as 65535, leading to incorrect "no match" when start-up
|
incorrectly recorded as 65535, leading to incorrect "no match" when start-up
|
||||||
optimizations were in force.
|
optimizations were in force.
|
||||||
|
|
||||||
|
29. The "rightmost consulted character" value was not always correct; in
|
||||||
|
particular, if a pattern ended with a negative lookahead, characters that were
|
||||||
|
inspected in that lookahead were not included.
|
||||||
|
|
||||||
|
|
||||||
Version 10.33 16-April-2019
|
Version 10.33 16-April-2019
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
|
@ -5971,6 +5971,7 @@ in rrc. */
|
||||||
#define LBL(val) case val: goto L_RM##val;
|
#define LBL(val) case val: goto L_RM##val;
|
||||||
|
|
||||||
RETURN_SWITCH:
|
RETURN_SWITCH:
|
||||||
|
if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr;
|
||||||
if (Frdepth == 0) return rrc; /* Exit from the top level */
|
if (Frdepth == 0) return rrc; /* Exit from the top level */
|
||||||
F = (heapframe *)((char *)F - Fback_frame); /* Backtrack */
|
F = (heapframe *)((char *)F - Fback_frame); /* Backtrack */
|
||||||
mb->cb->callout_flags |= PCRE2_CALLOUT_BACKTRACK; /* Note for callouts */
|
mb->cb->callout_flags |= PCRE2_CALLOUT_BACKTRACK; /* Note for callouts */
|
||||||
|
|
|
@ -231,4 +231,8 @@
|
||||||
/(*LIMIT_HEAP=21)\[(a)]{60}/expand
|
/(*LIMIT_HEAP=21)\[(a)]{60}/expand
|
||||||
\[a]{60}
|
\[a]{60}
|
||||||
|
|
||||||
|
/b(?<!ax)(?!cx)/allusedtext
|
||||||
|
abc
|
||||||
|
abcz
|
||||||
|
|
||||||
# End of testinput15
|
# End of testinput15
|
||||||
|
|
|
@ -4584,7 +4584,7 @@ B)x/alt_verbnames,mark
|
||||||
|
|
||||||
/abcd/null_context
|
/abcd/null_context
|
||||||
abcd\=null_context
|
abcd\=null_context
|
||||||
\= Expect error
|
\= Expect error - not allowed together
|
||||||
abcd\=null_context,find_limits
|
abcd\=null_context,find_limits
|
||||||
abcd\=allusedtext,startchar
|
abcd\=allusedtext,startchar
|
||||||
|
|
||||||
|
|
|
@ -525,4 +525,12 @@ No match
|
||||||
\[a]{60}
|
\[a]{60}
|
||||||
Failed: error -63: heap limit exceeded
|
Failed: error -63: heap limit exceeded
|
||||||
|
|
||||||
|
/b(?<!ax)(?!cx)/allusedtext
|
||||||
|
abc
|
||||||
|
0: abc
|
||||||
|
< >
|
||||||
|
abcz
|
||||||
|
0: abcz
|
||||||
|
< >>
|
||||||
|
|
||||||
# End of testinput15
|
# End of testinput15
|
||||||
|
|
|
@ -14803,7 +14803,7 @@ No match
|
||||||
/abcd/null_context
|
/abcd/null_context
|
||||||
abcd\=null_context
|
abcd\=null_context
|
||||||
0: abcd
|
0: abcd
|
||||||
\= Expect error
|
\= Expect error - not allowed together
|
||||||
abcd\=null_context,find_limits
|
abcd\=null_context,find_limits
|
||||||
** Not allowed together: find_limits null_context
|
** Not allowed together: find_limits null_context
|
||||||
abcd\=allusedtext,startchar
|
abcd\=allusedtext,startchar
|
||||||
|
|
Loading…
Reference in New Issue