Source tidies and version etc. updates for 10.31-RC1.

This commit is contained in:
Philip.Hazel 2018-01-13 16:53:02 +00:00
parent 9d197bfe76
commit 958cd1484f
29 changed files with 1305 additions and 1169 deletions

View File

@ -8,7 +8,7 @@ Email domain: cam.ac.uk
University of Cambridge Computing Service, University of Cambridge Computing Service,
Cambridge, England. Cambridge, England.
Copyright (c) 1997-2017 University of Cambridge Copyright (c) 1997-2018 University of Cambridge
All rights reserved All rights reserved
@ -19,7 +19,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester Email local part: hzmester
Emain domain: freemail.hu Emain domain: freemail.hu
Copyright(c) 2010-2017 Zoltan Herczeg Copyright(c) 2010-2018 Zoltan Herczeg
All rights reserved. All rights reserved.
@ -30,7 +30,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester Email local part: hzmester
Emain domain: freemail.hu Emain domain: freemail.hu
Copyright(c) 2009-2017 Zoltan Herczeg Copyright(c) 2009-2018 Zoltan Herczeg
All rights reserved. All rights reserved.
#### ####

View File

@ -432,7 +432,7 @@ SET(PCRE2_SOURCES
src/pcre2_convert.c src/pcre2_convert.c
src/pcre2_dfa_match.c src/pcre2_dfa_match.c
src/pcre2_error.c src/pcre2_error.c
src/pcre2_extuni.c src/pcre2_extuni.c
src/pcre2_find_bracket.c src/pcre2_find_bracket.c
src/pcre2_jit_compile.c src/pcre2_jit_compile.c
src/pcre2_maketables.c src/pcre2_maketables.c

View File

@ -2,8 +2,8 @@ Change Log for PCRE2
-------------------- --------------------
Version 10.31 xx-xxx-201x Version 10.31 13-January-2018
------------------------- -----------------------------
1. Fix typo (missing ]) in VMS code in pcre2test.c. 1. Fix typo (missing ]) in VMS code in pcre2test.c.

View File

@ -26,7 +26,7 @@ Email domain: cam.ac.uk
University of Cambridge Computing Service, University of Cambridge Computing Service,
Cambridge, England. Cambridge, England.
Copyright (c) 1997-2017 University of Cambridge Copyright (c) 1997-2018 University of Cambridge
All rights reserved. All rights reserved.
@ -37,7 +37,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester Email local part: hzmester
Emain domain: freemail.hu Emain domain: freemail.hu
Copyright(c) 2010-2017 Zoltan Herczeg Copyright(c) 2010-2018 Zoltan Herczeg
All rights reserved. All rights reserved.
@ -48,7 +48,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester Email local part: hzmester
Emain domain: freemail.hu Emain domain: freemail.hu
Copyright(c) 2009-2017 Zoltan Herczeg Copyright(c) 2009-2018 Zoltan Herczeg
All rights reserved. All rights reserved.

18
NEWS
View File

@ -1,6 +1,24 @@
News about PCRE2 releases News about PCRE2 releases
------------------------- -------------------------
Version 10.31 13-January-2018
-----------------------------
This is mainly a bugfix and tidying release (see ChangeLog for full details).
However, there are some minor enhancements.
1. New pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and
PCRE2_CONFIG_COMPILED_WIDTHS.
2. New pcre2_pattern_info() option PCRE2_INFO_EXTRAOPTIONS to retrieve the
extra compile time options.
3. There are now public names for all the pcre2_compile() error numbers.
4. Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK bits to a new
field callout_flags in callout blocks.
Version 10.30 14-August-2017 Version 10.30 14-August-2017
---------------------------- ----------------------------

View File

@ -91,10 +91,10 @@ can skip ahead to the CMake section.
pcre2_compile.c pcre2_compile.c
pcre2_config.c pcre2_config.c
pcre2_context.c pcre2_context.c
pcre2_convert.c pcre2_convert.c
pcre2_dfa_match.c pcre2_dfa_match.c
pcre2_error.c pcre2_error.c
pcre2_extuni.c pcre2_extuni.c
pcre2_find_bracket.c pcre2_find_bracket.c
pcre2_jit_compile.c pcre2_jit_compile.c
pcre2_maketables.c pcre2_maketables.c
@ -125,10 +125,10 @@ can skip ahead to the CMake section.
all of whose names begin with "sljit". It also #includes all of whose names begin with "sljit". It also #includes
src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile
these yourself. these yourself.
Not also that the pcre2_fuzzsupport.c file contains special code that is Not also that the pcre2_fuzzsupport.c file contains special code that is
useful to those who want to run fuzzing tests on the PCRE2 library. Unless useful to those who want to run fuzzing tests on the PCRE2 library. Unless
you are doing that, you can ignore it. you are doing that, you can ignore it.
(5) Now link all the compiled code into an object library in whichever form (5) Now link all the compiled code into an object library in whichever form
your system keeps such libraries. This is the basic PCRE2 C 8-bit library. your system keeps such libraries. This is the basic PCRE2 C 8-bit library.
@ -370,7 +370,7 @@ z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
applications can be supported through UNIX System Services, and in such an applications can be supported through UNIX System Services, and in such an
environment it should be possible to build PCRE2 in the same way as in other environment it should be possible to build PCRE2 in the same way as in other
systems, with the EBCDIC related configuration settings, but it is not known if systems, with the EBCDIC related configuration settings, but it is not known if
anybody has tried this. anybody has tried this.
In native z/OS (without UNIX System Services) and in z/VM, special ports are In native z/OS (without UNIX System Services) and in z/VM, special ports are
@ -379,7 +379,7 @@ required. For details, please see file 939 on this web site:
http://www.cbttape.org http://www.cbttape.org
Everything in that location, source and executable, is in EBCDIC and native Everything in that location, source and executable, is in EBCDIC and native
z/OS file formats. The port provides an API for LE languages such as COBOL and z/OS file formats. The port provides an API for LE languages such as COBOL and
for the z/OS and z/VM versions of the Rexx languages. for the z/OS and z/VM versions of the Rexx languages.
=============================== ===============================

2
README
View File

@ -773,7 +773,7 @@ The distribution should contain the files listed below.
src/pcre2_convert.c ) src/pcre2_convert.c )
src/pcre2_dfa_match.c ) src/pcre2_dfa_match.c )
src/pcre2_error.c ) src/pcre2_error.c )
src/pcre2_extuni.c ) src/pcre2_extuni.c )
src/pcre2_find_bracket.c ) src/pcre2_find_bracket.c )
src/pcre2_jit_compile.c ) src/pcre2_jit_compile.c )
src/pcre2_jit_match.c ) sources for the functions in the library, src/pcre2_jit_match.c ) sources for the functions in the library,

