Fix VERSION condition bug.
This commit is contained in:
parent
a15528e565
commit
f72b753f73
|
@ -240,6 +240,11 @@ second and subsequent calls to pcre2_match().
|
||||||
pcre2_substitute(). An added check for a number greater than the largest group
|
pcre2_substitute(). An added check for a number greater than the largest group
|
||||||
number in the pattern means this is not now needed.
|
number in the pattern means this is not now needed.
|
||||||
|
|
||||||
|
70. The PCRE2-specific VERSION condition didn't work correctly if only one
|
||||||
|
digit was given after the decimal point, or if more than two digits were given.
|
||||||
|
It now works with one or two digits, and gives a compile time error if more are
|
||||||
|
given.
|
||||||
|
|
||||||
|
|
||||||
Version 10.20 30-June-2015
|
Version 10.20 30-June-2015
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH PCRE2PATTERN 3 "16 October 2015" "PCRE2 10.21"
|
.TH PCRE2PATTERN 3 "01 November 2015" "PCRE2 10.21"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
PCRE2 - Perl-compatible regular expressions (revised API)
|
PCRE2 - Perl-compatible regular expressions (revised API)
|
||||||
.SH "PCRE2 REGULAR EXPRESSION DETAILS"
|
.SH "PCRE2 REGULAR EXPRESSION DETAILS"
|
||||||
|
@ -2534,7 +2534,8 @@ For example:
|
||||||
(?(VERSION>=10.4)yes|no)
|
(?(VERSION>=10.4)yes|no)
|
||||||
.sp
|
.sp
|
||||||
This pattern matches "yes" if the PCRE2 version is greater or equal to 10.4, or
|
This pattern matches "yes" if the PCRE2 version is greater or equal to 10.4, or
|
||||||
"no" otherwise.
|
"no" otherwise. The fractional part of the version number may not contain more
|
||||||
|
than two digits.
|
||||||
.
|
.
|
||||||
.
|
.
|
||||||
.SS "Assertion conditions"
|
.SS "Assertion conditions"
|
||||||
|
@ -3392,6 +3393,6 @@ Cambridge, England.
|
||||||
.rs
|
.rs
|
||||||
.sp
|
.sp
|
||||||
.nf
|
.nf
|
||||||
Last updated: 16 October 2015
|
Last updated: 01 November 2015
|
||||||
Copyright (c) 1997-2015 University of Cambridge.
|
Copyright (c) 1997-2015 University of Cambridge.
|
||||||
.fi
|
.fi
|
||||||
|
|
|
@ -3731,7 +3731,7 @@ for (;; ptr++)
|
||||||
if (code > cb->start_workspace + cb->workspace_size -
|
if (code > cb->start_workspace + cb->workspace_size -
|
||||||
WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */
|
WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */
|
||||||
{
|
{
|
||||||
*errorcodeptr = (code >= cb->start_workspace + cb->workspace_size)?
|
*errorcodeptr = (code >= cb->start_workspace + cb->workspace_size)?
|
||||||
ERR52 : ERR86;
|
ERR52 : ERR86;
|
||||||
goto FAILED;
|
goto FAILED;
|
||||||
}
|
}
|
||||||
|
@ -5885,9 +5885,10 @@ for (;; ptr++)
|
||||||
{
|
{
|
||||||
ptr++;
|
ptr++;
|
||||||
while (IS_DIGIT(*ptr)) minor = minor * 10 + *ptr++ - '0';
|
while (IS_DIGIT(*ptr)) minor = minor * 10 + *ptr++ - '0';
|
||||||
|
if (minor < 10) minor *= 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*ptr != CHAR_RIGHT_PARENTHESIS)
|
if (*ptr != CHAR_RIGHT_PARENTHESIS || minor > 99)
|
||||||
{
|
{
|
||||||
*errorcodeptr = ERR79;
|
*errorcodeptr = ERR79;
|
||||||
goto FAILED;
|
goto FAILED;
|
||||||
|
|
|
@ -4018,6 +4018,8 @@
|
||||||
|
|
||||||
/(?(VERSION>=10.0.0)yes|no)/
|
/(?(VERSION>=10.0.0)yes|no)/
|
||||||
|
|
||||||
|
/(?(VERSION=10.101)yes|no)/
|
||||||
|
|
||||||
/abcd/I
|
/abcd/I
|
||||||
|
|
||||||
/abcd/I,no_start_optimize
|
/abcd/I,no_start_optimize
|
||||||
|
|
|
@ -13386,6 +13386,9 @@ Failed: error 179 at offset 11: syntax error in (?(VERSION condition
|
||||||
/(?(VERSION>=10.0.0)yes|no)/
|
/(?(VERSION>=10.0.0)yes|no)/
|
||||||
Failed: error 179 at offset 16: syntax error in (?(VERSION condition
|
Failed: error 179 at offset 16: syntax error in (?(VERSION condition
|
||||||
|
|
||||||
|
/(?(VERSION=10.101)yes|no)/
|
||||||
|
Failed: error 179 at offset 17: syntax error in (?(VERSION condition
|
||||||
|
|
||||||
/abcd/I
|
/abcd/I
|
||||||
Capturing subpattern count = 0
|
Capturing subpattern count = 0
|
||||||
First code unit = 'a'
|
First code unit = 'a'
|
||||||
|
|
Loading…
Reference in New Issue