diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/pcre2_match.c | 1 | ||||
-rw-r--r-- | testdata/testinput15 | 4 | ||||
-rw-r--r-- | testdata/testinput2 | 2 | ||||
-rw-r--r-- | testdata/testoutput15 | 8 | ||||
-rw-r--r-- | testdata/testoutput2 | 2 |
6 files changed, 19 insertions, 2 deletions
@@ -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 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 --------------------------- diff --git a/src/pcre2_match.c b/src/pcre2_match.c index 26fc01e..4471183 100644 --- a/src/pcre2_match.c +++ b/src/pcre2_match.c @@ -5971,6 +5971,7 @@ in rrc. */ #define LBL(val) case val: goto L_RM##val; RETURN_SWITCH: +if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; if (Frdepth == 0) return rrc; /* Exit from the top level */ F = (heapframe *)((char *)F - Fback_frame); /* Backtrack */ mb->cb->callout_flags |= PCRE2_CALLOUT_BACKTRACK; /* Note for callouts */ diff --git a/testdata/testinput15 b/testdata/testinput15 index 2cb712d..5dd6897 100644 --- a/testdata/testinput15 +++ b/testdata/testinput15 @@ -231,4 +231,8 @@ /(*LIMIT_HEAP=21)\[(a)]{60}/expand \[a]{60} +/b(?<!ax)(?!cx)/allusedtext + abc + abcz + # End of testinput15 diff --git a/testdata/testinput2 b/testdata/testinput2 index 4377f80..7b44fb0 100644 --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4584,7 +4584,7 @@ B)x/alt_verbnames,mark /abcd/null_context abcd\=null_context -\= Expect error +\= Expect error - not allowed together abcd\=null_context,find_limits abcd\=allusedtext,startchar diff --git a/testdata/testoutput15 b/testdata/testoutput15 index c51cda7..d854412 100644 --- a/testdata/testoutput15 +++ b/testdata/testoutput15 @@ -525,4 +525,12 @@ No match \[a]{60} Failed: error -63: heap limit exceeded +/b(?<!ax)(?!cx)/allusedtext + abc + 0: abc + < > + abcz + 0: abcz + < >> + # End of testinput15 diff --git a/testdata/testoutput2 b/testdata/testoutput2 index 0fd2187..0803d9e 100644 --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14803,7 +14803,7 @@ No match /abcd/null_context abcd\=null_context 0: abcd -\= Expect error +\= Expect error - not allowed together abcd\=null_context,find_limits ** Not allowed together: find_limits null_context abcd\=allusedtext,startchar |