View File

@ -11,15 +11,15 @@ dnl be defined as -RC2, for example. For real releases, it should be empty.
m4_define(pcre2_major, [10]) m4_define(pcre2_major, [10])
m4_define(pcre2_minor, [31]) m4_define(pcre2_minor, [31])
m4_define(pcre2_prerelease, [-RC1]) m4_define(pcre2_prerelease, [-RC1])
m4_define(pcre2_date, [2017-09-12]) m4_define(pcre2_date, [2018-01-11])
# NOTE: The CMakeLists.txt file searches for the above variables in the first # NOTE: The CMakeLists.txt file searches for the above variables in the first
# 50 lines of this file. Please update that if the variables above are moved. # 50 lines of this file. Please update that if the variables above are moved.
# Libtool shared library interface versions (current:revision:age) # Libtool shared library interface versions (current:revision:age)
m4_define(libpcre2_8_version, [6:0:6]) m4_define(libpcre2_8_version, [7:0:7])
m4_define(libpcre2_16_version, [6:0:6]) m4_define(libpcre2_16_version, [7:0:7])
m4_define(libpcre2_32_version, [6:0:6]) m4_define(libpcre2_32_version, [7:0:7])
m4_define(libpcre2_posix_version, [2:0:0]) m4_define(libpcre2_posix_version, [2:0:0])
AC_PREREQ(2.57) AC_PREREQ(2.57)

View File

@ -91,10 +91,10 @@ can skip ahead to the CMake section.
pcre2_compile.c pcre2_compile.c
pcre2_config.c pcre2_config.c
pcre2_context.c pcre2_context.c
pcre2_convert.c pcre2_convert.c
pcre2_dfa_match.c pcre2_dfa_match.c
pcre2_error.c pcre2_error.c
pcre2_extuni.c pcre2_extuni.c
pcre2_find_bracket.c pcre2_find_bracket.c
pcre2_jit_compile.c pcre2_jit_compile.c
pcre2_maketables.c pcre2_maketables.c
@ -125,10 +125,10 @@ can skip ahead to the CMake section.
all of whose names begin with "sljit". It also #includes all of whose names begin with "sljit". It also #includes
src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile
these yourself. these yourself.
Not also that the pcre2_fuzzsupport.c file contains special code that is Not also that the pcre2_fuzzsupport.c file contains special code that is
useful to those who want to run fuzzing tests on the PCRE2 library. Unless useful to those who want to run fuzzing tests on the PCRE2 library. Unless
you are doing that, you can ignore it. you are doing that, you can ignore it.
(5) Now link all the compiled code into an object library in whichever form (5) Now link all the compiled code into an object library in whichever form
your system keeps such libraries. This is the basic PCRE2 C 8-bit library. your system keeps such libraries. This is the basic PCRE2 C 8-bit library.
@ -370,7 +370,7 @@ z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
applications can be supported through UNIX System Services, and in such an applications can be supported through UNIX System Services, and in such an
environment it should be possible to build PCRE2 in the same way as in other environment it should be possible to build PCRE2 in the same way as in other
systems, with the EBCDIC related configuration settings, but it is not known if systems, with the EBCDIC related configuration settings, but it is not known if
anybody has tried this. anybody has tried this.
In native z/OS (without UNIX System Services) and in z/VM, special ports are In native z/OS (without UNIX System Services) and in z/VM, special ports are
@ -379,7 +379,7 @@ required. For details, please see file 939 on this web site:
http://www.cbttape.org http://www.cbttape.org
Everything in that location, source and executable, is in EBCDIC and native Everything in that location, source and executable, is in EBCDIC and native
z/OS file formats. The port provides an API for LE languages such as COBOL and z/OS file formats. The port provides an API for LE languages such as COBOL and
for the z/OS and z/VM versions of the Rexx languages. for the z/OS and z/VM versions of the Rexx languages.
=============================== ===============================

View File

@ -773,7 +773,7 @@ The distribution should contain the files listed below.
src/pcre2_convert.c ) src/pcre2_convert.c )
src/pcre2_dfa_match.c ) src/pcre2_dfa_match.c )
src/pcre2_error.c ) src/pcre2_error.c )
src/pcre2_extuni.c ) src/pcre2_extuni.c )
src/pcre2_find_bracket.c ) src/pcre2_find_bracket.c )
src/pcre2_jit_compile.c ) src/pcre2_jit_compile.c )
src/pcre2_jit_match.c ) sources for the functions in the library, src/pcre2_jit_match.c ) sources for the functions in the library,

View File

@ -32,8 +32,8 @@ name is zero-terminated, and is within the compiled pattern. The length of the
name is in the preceding code unit. If no name is available, NULL is returned. name is in the preceding code unit. If no name is available, NULL is returned.
</P> </P>
<P> <P>
After a successful match, the name that is returned is the last one on the After a successful match, the name that is returned is the last one on the
matching path. After a failed match or a partial match, the last encountered matching path. After a failed match or a partial match, the last encountered
name is returned. name is returned.
</P> </P>
<P> <P>

View File

@ -920,7 +920,7 @@ The <i>offset_limit</i> parameter limits how far an unanchored search can
advance in the subject string. The default value is PCRE2_UNSET. The advance in the subject string. The default value is PCRE2_UNSET. The
<b>pcre2_match()</b> and <b>pcre2_dfa_match()</b> functions return <b>pcre2_match()</b> and <b>pcre2_dfa_match()</b> functions return
PCRE2_ERROR_NOMATCH if a match with a starting point before or at the given PCRE2_ERROR_NOMATCH if a match with a starting point before or at the given
offset is not found. The <b>pcre2_substitute()</b> function makes no more offset is not found. The <b>pcre2_substitute()</b> function makes no more
substitutions. substitutions.
</P> </P>
<P> <P>
@ -939,10 +939,10 @@ PCRE2_USE_OFFSET_LIMIT is not set, an error is generated.
<P> <P>
The offset limit facility can be used to track progress when searching large The offset limit facility can be used to track progress when searching large
subject strings or to limit the extent of global substitutions. See also the subject strings or to limit the extent of global substitutions. See also the
PCRE2_FIRSTLINE option, which requires a match to start within the first line PCRE2_FIRSTLINE option, which requires a match to start before or at the first
of the subject. If this is set with an offset limit, a match must occur in the newline that follows the start of matching in the subject. If this is set with
first line and also within the offset limit. In other words, whichever limit an offset limit, a match must occur in the first line and also within the
comes first is used. offset limit. In other words, whichever limit comes first is used.
<br> <br>
<br> <br>
<b>int pcre2_set_heap_limit(pcre2_match_context *<i>mcontext</i>,</b> <b>int pcre2_set_heap_limit(pcre2_match_context *<i>mcontext</i>,</b>
@ -1506,11 +1506,16 @@ changed within a pattern by a (?xx) option setting.
PCRE2_FIRSTLINE PCRE2_FIRSTLINE
</pre> </pre>
If this option is set, the start of an unanchored pattern match must be before If this option is set, the start of an unanchored pattern match must be before
or at the first newline in the subject string, though the matched text may or at the first newline in the subject string following the start of matching,
continue over the newline. See also PCRE2_USE_OFFSET_LIMIT, which provides a though the matched text may continue over the newline. If <i>startoffset</i> is
more general limiting facility. If PCRE2_FIRSTLINE is set with an offset limit, non-zero, the limiting newline is not necessarily the first newline in the
a match must occur in the first line and also within the offset limit. In other subject. For example, if the subject string is "abc\nxyz" (where \n
words, whichever limit comes first is used. represents a single-character newline) a pattern match for "yz" succeeds with
PCRE2_FIRSTLINE if <i>startoffset</i> is greater than 3. See also
PCRE2_USE_OFFSET_LIMIT, which provides a more general limiting facility. If
PCRE2_FIRSTLINE is set with an offset limit, a match must occur in the first
line and also within the offset limit. In other words, whichever limit comes
first is used.
<pre> <pre>
PCRE2_LITERAL PCRE2_LITERAL
</pre> </pre>
@ -1945,13 +1950,13 @@ are as follows:
<pre> <pre>
PCRE2_INFO_ALLOPTIONS PCRE2_INFO_ALLOPTIONS
PCRE2_INFO_ARGOPTIONS PCRE2_INFO_ARGOPTIONS
PCRE2_INFO_EXTRAOPTIONS PCRE2_INFO_EXTRAOPTIONS
</pre> </pre>
Return copies of the pattern's options. The third argument should point to a Return copies of the pattern's options. The third argument should point to a
<b>uint32_t</b> variable. PCRE2_INFO_ARGOPTIONS returns exactly the options that <b>uint32_t</b> variable. PCRE2_INFO_ARGOPTIONS returns exactly the options that
were passed to <b>pcre2_compile()</b>, whereas PCRE2_INFO_ALLOPTIONS returns were passed to <b>pcre2_compile()</b>, whereas PCRE2_INFO_ALLOPTIONS returns
the compile options as modified by any top-level (*XXX) option settings such as the compile options as modified by any top-level (*XXX) option settings such as
(*UTF) at the start of the pattern itself. PCRE2_INFO_EXTRAOPTIONS returns the (*UTF) at the start of the pattern itself. PCRE2_INFO_EXTRAOPTIONS returns the
extra options that were set in the compile context by calling the extra options that were set in the compile context by calling the
pcre2_set_compile_extra_options() function. pcre2_set_compile_extra_options() function.
</P> </P>
@ -3167,7 +3172,7 @@ options can be set in the <i>options</i> argument of <b>pcre2_substitute()</b>.
PCRE2_SUBSTITUTE_GLOBAL causes the function to iterate over the subject string, PCRE2_SUBSTITUTE_GLOBAL causes the function to iterate over the subject string,
replacing every matching substring. If this option is not set, only the first replacing every matching substring. If this option is not set, only the first
matching substring is replaced. The search for matches takes place in the matching substring is replaced. The search for matches takes place in the
original subject string (that is, previous replacements do not affect it). original subject string (that is, previous replacements do not affect it).
Iteration is implemented by advancing the <i>startoffset</i> value for each Iteration is implemented by advancing the <i>startoffset</i> value for each
search, which is always passed the entire subject string. If an offset limit is search, which is always passed the entire subject string. If an offset limit is
set in the match context, searching stops when that limit is reached. set in the match context, searching stops when that limit is reached.
@ -3589,7 +3594,7 @@ Cambridge, England.
</P> </P>
<br><a name="SEC42" href="#TOC1">REVISION</a><br> <br><a name="SEC42" href="#TOC1">REVISION</a><br>
<P> <P>
Last updated: 16 December 2017 Last updated: 31 December 2017
<br> <br>
Copyright &copy; 1997-2017 University of Cambridge. Copyright &copy; 1997-2017 University of Cambridge.
<br> <br>

View File

@ -464,7 +464,7 @@ given any number of times. If a directory matches both <b>--include-dir</b> and
<b>-L</b>, <b>--files-without-match</b> <b>-L</b>, <b>--files-without-match</b>
Instead of outputting lines from the files, just output the names of the files Instead of outputting lines from the files, just output the names of the files
that do not contain any lines that would have been output. Each file name is that do not contain any lines that would have been output. Each file name is
output once, on a separate line. This option overrides any previous <b>-H</b>, output once, on a separate line. This option overrides any previous <b>-H</b>,
<b>-h</b>, or <b>-l</b> options. <b>-h</b>, or <b>-l</b> options.
</P> </P>
<P> <P>
@ -494,7 +494,7 @@ to terminal is normally automatically flushed by the operating system. This
option can be useful when the input or output is attached to a pipe and you do option can be useful when the input or output is attached to a pipe and you do
not want <b>pcre2grep</b> to buffer up large amounts of data. However, its use not want <b>pcre2grep</b> to buffer up large amounts of data. However, its use
will affect performance, and the <b>-M</b> (multiline) option ceases to work. will affect performance, and the <b>-M</b> (multiline) option ceases to work.
When input is from a compressed .gz or .bz2 file, <b>--line-buffered</b> is When input is from a compressed .gz or .bz2 file, <b>--line-buffered</b> is
ignored. ignored.
</P> </P>
<P> <P>
@ -931,7 +931,7 @@ matches were found in other files) or too many matching errors. Using the
affect the return code. affect the return code.
</P> </P>
<P> <P>
When run under VMS, the return code is placed in the symbol PCRE2GREP_RC When run under VMS, the return code is placed in the symbol PCRE2GREP_RC
because VMS does not distinguish between exit(0) and exit(1). because VMS does not distinguish between exit(0) and exit(1).
</P> </P>
<br><a name="SEC13" href="#TOC1">SEE ALSO</a><br> <br><a name="SEC13" href="#TOC1">SEE ALSO</a><br>

View File

@ -513,8 +513,8 @@ limited to certain values, as follows:
All UTF modes no greater than 0x10ffff and a valid codepoint All UTF modes no greater than 0x10ffff and a valid codepoint
</pre> </pre>
Invalid Unicode codepoints are all those in the range 0xd800 to 0xdfff (the Invalid Unicode codepoints are all those in the range 0xd800 to 0xdfff (the
so-called "surrogate" codepoints). The check for these can be disabled by the so-called "surrogate" codepoints). The check for these can be disabled by the
caller of <b>pcre2_compile()</b> by setting the option caller of <b>pcre2_compile()</b> by setting the option
PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES. PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES.
</P> </P>
<br><b> <br><b>
@ -1416,9 +1416,9 @@ Ranges normally include all code points between the start and end characters,
inclusive. They can also be used for code points specified numerically, for inclusive. They can also be used for code points specified numerically, for
example [\000-\037]. Ranges can include any characters that are valid for the example [\000-\037]. Ranges can include any characters that are valid for the
current mode. In any UTF mode, the so-called "surrogate" characters (those current mode. In any UTF mode, the so-called "surrogate" characters (those
whose code points lie between 0xd800 and 0xdfff inclusive) may not be specified whose code points lie between 0xd800 and 0xdfff inclusive) may not be specified
explicitly by default (the PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES option disables explicitly by default (the PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES option disables
this check). However, ranges such as [\x{d7ff}-\x{e000}], which include the this check). However, ranges such as [\x{d7ff}-\x{e000}], which include the
surrogates, are always permitted. surrogates, are always permitted.
</P> </P>
<P> <P>

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@ this function's argument, this function returns a pointer to the last (*MARK),
name is zero-terminated, and is within the compiled pattern. The length of the name is zero-terminated, and is within the compiled pattern. The length of the
name is in the preceding code unit. If no name is available, NULL is returned. name is in the preceding code unit. If no name is available, NULL is returned.
.P .P
After a successful match, the name that is returned is the last one on the After a successful match, the name that is returned is the last one on the
matching path. After a failed match or a partial match, the last encountered matching path. After a failed match or a partial match, the last encountered
name is returned. name is returned.
.P .P
There is a complete description of the PCRE2 native API in the There is a complete description of the PCRE2 native API in the

View File

@ -859,7 +859,7 @@ The \fIoffset_limit\fP parameter limits how far an unanchored search can
advance in the subject string. The default value is PCRE2_UNSET. The advance in the subject string. The default value is PCRE2_UNSET. The
\fBpcre2_match()\fP and \fBpcre2_dfa_match()\fP functions return \fBpcre2_match()\fP and \fBpcre2_dfa_match()\fP functions return
PCRE2_ERROR_NOMATCH if a match with a starting point before or at the given PCRE2_ERROR_NOMATCH if a match with a starting point before or at the given
offset is not found. The \fBpcre2_substitute()\fP function makes no more offset is not found. The \fBpcre2_substitute()\fP function makes no more
substitutions. substitutions.
.P .P
For example, if the pattern /abc/ is matched against "123abc" with an offset For example, if the pattern /abc/ is matched against "123abc" with an offset
@ -1447,8 +1447,8 @@ changed within a pattern by a (?xx) option setting.
.sp .sp
If this option is set, the start of an unanchored pattern match must be before If this option is set, the start of an unanchored pattern match must be before
or at the first newline in the subject string following the start of matching, or at the first newline in the subject string following the start of matching,
though the matched text may continue over the newline. If \fIstartoffset\fP is though the matched text may continue over the newline. If \fIstartoffset\fP is
non-zero, the limiting newline is not necessarily the first newline in the non-zero, the limiting newline is not necessarily the first newline in the
subject. For example, if the subject string is "abc\enxyz" (where \en subject. For example, if the subject string is "abc\enxyz" (where \en
represents a single-character newline) a pattern match for "yz" succeeds with represents a single-character newline) a pattern match for "yz" succeeds with
PCRE2_FIRSTLINE if \fIstartoffset\fP is greater than 3. See also PCRE2_FIRSTLINE if \fIstartoffset\fP is greater than 3. See also
@ -1909,13 +1909,13 @@ are as follows:
.sp .sp
PCRE2_INFO_ALLOPTIONS PCRE2_INFO_ALLOPTIONS
PCRE2_INFO_ARGOPTIONS PCRE2_INFO_ARGOPTIONS
PCRE2_INFO_EXTRAOPTIONS PCRE2_INFO_EXTRAOPTIONS
.sp .sp
Return copies of the pattern's options. The third argument should point to a Return copies of the pattern's options. The third argument should point to a
\fBuint32_t\fP variable. PCRE2_INFO_ARGOPTIONS returns exactly the options that \fBuint32_t\fP variable. PCRE2_INFO_ARGOPTIONS returns exactly the options that
were passed to \fBpcre2_compile()\fP, whereas PCRE2_INFO_ALLOPTIONS returns were passed to \fBpcre2_compile()\fP, whereas PCRE2_INFO_ALLOPTIONS returns
the compile options as modified by any top-level (*XXX) option settings such as the compile options as modified by any top-level (*XXX) option settings such as
(*UTF) at the start of the pattern itself. PCRE2_INFO_EXTRAOPTIONS returns the (*UTF) at the start of the pattern itself. PCRE2_INFO_EXTRAOPTIONS returns the
extra options that were set in the compile context by calling the extra options that were set in the compile context by calling the
pcre2_set_compile_extra_options() function. pcre2_set_compile_extra_options() function.
.P .P
@ -3180,7 +3180,7 @@ options can be set in the \fIoptions\fP argument of \fBpcre2_substitute()\fP.
PCRE2_SUBSTITUTE_GLOBAL causes the function to iterate over the subject string, PCRE2_SUBSTITUTE_GLOBAL causes the function to iterate over the subject string,
replacing every matching substring. If this option is not set, only the first replacing every matching substring. If this option is not set, only the first
matching substring is replaced. The search for matches takes place in the matching substring is replaced. The search for matches takes place in the
original subject string (that is, previous replacements do not affect it). original subject string (that is, previous replacements do not affect it).
Iteration is implemented by advancing the \fIstartoffset\fP value for each Iteration is implemented by advancing the \fIstartoffset\fP value for each
search, which is always passed the entire subject string. If an offset limit is search, which is always passed the entire subject string. If an offset limit is
set in the match context, searching stops when that limit is reached. set in the match context, searching stops when that limit is reached.

View File

@ -400,7 +400,7 @@ given any number of times. If a directory matches both \fB--include-dir\fP and
\fB-L\fP, \fB--files-without-match\fP \fB-L\fP, \fB--files-without-match\fP
Instead of outputting lines from the files, just output the names of the files Instead of outputting lines from the files, just output the names of the files
that do not contain any lines that would have been output. Each file name is that do not contain any lines that would have been output. Each file name is
output once, on a separate line. This option overrides any previous \fB-H\fP, output once, on a separate line. This option overrides any previous \fB-H\fP,
\fB-h\fP, or \fB-l\fP options. \fB-h\fP, or \fB-l\fP options.
.TP .TP
\fB-l\fP, \fB--files-with-matches\fP \fB-l\fP, \fB--files-with-matches\fP
@ -427,7 +427,7 @@ to terminal is normally automatically flushed by the operating system. This
option can be useful when the input or output is attached to a pipe and you do option can be useful when the input or output is attached to a pipe and you do
not want \fBpcre2grep\fP to buffer up large amounts of data. However, its use not want \fBpcre2grep\fP to buffer up large amounts of data. However, its use
will affect performance, and the \fB-M\fP (multiline) option ceases to work. will affect performance, and the \fB-M\fP (multiline) option ceases to work.
When input is from a compressed .gz or .bz2 file, \fB--line-buffered\fP is When input is from a compressed .gz or .bz2 file, \fB--line-buffered\fP is
ignored. ignored.
.TP .TP
\fB--line-offsets\fP \fB--line-offsets\fP
@ -838,7 +838,7 @@ matches were found in other files) or too many matching errors. Using the
\fB-s\fP option to suppress error messages about inaccessible files does not \fB-s\fP option to suppress error messages about inaccessible files does not
affect the return code. affect the return code.
.P .P
When run under VMS, the return code is placed in the symbol PCRE2GREP_RC When run under VMS, the return code is placed in the symbol PCRE2GREP_RC
because VMS does not distinguish between exit(0) and exit(1). because VMS does not distinguish between exit(0) and exit(1).
. .
. .

View File

@ -493,8 +493,8 @@ limited to certain values, as follows:
All UTF modes no greater than 0x10ffff and a valid codepoint All UTF modes no greater than 0x10ffff and a valid codepoint
.sp .sp
Invalid Unicode codepoints are all those in the range 0xd800 to 0xdfff (the Invalid Unicode codepoints are all those in the range 0xd800 to 0xdfff (the
so-called "surrogate" codepoints). The check for these can be disabled by the so-called "surrogate" codepoints). The check for these can be disabled by the
caller of \fBpcre2_compile()\fP by setting the option caller of \fBpcre2_compile()\fP by setting the option
PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES. PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES.
. .
. .
@ -1407,9 +1407,9 @@ Ranges normally include all code points between the start and end characters,
inclusive. They can also be used for code points specified numerically, for inclusive. They can also be used for code points specified numerically, for
example [\e000-\e037]. Ranges can include any characters that are valid for the example [\e000-\e037]. Ranges can include any characters that are valid for the
current mode. In any UTF mode, the so-called "surrogate" characters (those current mode. In any UTF mode, the so-called "surrogate" characters (those
whose code points lie between 0xd800 and 0xdfff inclusive) may not be specified whose code points lie between 0xd800 and 0xdfff inclusive) may not be specified
explicitly by default (the PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES option disables explicitly by default (the PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES option disables
this check). However, ranges such as [\ex{d7ff}-\ex{e000}], which include the this check). However, ranges such as [\ex{d7ff}-\ex{e000}], which include the
surrogates, are always permitted. surrogates, are always permitted.
.P .P
There is a special case in EBCDIC environments for ranges whose end points are There is a special case in EBCDIC environments for ranges whose end points are

View File

@ -210,7 +210,7 @@ sure both macros are undefined; an emulation function will then be used. */
#define PACKAGE_NAME "PCRE2" #define PACKAGE_NAME "PCRE2"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "PCRE2 10.30" #define PACKAGE_STRING "PCRE2 10.31-RC1"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "pcre2" #define PACKAGE_TARNAME "pcre2"
@ -219,7 +219,7 @@ sure both macros are undefined; an emulation function will then be used. */
#define PACKAGE_URL "" #define PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "10.30" #define PACKAGE_VERSION "10.31-RC1"
/* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested /* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested
parentheses (of any kind) in a pattern. This limits the amount of system parentheses (of any kind) in a pattern. This limits the amount of system
@ -339,7 +339,7 @@ sure both macros are undefined; an emulation function will then be used. */
#endif #endif
/* Version number of package */ /* Version number of package */
#define VERSION "10.30" #define VERSION "10.31-RC1"
/* Define to 1 if on MINIX. */ /* Define to 1 if on MINIX. */
/* #undef _MINIX */ /* #undef _MINIX */

View File

@ -44,7 +44,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define PCRE2_MAJOR 10 #define PCRE2_MAJOR 10
#define PCRE2_MINOR 31 #define PCRE2_MINOR 31
#define PCRE2_PRERELEASE -RC1 #define PCRE2_PRERELEASE -RC1
#define PCRE2_DATE 2017-09-12 #define PCRE2_DATE 2018-01-11
/* When an application links to a PCRE DLL in Windows, the symbols that are /* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE2, the appropriate imported have to be identified as such. When building PCRE2, the appropriate

View File

@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
/* The current PCRE version information. */ /* The current PCRE version information. */
#define PCRE2_MAJOR 10 #define PCRE2_MAJOR 10
#define PCRE2_MINOR 30 #define PCRE2_MINOR 31
#define PCRE2_PRERELEASE #define PCRE2_PRERELEASE -RC1
#define PCRE2_DATE 2017-08-14 #define PCRE2_DATE 2018-01-11
/* When an application links to a PCRE DLL in Windows, the symbols that are /* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE2, the appropriate imported have to be identified as such. When building PCRE2, the appropriate
@ -208,7 +208,104 @@ greater than zero. */
#define PCRE2_BSR_UNICODE 1 #define PCRE2_BSR_UNICODE 1
#define PCRE2_BSR_ANYCRLF 2 #define PCRE2_BSR_ANYCRLF 2
/* Error codes: no match and partial match are "expected" errors. */ /* Error codes for pcre2_compile(). Some of these are also used by
pcre2_pattern_convert(). */
#define PCRE2_ERROR_END_BACKSLASH 101
#define PCRE2_ERROR_END_BACKSLASH_C 102
#define PCRE2_ERROR_UNKNOWN_ESCAPE 103
#define PCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER 104
#define PCRE2_ERROR_QUANTIFIER_TOO_BIG 105
#define PCRE2_ERROR_MISSING_SQUARE_BRACKET 106
#define PCRE2_ERROR_ESCAPE_INVALID_IN_CLASS 107
#define PCRE2_ERROR_CLASS_RANGE_ORDER 108
#define PCRE2_ERROR_QUANTIFIER_INVALID 109
#define PCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT 110
#define PCRE2_ERROR_INVALID_AFTER_PARENS_QUERY 111
#define PCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS 112
#define PCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING 113
#define PCRE2_ERROR_MISSING_CLOSING_PARENTHESIS 114
#define PCRE2_ERROR_BAD_SUBPATTERN_REFERENCE 115
#define PCRE2_ERROR_NULL_PATTERN 116
#define PCRE2_ERROR_BAD_OPTIONS 117
#define PCRE2_ERROR_MISSING_COMMENT_CLOSING 118
#define PCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP 119
#define PCRE2_ERROR_PATTERN_TOO_LARGE 120
#define PCRE2_ERROR_HEAP_FAILED 121
#define PCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS 122
#define PCRE2_ERROR_INTERNAL_CODE_OVERFLOW 123
#define PCRE2_ERROR_MISSING_CONDITION_CLOSING 124
#define PCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH 125
#define PCRE2_ERROR_ZERO_RELATIVE_REFERENCE 126
#define PCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES 127
#define PCRE2_ERROR_CONDITION_ASSERTION_EXPECTED 128
#define PCRE2_ERROR_BAD_RELATIVE_REFERENCE 129
#define PCRE2_ERROR_UNKNOWN_POSIX_CLASS 130
#define PCRE2_ERROR_INTERNAL_STUDY_ERROR 131
#define PCRE2_ERROR_UNICODE_NOT_SUPPORTED 132
#define PCRE2_ERROR_PARENTHESES_STACK_CHECK 133
#define PCRE2_ERROR_CODE_POINT_TOO_BIG 134
#define PCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED 135
#define PCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C 136
#define PCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE 137
#define PCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG 138
#define PCRE2_ERROR_MISSING_CALLOUT_CLOSING 139
#define PCRE2_ERROR_ESCAPE_INVALID_IN_VERB 140
#define PCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P 141
#define PCRE2_ERROR_MISSING_NAME_TERMINATOR 142
#define PCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME 143
#define PCRE2_ERROR_INVALID_SUBPATTERN_NAME 144
#define PCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE 145
#define PCRE2_ERROR_MALFORMED_UNICODE_PROPERTY 146
#define PCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY 147
#define PCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG 148
#define PCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS 149
#define PCRE2_ERROR_CLASS_INVALID_RANGE 150
#define PCRE2_ERROR_OCTAL_BYTE_TOO_BIG 151
#define PCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE 152
#define PCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN 153
#define PCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES 154
#define PCRE2_ERROR_BACKSLASH_O_MISSING_BRACE 155
#define PCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE 156
#define PCRE2_ERROR_BACKSLASH_G_SYNTAX 157
#define PCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING 158
#define PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED 159
#define PCRE2_ERROR_VERB_UNKNOWN 160
#define PCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG 161
#define PCRE2_ERROR_SUBPATTERN_NAME_EXPECTED 162
#define PCRE2_ERROR_INTERNAL_PARSED_OVERFLOW 163
#define PCRE2_ERROR_INVALID_OCTAL 164
#define PCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH 165
#define PCRE2_ERROR_MARK_MISSING_ARGUMENT 166
#define PCRE2_ERROR_INVALID_HEXADECIMAL 167
#define PCRE2_ERROR_BACKSLASH_C_SYNTAX 168
#define PCRE2_ERROR_BACKSLASH_K_SYNTAX 169
#define PCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS 170
#define PCRE2_ERROR_BACKSLASH_N_IN_CLASS 171
#define PCRE2_ERROR_CALLOUT_STRING_TOO_LONG 172
#define PCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT 173
#define PCRE2_ERROR_UTF_IS_DISABLED 174
#define PCRE2_ERROR_UCP_IS_DISABLED 175
#define PCRE2_ERROR_VERB_NAME_TOO_LONG 176
#define PCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG 177
#define PCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS 178
#define PCRE2_ERROR_VERSION_CONDITION_SYNTAX 179
#define PCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS 180
#define PCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER 181
#define PCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER 182
#define PCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED 183
#define PCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP 184
#define PCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED 185
#define PCRE2_ERROR_PATTERN_TOO_COMPLICATED 186
#define PCRE2_ERROR_LOOKBEHIND_TOO_LONG 187
#define PCRE2_ERROR_PATTERN_STRING_TOO_LONG 188
#define PCRE2_ERROR_INTERNAL_BAD_CODE 189
#define PCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP 190
#define PCRE2_ERROR_NO_SURROGATES_IN_UTF16 191
#define PCRE2_ERROR_BAD_LITERAL_OPTIONS 192
/* "Expected" matching error codes: no match and partial match. */
#define PCRE2_ERROR_NOMATCH (-1) #define PCRE2_ERROR_NOMATCH (-1)
#define PCRE2_ERROR_PARTIAL (-2) #define PCRE2_ERROR_PARTIAL (-2)
@ -248,10 +345,10 @@ greater than zero. */
#define PCRE2_ERROR_UTF32_ERR1 (-27) #define PCRE2_ERROR_UTF32_ERR1 (-27)
#define PCRE2_ERROR_UTF32_ERR2 (-28) #define PCRE2_ERROR_UTF32_ERR2 (-28)
/* Error codes for pcre2[_dfa]_match(), substring extraction functions, context /* Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction
functions, and serializing functions. They are in numerical order. Originally functions, context functions, and serializing functions. They are in numerical
they were in alphabetical order too, but now that PCRE2 is released, the order. Originally they were in alphabetical order too, but now that PCRE2 is
numbers must not be changed. */ released, the numbers must not be changed. */
#define PCRE2_ERROR_BADDATA (-29) #define PCRE2_ERROR_BADDATA (-29)
#define PCRE2_ERROR_MIXEDTABLES (-30) /* Name was changed */ #define PCRE2_ERROR_MIXEDTABLES (-30) /* Name was changed */
@ -321,6 +418,7 @@ numbers must not be changed. */
#define PCRE2_INFO_HASBACKSLASHC 23 #define PCRE2_INFO_HASBACKSLASHC 23
#define PCRE2_INFO_FRAMESIZE 24 #define PCRE2_INFO_FRAMESIZE 24
#define PCRE2_INFO_HEAPLIMIT 25 #define PCRE2_INFO_HEAPLIMIT 25
#define PCRE2_INFO_EXTRAOPTIONS 26
/* Request types for pcre2_config(). */ /* Request types for pcre2_config(). */
@ -338,6 +436,9 @@ numbers must not be changed. */
#define PCRE2_CONFIG_UNICODE_VERSION 10 #define PCRE2_CONFIG_UNICODE_VERSION 10
#define PCRE2_CONFIG_VERSION 11 #define PCRE2_CONFIG_VERSION 11
#define PCRE2_CONFIG_HEAPLIMIT 12 #define PCRE2_CONFIG_HEAPLIMIT 12
#define PCRE2_CONFIG_NEVER_BACKSLASH_C 13
#define PCRE2_CONFIG_COMPILED_WIDTHS 14
/* Types for code units in patterns and subject strings. */ /* Types for code units in patterns and subject strings. */
@ -393,6 +494,11 @@ without changing the API of the function, thereby allowing old clients to work
without modification. Define the generic version in a macro; the width-specific without modification. Define the generic version in a macro; the width-specific
versions are generated from this macro below. */ versions are generated from this macro below. */
/* Flags for the callout_flags field. These are cleared after a callout. */
#define PCRE2_CALLOUT_STARTMATCH 0x00000001u /* Set for each bumpalong */
#define PCRE2_CALLOUT_BACKTRACK 0x00000002u /* Set after a backtrack */
#define PCRE2_STRUCTURE_LIST \ #define PCRE2_STRUCTURE_LIST \
typedef struct pcre2_callout_block { \ typedef struct pcre2_callout_block { \
uint32_t version; /* Identifies version of block */ \ uint32_t version; /* Identifies version of block */ \
@ -412,6 +518,8 @@ typedef struct pcre2_callout_block { \
PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \ PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \
PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \ PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \
PCRE2_SPTR callout_string; /* String compiled into pattern */ \ PCRE2_SPTR callout_string; /* String compiled into pattern */ \
/* ------------------- Added for Version 2 -------------------------- */ \
uint32_t callout_flags; /* See above for list */ \
/* ------------------------------------------------------------------ */ \ /* ------------------------------------------------------------------ */ \
} pcre2_callout_block; \ } pcre2_callout_block; \
\ \

View File

@ -95,7 +95,7 @@ static const char *pcre2_escaped_literals =
static const char *posix_meta_escapes = static const char *posix_meta_escapes =
STR_LEFT_PARENTHESIS STR_RIGHT_PARENTHESIS STR_LEFT_PARENTHESIS STR_RIGHT_PARENTHESIS
STR_LEFT_CURLY_BRACKET STR_RIGHT_CURLY_BRACKET STR_LEFT_CURLY_BRACKET STR_RIGHT_CURLY_BRACKET
STR_1 STR_2 STR_3 STR_4 STR_5 STR_6 STR_7 STR_8 STR_9; STR_1 STR_2 STR_3 STR_4 STR_5 STR_6 STR_7 STR_8 STR_9;
@ -250,7 +250,7 @@ while (plength > 0)
continue; /* With next character */ continue; /* With next character */
} }
} }
#endif #endif
/* Handle start of "normal" character classes */ /* Handle start of "normal" character classes */
@ -278,7 +278,7 @@ while (plength > 0)
case CHAR_BACKSLASH: case CHAR_BACKSLASH:
if (plength <= 0) return PCRE2_ERROR_END_BACKSLASH; if (plength <= 0) return PCRE2_ERROR_END_BACKSLASH;
if (extended) nextisliteral = TRUE; else if (extended) nextisliteral = TRUE; else
{ {
if (*posix < 127 && strchr(posix_meta_escapes, *posix) != NULL) if (*posix < 127 && strchr(posix_meta_escapes, *posix) != NULL)
{ {
if (isdigit(*posix)) PUTCHARS(STR_BACKSLASH); if (isdigit(*posix)) PUTCHARS(STR_BACKSLASH);
@ -286,7 +286,7 @@ while (plength > 0)
lastspecial = *p++ = *posix++; lastspecial = *p++ = *posix++;
plength--; plength--;
} }
else nextisliteral = TRUE; else nextisliteral = TRUE;
} }
break; break;
@ -867,7 +867,7 @@ while (pattern < pattern_end)
if (pattern >= pattern_end) if (pattern >= pattern_end)
{ {
no_slash_z = TRUE; no_slash_z = TRUE;
break; break;
} }
@ -937,7 +937,7 @@ while (pattern < pattern_end)
{ {
if (pattern >= pattern_end) if (pattern >= pattern_end)
{ {
no_slash_z = TRUE; no_slash_z = TRUE;
break; break;
} }

View File

@ -508,7 +508,7 @@ if (*this_start_code == OP_ASSERTBACK || *this_start_code == OP_ASSERTBACK_NOT)
{ {
if (current_subject <= start_subject) break; if (current_subject <= start_subject) break;
current_subject--; current_subject--;
ACROSSCHAR(current_subject > start_subject, current_subject, ACROSSCHAR(current_subject > start_subject, current_subject,
current_subject--); current_subject--);
} }
} }

View File

@ -1770,7 +1770,7 @@ typedef struct open_capitem {
struct open_capitem *next; /* Chain link */ struct open_capitem *next; /* Chain link */
uint16_t number; /* Capture number */ uint16_t number; /* Capture number */
uint16_t flag; /* Set TRUE if recursive back ref */ uint16_t flag; /* Set TRUE if recursive back ref */
uint16_t assert_depth; /* Assertion depth when opened */ uint16_t assert_depth; /* Assertion depth when opened */
} open_capitem; } open_capitem;
/* Layout of the UCP type table that translates property names into types and /* Layout of the UCP type table that translates property names into types and

View File

@ -623,7 +623,7 @@ typedef struct pcre2_real_code {
uint32_t magic_number; /* Paranoid and endianness check */ uint32_t magic_number; /* Paranoid and endianness check */
uint32_t compile_options; /* Options passed to pcre2_compile() */ uint32_t compile_options; /* Options passed to pcre2_compile() */
uint32_t overall_options; /* Options after processing the pattern */ uint32_t overall_options; /* Options after processing the pattern */
uint32_t extra_options; /* Taken from compile_context */ uint32_t extra_options; /* Taken from compile_context */
uint32_t flags; /* Various state flags */ uint32_t flags; /* Various state flags */
uint32_t limit_heap; /* Limit set in the pattern */ uint32_t limit_heap; /* Limit set in the pattern */
uint32_t limit_match; /* Limit set in the pattern */ uint32_t limit_match; /* Limit set in the pattern */
@ -862,7 +862,7 @@ typedef struct match_block {
uint32_t nltype; /* Newline type */ uint32_t nltype; /* Newline type */
uint32_t nllen; /* Newline string length */ uint32_t nllen; /* Newline string length */
PCRE2_UCHAR nl[4]; /* Newline string when fixed */ PCRE2_UCHAR nl[4]; /* Newline string when fixed */
pcre2_callout_block *cb; /* Points to a callout block */ pcre2_callout_block *cb; /* Points to a callout block */
void *callout_data; /* To pass back to callouts */ void *callout_data; /* To pass back to callouts */
int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */ int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */
} match_block; } match_block;
@ -888,7 +888,7 @@ typedef struct dfa_match_block {
uint32_t nllen; /* Newline string length */ uint32_t nllen; /* Newline string length */
PCRE2_UCHAR nl[4]; /* Newline string when fixed */ PCRE2_UCHAR nl[4]; /* Newline string when fixed */
uint16_t bsr_convention; /* \R interpretation */ uint16_t bsr_convention; /* \R interpretation */
pcre2_callout_block *cb; /* Points to a callout block */ pcre2_callout_block *cb; /* Points to a callout block */
void *callout_data; /* To pass back to callouts */ void *callout_data; /* To pass back to callouts */
int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */ int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */
dfa_recursion_info *recursive; /* Linked list of recursion data */ dfa_recursion_info *recursive; /* Linked list of recursion data */

View File

@ -179,12 +179,12 @@ static struct regression_test_case regression_test_cases[] = {
{ PCRE2_CASELESS, 0, 0, 0, "\xff#a", "\xff#\xff\xfe##\xff#A" }, { PCRE2_CASELESS, 0, 0, 0, "\xff#a", "\xff#\xff\xfe##\xff#A" },
{ PCRE2_CASELESS, 0, 0, 0, "\xfe", "\xff\xfc#\xfe\xfe" }, { PCRE2_CASELESS, 0, 0, 0, "\xfe", "\xff\xfc#\xfe\xfe" },
{ PCRE2_CASELESS, 0, 0, 0, "a1", "Aa1" }, { PCRE2_CASELESS, 0, 0, 0, "a1", "Aa1" },
#ifndef NEVER_BACKSLASH_C #ifndef NEVER_BACKSLASH_C
{ M, A, 0, 0, "\\Ca", "cda" }, { M, A, 0, 0, "\\Ca", "cda" },
{ CM, A, 0, 0, "\\Ca", "CDA" }, { CM, A, 0, 0, "\\Ca", "CDA" },
{ M, A, 0, 0 | F_NOMATCH, "\\Cx", "cda" }, { M, A, 0, 0 | F_NOMATCH, "\\Cx", "cda" },
{ CM, A, 0, 0 | F_NOMATCH, "\\Cx", "CDA" }, { CM, A, 0, 0 | F_NOMATCH, "\\Cx", "CDA" },
#endif #endif
{ CMUP, A, 0, 0, "\xf0\x90\x90\x80\xf0\x90\x90\xa8", "\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, { CMUP, A, 0, 0, "\xf0\x90\x90\x80\xf0\x90\x90\xa8", "\xf0\x90\x90\xa8\xf0\x90\x90\x80" },
{ CMUP, A, 0, 0, "\xf0\x90\x90\x80{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, { CMUP, A, 0, 0, "\xf0\x90\x90\x80{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" },
{ CMUP, A, 0, 0, "\xf0\x90\x90\xa8{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, { CMUP, A, 0, 0, "\xf0\x90\x90\xa8{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" },

View File

@ -76,7 +76,7 @@ if (where == NULL) /* Requests field length */
case PCRE2_INFO_BSR: case PCRE2_INFO_BSR:
case PCRE2_INFO_CAPTURECOUNT: case PCRE2_INFO_CAPTURECOUNT:
case PCRE2_INFO_DEPTHLIMIT: case PCRE2_INFO_DEPTHLIMIT:
case PCRE2_INFO_EXTRAOPTIONS: case PCRE2_INFO_EXTRAOPTIONS:
case PCRE2_INFO_FIRSTCODETYPE: case PCRE2_INFO_FIRSTCODETYPE:
case PCRE2_INFO_FIRSTCODEUNIT: case PCRE2_INFO_FIRSTCODEUNIT:
case PCRE2_INFO_HASBACKSLASHC: case PCRE2_INFO_HASBACKSLASHC:

View File

@ -5858,7 +5858,7 @@ output caused by CALLOUT_EXTRA. */
fdefault = (!first_callout && !callout_capture && cb->callout_string == NULL)? fdefault = (!first_callout && !callout_capture && cb->callout_string == NULL)?
NULL : outfile; NULL : outfile;
if ((dat_datctl.control2 & CTL2_CALLOUT_EXTRA) != 0) if ((dat_datctl.control2 & CTL2_CALLOUT_EXTRA) != 0)
{ {
f = outfile; f = outfile;
@ -8213,11 +8213,11 @@ while (argc > 1 && argv[op][0] == '-' && argv[op][1] != 0)
/* Set some common pattern and subject controls */ /* Set some common pattern and subject controls */
else if (strcmp(arg, "-AC") == 0) else if (strcmp(arg, "-AC") == 0)
{ {
def_patctl.options |= PCRE2_AUTO_CALLOUT; def_patctl.options |= PCRE2_AUTO_CALLOUT;
def_datctl.control2 |= CTL2_CALLOUT_EXTRA; def_datctl.control2 |= CTL2_CALLOUT_EXTRA;
} }
else if (strcmp(arg, "-ac") == 0) def_patctl.options |= PCRE2_AUTO_CALLOUT; else if (strcmp(arg, "-ac") == 0) def_patctl.options |= PCRE2_AUTO_CALLOUT;
else if (strcmp(arg, "-b") == 0) def_patctl.control |= CTL_FULLBINCODE; else if (strcmp(arg, "-b") == 0) def_patctl.control |= CTL_FULLBINCODE;
else if (strcmp(arg, "-d") == 0) def_patctl.control |= CTL_DEBUG; else if (strcmp(arg, "-d") == 0) def_patctl.control |= CTL_DEBUG;