diff --git a/CMakeLists.txt b/CMakeLists.txt
index 83999b5..1a2c95b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -117,7 +117,7 @@ CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
IF(HAVE_INTTYPES_H)
SET(PCRE2_HAVE_INTTYPES_H 1)
-ELSE(HAVE_INTTYPES_H)
+ELSE(HAVE_INTTYPES_H)
SET(PCRE2_HAVE_INTTYPES_H 0)
ENDIF(HAVE_INTTYPES_H)
diff --git a/ChangeLog b/ChangeLog
index 9e84c3a..21f4ccb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,30 +2,30 @@ Change Log for PCRE2
--------------------
-Version 10.32-RC1 19-February-2018
-----------------------------------
+Version 10.32-RC1 13-August-2018
+--------------------------------
-1. When matching using the the REG_STARTEND feature of the POSIX API with a
+1. When matching using the the REG_STARTEND feature of the POSIX API with a
non-zero starting offset, unset capturing groups with lower numbers than a
-group that did capture something were not being correctly returned as "unset"
+group that did capture something were not being correctly returned as "unset"
(that is, with offset values of -1).
-2. When matching using the POSIX API, pcre2test used to omit listing unset
+2. When matching using the POSIX API, pcre2test used to omit listing unset
groups altogether. Now it shows those that come before any actual captures as
"
PCRE2 is the name used for a revised API for the PCRE library, which is a set
of functions, written in C, that implement regular expression pattern matching
-using the same syntax and semantics as Perl, with just a few differences. After
-nearly two decades, the limitations of the original API were making development
+using the same syntax and semantics as Perl, with just a few differences. After
+nearly two decades, the limitations of the original API were making development
increasingly difficult. The new API is more extensible, and it was simplified
by abolishing the separate "study" optimizing function; in PCRE2, patterns are
-automatically optimized where possible. Since forking from PCRE1, the code has
+automatically optimized where possible. Since forking from PCRE1, the code has
been extensively refactored and new features introduced.
@@ -164,7 +164,7 @@ listing), and the short pages for individual functions, are concatenated in
pcre2build building PCRE2
pcre2callout details of the callout feature
pcre2compat discussion of Perl compatibility
- pcre2convert details of pattern conversion functions
+ pcre2convert details of pattern conversion functions
pcre2demo a demonstration C program that uses PCRE2
pcre2grep description of the pcre2grep command (8-bit only)
pcre2jit discussion of just-in-time optimization support
@@ -175,7 +175,7 @@ listing), and the short pages for individual functions, are concatenated in
pcre2perform discussion of performance issues
pcre2posix the POSIX-compatible C API for the 8-bit library
pcre2sample discussion of the pcre2demo program
- pcre2serialize details of pattern serialization
+ pcre2serialize details of pattern serialization
pcre2syntax quick syntax reference
pcre2test description of the pcre2test command
pcre2unicode discussion of Unicode and UTF support
diff --git a/doc/html/pcre2_convert_context_free.html b/doc/html/pcre2_convert_context_free.html
index 6ad9794..e9b142b 100644
--- a/doc/html/pcre2_convert_context_free.html
+++ b/doc/html/pcre2_convert_context_free.html
@@ -28,7 +28,7 @@ DESCRIPTION
This function is part of an experimental set of pattern conversion functions.
It frees the memory occupied by a convert context, using the memory
freeing function from the general context with which it was created, or
-free() if that was not set. If the argument is NULL, the function returns
+free() if that was not set. If the argument is NULL, the function returns
immediately without doing anything.
diff --git a/doc/html/pcre2_converted_pattern_free.html b/doc/html/pcre2_converted_pattern_free.html
index 2133341..01d28d7 100644
--- a/doc/html/pcre2_converted_pattern_free.html
+++ b/doc/html/pcre2_converted_pattern_free.html
@@ -28,7 +28,7 @@ DESCRIPTION
This function is part of an experimental set of pattern conversion functions.
It frees the memory occupied by a converted pattern that was obtained by
calling pcre2_pattern_convert() with arguments that caused it to place
-the converted pattern into newly obtained heap memory. If the argument is NULL,
+the converted pattern into newly obtained heap memory. If the argument is NULL,
the function returns immediately without doing anything.
diff --git a/doc/html/pcre2_jit_stack_assign.html b/doc/html/pcre2_jit_stack_assign.html
index 6730ba5..4b3abb9 100644
--- a/doc/html/pcre2_jit_stack_assign.html
+++ b/doc/html/pcre2_jit_stack_assign.html
@@ -38,8 +38,8 @@ passed to a matching function. The arguments of this function are:
-If mcontext is NULL, the function returns immediately, without doing
-anything.
+If mcontext is NULL, the function returns immediately, without doing
+anything.
If callback is NULL and callback_data is NULL, an internal 32KiB
diff --git a/doc/html/pcre2_jit_stack_free.html b/doc/html/pcre2_jit_stack_free.html
index 3ec5338..1d078d7 100644
--- a/doc/html/pcre2_jit_stack_free.html
+++ b/doc/html/pcre2_jit_stack_free.html
@@ -26,7 +26,7 @@ DESCRIPTION
This function is used to free a JIT stack that was created by
-pcre2_jit_stack_create() when it is no longer needed. If the argument is
+pcre2_jit_stack_create() when it is no longer needed. If the argument is
NULL, the function returns immediately without doing anything. For more
details, see the
pcre2jit
diff --git a/doc/html/pcre2_serialize_encode.html b/doc/html/pcre2_serialize_encode.html
index 4b8bfd4..f153270 100644
--- a/doc/html/pcre2_serialize_encode.html
+++ b/doc/html/pcre2_serialize_encode.html
@@ -28,7 +28,7 @@ DESCRIPTION
This function encodes a list of compiled patterns into a byte stream that can
-be saved on disc or elsewhere. Note that this is not an abstract format like
+be saved on disc or elsewhere. Note that this is not an abstract format like
Java or .NET. Conversion of the byte stream back into usable compiled patterns
can only happen on a host that is running the same version of PCRE2, with the
same code unit width, and the host must also have the same endianness, pointer
diff --git a/doc/html/pcre2_serialize_free.html b/doc/html/pcre2_serialize_free.html
index b6e41c9..26b435b 100644
--- a/doc/html/pcre2_serialize_free.html
+++ b/doc/html/pcre2_serialize_free.html
@@ -27,7 +27,7 @@ DESCRIPTION
This function frees the memory that was obtained by
pcre2_serialize_encode() to hold a serialized byte stream. The argument
-must point to such a byte stream or be NULL, in which case the function returns
+must point to such a byte stream or be NULL, in which case the function returns
without doing anything.
diff --git a/doc/html/pcre2_substring_list_free.html b/doc/html/pcre2_substring_list_free.html
index 922a139..0919d1e 100644
--- a/doc/html/pcre2_substring_list_free.html
+++ b/doc/html/pcre2_substring_list_free.html
@@ -27,7 +27,7 @@ DESCRIPTION
This is a convenience function for freeing the store obtained by a previous
call to pcre2substring_list_get(). Its only argument is a pointer to
-the list of string pointers. If the argument is NULL, the function returns
+the list of string pointers. If the argument is NULL, the function returns
immediately, without doing anything.
diff --git a/doc/html/pcre2api.html b/doc/html/pcre2api.html
index 5586c6a..25b9465 100644
--- a/doc/html/pcre2api.html
+++ b/doc/html/pcre2api.html
@@ -518,8 +518,8 @@ been matched by pcre2_match(). They are:
pcre2_substring_number_from_name()
pcre2_substring_free() and pcre2_substring_list_free() are also
-provided, to free memory used for extracted strings. If either of these
-functions is called with a NULL argument, the function returns immediately
+provided, to free memory used for extracted strings. If either of these
+functions is called with a NULL argument, the function returns immediately
without doing anything.
@@ -1255,7 +1255,7 @@ If the compile context argument ccontext is NULL, memory for the compiled
pattern is obtained by calling malloc(). Otherwise, it is obtained from
the same memory function that was used for the compile context. The caller must
free the memory by calling pcre2_code_free() when it is no longer needed.
-If pcre2_code_free() is called with a NULL argument, it returns
+If pcre2_code_free() is called with a NULL argument, it returns
immediately, without doing anything.
@@ -1265,7 +1265,7 @@ if the code has been processed by the JIT compiler (see
below),
the JIT information cannot be copied (because it is position-dependent).
The new copy can initially be used only for non-JIT matching, though it can be
-passed to pcre2_jit_compile() if required. If pcre2_code_copy() is
+passed to pcre2_jit_compile() if required. If pcre2_code_copy() is
called with a NULL argument, it returns NULL.
@@ -1514,15 +1514,15 @@ PCRE2_EXTENDED is equivalent to Perl's /x option, and it can be changed within
a pattern by a (?x) option setting.
-When PCRE2 is compiled without Unicode support, PCRE2_EXTENDED recognizes as
-white space only those characters with code points less than 256 that are
-flagged as white space in its low-character table. The table is normally
-created by
+When PCRE2 is compiled without Unicode support, PCRE2_EXTENDED recognizes as
+white space only those characters with code points less than 256 that are
+flagged as white space in its low-character table. The table is normally
+created by
pcre2_maketables(),
which uses the isspace() function to identify space characters. In most
ASCII environments, the relevant characters are those with code points 0x0009
(tab), 0x000A (linefeed), 0x000B (vertical tab), 0x000C (formfeed), 0x000D
-(carriage return), and 0x0020 (space).
+(carriage return), and 0x0020 (space).
When PCRE2 is compiled with Unicode support, in addition to these characters,
@@ -1552,8 +1552,8 @@ built.
PCRE2_EXTENDED_MORE
This option has the effect of PCRE2_EXTENDED, but, in addition, unescaped space
-and horizontal tab characters are ignored inside a character class. Note: only
-these two characters are ignored, not the full set of pattern white space
+and horizontal tab characters are ignored inside a character class. Note: only
+these two characters are ignored, not the full set of pattern white space
characters that are ignored outside a character class. PCRE2_EXTENDED_MORE is
equivalent to Perl's /xx option, and it can be changed within a pattern by a
(?xx) option setting.
@@ -2323,7 +2323,7 @@ reloaded must be running the same version of PCRE2, with the same code unit
width, and must also have the same endianness, pointer width, and PCRE2_SIZE
type. Before compiled patterns can be saved, they must be converted to a
"serialized" form, which in the case of PCRE2 is really just a bytecode dump.
-The functions whose names begin with pcre2_serialize_ are used for
+The functions whose names begin with pcre2_serialize_ are used for
converting to and from the serialized form. They are described in the
pcre2serialize
documentation. Note that PCRE2 serialization does not convert compiled patterns
@@ -2398,7 +2398,7 @@ match data block (for that match) have taken place.
When a match data block itself is no longer needed, it should be freed by
-calling pcre2_match_data_free(). If this function is called with a NULL
+calling pcre2_match_data_free(). If this function is called with a NULL
argument, it returns immediately, without doing anything.
MATCHING A PATTERN: THE TRADITIONAL FUNCTION
@@ -3383,7 +3383,7 @@ replacement string, with more particular errors being PCRE2_ERROR_BADREPESCAPE
(invalid escape sequence), PCRE2_ERROR_REPMISSINGBRACE (closing curly bracket
not found), PCRE2_ERROR_BADSUBSTITUTION (syntax error in extended group
substitution), and PCRE2_ERROR_BADSUBSPATTERN (the pattern match ended before
-it started or the match started earlier than the current position in the
+it started or the match started earlier than the current position in the
subject, which can happen if \K is used in an assertion).
diff --git a/doc/html/pcre2build.html b/doc/html/pcre2build.html index fc56808..e31b604 100644 --- a/doc/html/pcre2build.html +++ b/doc/html/pcre2build.html @@ -82,7 +82,7 @@ The following sections include descriptions of "on/off" options whose names begin with --enable or --disable. Because of the way that configure works, --enable and --disable always come in pairs, so the complementary option always exists as well, but as it specifies the default, it is not described. -Options that specify values have names that start with --with. At the end of a +Options that specify values have names that start with --with. At the end of a configure run, a summary of the configuration is output.
--enable-jit=auto-which enables JIT only if the current hardware is supported. You can check +which enables JIT only if the current hardware is supported. You can check if JIT is enabled in the configuration summary that is output at the end of a configure run. If you are enabling JIT under SELinux you may also want to add diff --git a/doc/html/pcre2compat.html b/doc/html/pcre2compat.html index 3123111..f593204 100644 --- a/doc/html/pcre2compat.html +++ b/doc/html/pcre2compat.html @@ -42,7 +42,7 @@ assertion is a condition that has a matching branch (that is, the condition is false).
-4. The following Perl escape sequences are not supported: \F, \l, \L, \u, +4. The following Perl escape sequences are not supported: \F, \l, \L, \u, \U, and \N when followed by a character name. \N on its own, matching a non-newline character, and \N{U+dd..}, matching a Unicode code point, are supported. The escapes that modify the case of following letters are diff --git a/doc/html/pcre2convert.html b/doc/html/pcre2convert.html index 7372e08..871e563 100644 --- a/doc/html/pcre2convert.html +++ b/doc/html/pcre2convert.html @@ -105,7 +105,7 @@ If buffer points to a NULL pointer, an output buffer is obtained using the allocator in the context or malloc() if no context is supplied. A pointer to this buffer is placed in the variable to which buffer points. When no longer needed the output buffer must be freed by calling -pcre2_converted_pattern_free(). If this function is called with a NULL +pcre2_converted_pattern_free(). If this function is called with a NULL argument, it returns immediately without doing anything.
diff --git a/doc/html/pcre2grep.html b/doc/html/pcre2grep.html
index 653cbf2..272b87d 100644
--- a/doc/html/pcre2grep.html
+++ b/doc/html/pcre2grep.html
@@ -155,7 +155,7 @@ of changing the way binary files are handled.
BINARY ZEROS IN PATTERNS
Patterns passed from the command line are strings that are terminated by a -binary zero, so cannot contain internal zeros. However, patterns that are read +binary zero, so cannot contain internal zeros. However, patterns that are read from a file via the -f option may contain binary zeros.
-Note that "serialization" in PCRE2 does not convert compiled patterns to an -abstract format like Java or .NET serialization. The serialized output is -really just a bytecode dump, which is why it can only be reloaded in the same +Note that "serialization" in PCRE2 does not convert compiled patterns to an +abstract format like Java or .NET serialization. The serialized output is +really just a bytecode dump, which is why it can only be reloaded in the same environment as the one that created it. Hence the restrictions mentioned above. Applications that are not statically linked with a fixed version of PCRE2 must -be prepared to recompile patterns from their sources, in order to be immune to -PCRE2 upgrades. +be prepared to recompile patterns from their sources, in order to be immune to +PCRE2 upgrades.
diff --git a/doc/html/pcre2syntax.html b/doc/html/pcre2syntax.html index 4a69c74..c60e5a4 100644 --- a/doc/html/pcre2syntax.html +++ b/doc/html/pcre2syntax.html @@ -70,7 +70,7 @@ This table applies to ASCII and Unicode environments. \ddd character with octal code ddd, or backreference \o{ddd..} character with octal code ddd.. \U "U" if PCRE2_ALT_BSUX is set (otherwise is an error) - \N{U+hh..} character with Unicode code point hh.. + \N{U+hh..} character with Unicode code point hh.. \uhhhh character with hex code hhhh (if PCRE2_ALT_BSUX is set) \xhh character with hex code hh \x{hh..} character with hex code hh.. @@ -446,7 +446,7 @@ but some of them use Unicode properties if PCRE2_UCP is set. You can use
-Changes of these options within a group are automatically cancelled at the end +Changes of these options within a group are automatically cancelled at the end of the group.
(?i) caseless @@ -458,12 +458,12 @@ of the group. (?x) extended: ignore white space except in classes (?xx) as (?x) but also ignore space and tab in classes (?-...) unset option(s) - (?^) unset imnsx options + (?^) unset imnsx optionsUnsetting x or xx unsets both. Several options may be set at once, and a mixture of setting and unsetting such as (?i-x) is allowed, but there may be only one hyphen. Setting (but no unsetting) is allowed after (?^ for example -(?^in). An option setting may appear at the start of a non-capturing group, for +(?^in). An option setting may appear at the start of a non-capturing group, for example (?i:...).
@@ -604,8 +604,8 @@ pattern is not anchored. (*MARK:NAME); if not found, the (*SKIP) is ignored (*THEN) local failure, backtrack to next alternation -The effect of one of these verbs in a group called as a subroutine is confined -to the subroutine call. +The effect of one of these verbs in a group called as a subroutine is confined +to the subroutine call.
diff --git a/doc/html/pcre2test.html b/doc/html/pcre2test.html index a28db98..af2b18c 100644 --- a/doc/html/pcre2test.html +++ b/doc/html/pcre2test.html @@ -315,8 +315,8 @@ number of subject lines to be matched against that pattern. In between sets of test data, command lines that begin with # may appear. This file format, with some restrictions, can also be processed by the perltest.sh script that is distributed with PCRE2 as a means of checking that the behaviour of PCRE2 -and Perl is the same. For a specification of perltest.sh, see the -comments near its beginning. +and Perl is the same. For a specification of perltest.sh, see the +comments near its beginning.
When the input is a terminal, pcre2test prompts for each line of input, @@ -1446,10 +1446,10 @@ the minimum values for each parameter that allows the match to complete without error. If JIT is being used, only the match limit is relevant.
-When using this modifier, the pattern should not contain any limit settings -such as (*LIMIT_MATCH=...) within it. If such a setting is present and is -lower than the minimum matching value, the minimum value cannot be found -because pcre2_set_match_limit() etc. are only able to reduce the value of +When using this modifier, the pattern should not contain any limit settings +such as (*LIMIT_MATCH=...) within it. If such a setting is present and is +lower than the minimum matching value, the minimum value cannot be found +because pcre2_set_match_limit() etc. are only able to reduce the value of an in-pattern limit; they cannot increase it.
@@ -1464,13 +1464,13 @@ For non-DFA matching, the match_limit number is a measure of the amount of backtracking that takes place, and learning the minimum value can be instructive. For most simple matches, the number is quite small, but for patterns with very large numbers of matching possibilities, it can become large -very quickly with increasing length of subject string. In the case of DFA -matching, match_limit controls the total number of calls, both recursive -and non-recursive, to the internal matching function, thus controlling the +very quickly with increasing length of subject string. In the case of DFA +matching, match_limit controls the total number of calls, both recursive +and non-recursive, to the internal matching function, thus controlling the overall amount of computing resource that is used.
-For both kinds of matching, the heap_limit number, which is in kibibytes +For both kinds of matching, the heap_limit number, which is in kibibytes (units of 1024 bytes), limits the amount of heap memory used for matching. A value of zero disables the use of any heap memory; many simple pattern matches can be done without using the heap, so zero is not an unreasonable setting. @@ -1929,7 +1929,7 @@ documentation. In this section we describe the features of pcre2test that can be used to test these functions.
-Note that "serialization" in PCRE2 does not convert compiled patterns to an +Note that "serialization" in PCRE2 does not convert compiled patterns to an abstract format like Java or .NET. It just makes a reloadable byte code stream. Hence the restrictions on reloading mentioned above.
diff --git a/doc/pcre2.3 b/doc/pcre2.3 index a81ee83..2f83658 100644 --- a/doc/pcre2.3 +++ b/doc/pcre2.3 @@ -6,11 +6,11 @@ PCRE2 - Perl-compatible regular expressions (revised API) .sp PCRE2 is the name used for a revised API for the PCRE library, which is a set of functions, written in C, that implement regular expression pattern matching -using the same syntax and semantics as Perl, with just a few differences. After -nearly two decades, the limitations of the original API were making development +using the same syntax and semantics as Perl, with just a few differences. After +nearly two decades, the limitations of the original API were making development increasingly difficult. The new API is more extensible, and it was simplified by abolishing the separate "study" optimizing function; in PCRE2, patterns are -automatically optimized where possible. Since forking from PCRE1, the code has +automatically optimized where possible. Since forking from PCRE1, the code has been extensively refactored and new features introduced. .P As well as Perl-style regular expression patterns, some features that appeared @@ -158,7 +158,7 @@ listing), and the short pages for individual functions, are concatenated in pcre2build building PCRE2 pcre2callout details of the callout feature pcre2compat discussion of Perl compatibility - pcre2convert details of pattern conversion functions + pcre2convert details of pattern conversion functions pcre2demo a demonstration C program that uses PCRE2 pcre2grep description of the \fBpcre2grep\fP command (8-bit only) pcre2jit discussion of just-in-time optimization support @@ -171,7 +171,7 @@ listing), and the short pages for individual functions, are concatenated in pcre2perform discussion of performance issues pcre2posix the POSIX-compatible C API for the 8-bit library pcre2sample discussion of the pcre2demo program - pcre2serialize details of pattern serialization + pcre2serialize details of pattern serialization pcre2syntax quick syntax reference pcre2test description of the \fBpcre2test\fP command pcre2unicode discussion of Unicode and UTF support diff --git a/doc/pcre2.txt b/doc/pcre2.txt index 2457045..420569d 100644 --- a/doc/pcre2.txt +++ b/doc/pcre2.txt @@ -180,8 +180,8 @@ REVISION Last updated: 11 July 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2API(3) Library Functions Manual PCRE2API(3) @@ -3545,8 +3545,8 @@ REVISION Last updated: 03 August 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2BUILD(3) Library Functions Manual PCRE2BUILD(3) @@ -4100,8 +4100,8 @@ REVISION Last updated: 26 April 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2CALLOUT(3) Library Functions Manual PCRE2CALLOUT(3) @@ -4526,8 +4526,8 @@ REVISION Last updated: 26 April 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2COMPAT(3) Library Functions Manual PCRE2COMPAT(3) @@ -4731,8 +4731,8 @@ REVISION Last updated: 28 July 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2JIT(3) Library Functions Manual PCRE2JIT(3) @@ -5128,8 +5128,8 @@ REVISION Last updated: 28 June 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2LIMITS(3) Library Functions Manual PCRE2LIMITS(3) @@ -5199,8 +5199,8 @@ REVISION Last updated: 30 March 2017 Copyright (c) 1997-2017 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2MATCHING(3) Library Functions Manual PCRE2MATCHING(3) @@ -5418,8 +5418,8 @@ REVISION Last updated: 29 September 2014 Copyright (c) 1997-2014 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2PARTIAL(3) Library Functions Manual PCRE2PARTIAL(3) @@ -5858,8 +5858,8 @@ REVISION Last updated: 22 December 2014 Copyright (c) 1997-2014 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2PATTERN(3) Library Functions Manual PCRE2PATTERN(3) @@ -9100,8 +9100,8 @@ REVISION Last updated: 03 August 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2PERFORM(3) Library Functions Manual PCRE2PERFORM(3) @@ -9335,8 +9335,8 @@ REVISION Last updated: 25 April 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2POSIX(3) Library Functions Manual PCRE2POSIX(3) @@ -9642,8 +9642,8 @@ REVISION Last updated: 15 June 2017 Copyright (c) 1997-2017 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2SAMPLE(3) Library Functions Manual PCRE2SAMPLE(3) @@ -9921,8 +9921,8 @@ REVISION Last updated: 27 June 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2SYNTAX(3) Library Functions Manual PCRE2SYNTAX(3) @@ -10390,8 +10390,8 @@ REVISION Last updated: 01 August 2018 Copyright (c) 1997-2018 University of Cambridge. ------------------------------------------------------------------------------ - - + + PCRE2UNICODE(3) Library Functions Manual PCRE2UNICODE(3) @@ -10647,5 +10647,5 @@ REVISION Last updated: 17 May 2017 Copyright (c) 1997-2017 University of Cambridge. ------------------------------------------------------------------------------ - - + + diff --git a/doc/pcre2_convert_context_free.3 b/doc/pcre2_convert_context_free.3 index 71e87e1..3fd5783 100644 --- a/doc/pcre2_convert_context_free.3 +++ b/doc/pcre2_convert_context_free.3 @@ -16,7 +16,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) This function is part of an experimental set of pattern conversion functions. It frees the memory occupied by a convert context, using the memory freeing function from the general context with which it was created, or -\fBfree()\fP if that was not set. If the argument is NULL, the function returns +\fBfree()\fP if that was not set. If the argument is NULL, the function returns immediately without doing anything. .P The pattern conversion functions are described in the diff --git a/doc/pcre2_converted_pattern_free.3 b/doc/pcre2_converted_pattern_free.3 index 0568dbd..b0645b5 100644 --- a/doc/pcre2_converted_pattern_free.3 +++ b/doc/pcre2_converted_pattern_free.3 @@ -16,7 +16,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) This function is part of an experimental set of pattern conversion functions. It frees the memory occupied by a converted pattern that was obtained by calling \fBpcre2_pattern_convert()\fP with arguments that caused it to place -the converted pattern into newly obtained heap memory. If the argument is NULL, +the converted pattern into newly obtained heap memory. If the argument is NULL, the function returns immediately without doing anything. .P The pattern conversion functions are described in the diff --git a/doc/pcre2_jit_stack_assign.3 b/doc/pcre2_jit_stack_assign.3 index 732d20b..33d2e1c 100644 --- a/doc/pcre2_jit_stack_assign.3 +++ b/doc/pcre2_jit_stack_assign.3 @@ -24,8 +24,8 @@ passed to a matching function. The arguments of this function are: callback a callback function callback_data a JIT stack or a value to be passed to the callback .P -If \fImcontext\fP is NULL, the function returns immediately, without doing -anything. +If \fImcontext\fP is NULL, the function returns immediately, without doing +anything. .P If \fIcallback\fP is NULL and \fIcallback_data\fP is NULL, an internal 32KiB block on the machine stack is used. diff --git a/doc/pcre2_jit_stack_free.3 b/doc/pcre2_jit_stack_free.3 index 0d816a2..2131a79 100644 --- a/doc/pcre2_jit_stack_free.3 +++ b/doc/pcre2_jit_stack_free.3 @@ -13,7 +13,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) .rs .sp This function is used to free a JIT stack that was created by -\fBpcre2_jit_stack_create()\fP when it is no longer needed. If the argument is +\fBpcre2_jit_stack_create()\fP when it is no longer needed. If the argument is NULL, the function returns immediately without doing anything. For more details, see the .\" HREF diff --git a/doc/pcre2_serialize_decode.3 b/doc/pcre2_serialize_decode.3 index ef765b7..b67a112 100644 --- a/doc/pcre2_serialize_decode.3 +++ b/doc/pcre2_serialize_decode.3 @@ -48,6 +48,6 @@ There is a complete description of the PCRE2 native API in the .\" page and a description of the serialization functions in the .\" HREF -\fBpcre2serialize\fP -.\" +\fBpcre2serialize\fP +.\" page. diff --git a/doc/pcre2_serialize_encode.3 b/doc/pcre2_serialize_encode.3 index 7d8c5d6..d529360 100644 --- a/doc/pcre2_serialize_encode.3 +++ b/doc/pcre2_serialize_encode.3 @@ -16,7 +16,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) .rs .sp This function encodes a list of compiled patterns into a byte stream that can -be saved on disc or elsewhere. Note that this is not an abstract format like +be saved on disc or elsewhere. Note that this is not an abstract format like Java or .NET. Conversion of the byte stream back into usable compiled patterns can only happen on a host that is running the same version of PCRE2, with the same code unit width, and the host must also have the same endianness, pointer @@ -49,6 +49,6 @@ There is a complete description of the PCRE2 native API in the .\" page and a description of the serialization functions in the .\" HREF -\fBpcre2serialize\fP -.\" +\fBpcre2serialize\fP +.\" page. diff --git a/doc/pcre2_serialize_free.3 b/doc/pcre2_serialize_free.3 index e4f1c1a..2c43824 100644 --- a/doc/pcre2_serialize_free.3 +++ b/doc/pcre2_serialize_free.3 @@ -15,7 +15,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) .sp This function frees the memory that was obtained by \fBpcre2_serialize_encode()\fP to hold a serialized byte stream. The argument -must point to such a byte stream or be NULL, in which case the function returns +must point to such a byte stream or be NULL, in which case the function returns without doing anything. .P There is a complete description of the PCRE2 native API in the @@ -24,6 +24,6 @@ There is a complete description of the PCRE2 native API in the .\" page and a description of the serialization functions in the .\" HREF -\fBpcre2serialize\fP -.\" +\fBpcre2serialize\fP +.\" page. diff --git a/doc/pcre2_serialize_get_number_of_codes.3 b/doc/pcre2_serialize_get_number_of_codes.3 index 3b227ba..f5eea54 100644 --- a/doc/pcre2_serialize_get_number_of_codes.3 +++ b/doc/pcre2_serialize_get_number_of_codes.3 @@ -32,6 +32,6 @@ There is a complete description of the PCRE2 native API in the .\" page and a description of the serialization functions in the .\" HREF -\fBpcre2serialize\fP -.\" +\fBpcre2serialize\fP +.\" page. diff --git a/doc/pcre2_substring_list_free.3 b/doc/pcre2_substring_list_free.3 index f6d7ec2..d977ed5 100644 --- a/doc/pcre2_substring_list_free.3 +++ b/doc/pcre2_substring_list_free.3 @@ -14,7 +14,7 @@ PCRE2 - Perl-compatible regular expressions (revised API) .sp This is a convenience function for freeing the store obtained by a previous call to \fBpcre2substring_list_get()\fP. Its only argument is a pointer to -the list of string pointers. If the argument is NULL, the function returns +the list of string pointers. If the argument is NULL, the function returns immediately, without doing anything. .P There is a complete description of the PCRE2 native API in the diff --git a/doc/pcre2api.3 b/doc/pcre2api.3 index f13373c..5a97739 100644 --- a/doc/pcre2api.3 +++ b/doc/pcre2api.3 @@ -453,8 +453,8 @@ been matched by \fBpcre2_match()\fP. They are: \fBpcre2_substring_number_from_name()\fP .sp \fBpcre2_substring_free()\fP and \fBpcre2_substring_list_free()\fP are also -provided, to free memory used for extracted strings. If either of these -functions is called with a NULL argument, the function returns immediately +provided, to free memory used for extracted strings. If either of these +functions is called with a NULL argument, the function returns immediately without doing anything. .P The function \fBpcre2_substitute()\fP can be called to match a pattern and @@ -1182,7 +1182,7 @@ If the compile context argument \fIccontext\fP is NULL, memory for the compiled pattern is obtained by calling \fBmalloc()\fP. Otherwise, it is obtained from the same memory function that was used for the compile context. The caller must free the memory by calling \fBpcre2_code_free()\fP when it is no longer needed. -If \fBpcre2_code_free()\fP is called with a NULL argument, it returns +If \fBpcre2_code_free()\fP is called with a NULL argument, it returns immediately, without doing anything. .P The function \fBpcre2_code_copy()\fP makes a copy of the compiled code in new @@ -1194,7 +1194,7 @@ below), .\" the JIT information cannot be copied (because it is position-dependent). The new copy can initially be used only for non-JIT matching, though it can be -passed to \fBpcre2_jit_compile()\fP if required. If \fBpcre2_code_copy()\fP is +passed to \fBpcre2_jit_compile()\fP if required. If \fBpcre2_code_copy()\fP is called with a NULL argument, it returns NULL. .P The \fBpcre2_code_copy()\fP function provides a way for individual threads in a @@ -1448,17 +1448,17 @@ and between a quantifier and a following + that indicates possessiveness. PCRE2_EXTENDED is equivalent to Perl's /x option, and it can be changed within a pattern by a (?x) option setting. .P -When PCRE2 is compiled without Unicode support, PCRE2_EXTENDED recognizes as -white space only those characters with code points less than 256 that are -flagged as white space in its low-character table. The table is normally -created by +When PCRE2 is compiled without Unicode support, PCRE2_EXTENDED recognizes as +white space only those characters with code points less than 256 that are +flagged as white space in its low-character table. The table is normally +created by .\" HREF -\fBpcre2_maketables()\fP, +\fBpcre2_maketables()\fP, .\" which uses the \fBisspace()\fP function to identify space characters. In most ASCII environments, the relevant characters are those with code points 0x0009 (tab), 0x000A (linefeed), 0x000B (vertical tab), 0x000C (formfeed), 0x000D -(carriage return), and 0x0020 (space). +(carriage return), and 0x0020 (space). .P When PCRE2 is compiled with Unicode support, in addition to these characters, five more Unicode "Pattern White Space" characters are recognized by @@ -1488,8 +1488,8 @@ built. PCRE2_EXTENDED_MORE .sp This option has the effect of PCRE2_EXTENDED, but, in addition, unescaped space -and horizontal tab characters are ignored inside a character class. Note: only -these two characters are ignored, not the full set of pattern white space +and horizontal tab characters are ignored inside a character class. Note: only +these two characters are ignored, not the full set of pattern white space characters that are ignored outside a character class. PCRE2_EXTENDED_MORE is equivalent to Perl's /xx option, and it can be changed within a pattern by a (?xx) option setting. @@ -2288,7 +2288,7 @@ reloaded must be running the same version of PCRE2, with the same code unit width, and must also have the same endianness, pointer width, and PCRE2_SIZE type. Before compiled patterns can be saved, they must be converted to a "serialized" form, which in the case of PCRE2 is really just a bytecode dump. -The functions whose names begin with \fBpcre2_serialize_\fP are used for +The functions whose names begin with \fBpcre2_serialize_\fP are used for converting to and from the serialized form. They are described in the .\" HREF \fBpcre2serialize\fP @@ -2366,7 +2366,7 @@ free a compiled pattern or a subject string until after all operations on the match data block (for that match) have taken place. .P When a match data block itself is no longer needed, it should be freed by -calling \fBpcre2_match_data_free()\fP. If this function is called with a NULL +calling \fBpcre2_match_data_free()\fP. If this function is called with a NULL argument, it returns immediately, without doing anything. . . @@ -3370,7 +3370,7 @@ replacement string, with more particular errors being PCRE2_ERROR_BADREPESCAPE (invalid escape sequence), PCRE2_ERROR_REPMISSINGBRACE (closing curly bracket not found), PCRE2_ERROR_BADSUBSTITUTION (syntax error in extended group substitution), and PCRE2_ERROR_BADSUBSPATTERN (the pattern match ended before -it started or the match started earlier than the current position in the +it started or the match started earlier than the current position in the subject, which can happen if \eK is used in an assertion). .P As for all PCRE2 errors, a text message that describes the error can be diff --git a/doc/pcre2build.3 b/doc/pcre2build.3 index 5037125..540df78 100644 --- a/doc/pcre2build.3 +++ b/doc/pcre2build.3 @@ -59,7 +59,7 @@ The following sections include descriptions of "on/off" options whose names begin with --enable or --disable. Because of the way that \fBconfigure\fP works, --enable and --disable always come in pairs, so the complementary option always exists as well, but as it specifies the default, it is not described. -Options that specify values have names that start with --with. At the end of a +Options that specify values have names that start with --with. At the end of a \fBconfigure\fP run, a summary of the configuration is output. . . @@ -157,12 +157,12 @@ Just-in-time (JIT) compiler support is included in the build by specifying --enable-jit .sp This support is available only for certain hardware architectures. If this -option is set for an unsupported architecture, a building error occurs. -If in doubt, use +option is set for an unsupported architecture, a building error occurs. +If in doubt, use .sp --enable-jit=auto .sp -which enables JIT only if the current hardware is supported. You can check +which enables JIT only if the current hardware is supported. You can check if JIT is enabled in the configuration summary that is output at the end of a \fBconfigure\fP run. If you are enabling JIT under SELinux you may also want to add diff --git a/doc/pcre2compat.3 b/doc/pcre2compat.3 index c483ac2..6e448f6 100644 --- a/doc/pcre2compat.3 +++ b/doc/pcre2compat.3 @@ -28,7 +28,7 @@ counted, but their entries in the offsets vector are set only when a negative assertion is a condition that has a matching branch (that is, the condition is false). .P -4. The following Perl escape sequences are not supported: \eF, \el, \eL, \eu, +4. The following Perl escape sequences are not supported: \eF, \el, \eL, \eu, \eU, and \eN when followed by a character name. \eN on its own, matching a non-newline character, and \eN{U+dd..}, matching a Unicode code point, are supported. The escapes that modify the case of following letters are diff --git a/doc/pcre2convert.3 b/doc/pcre2convert.3 index fc78030..34beaf0 100644 --- a/doc/pcre2convert.3 +++ b/doc/pcre2convert.3 @@ -83,7 +83,7 @@ If \fBbuffer\fP points to a NULL pointer, an output buffer is obtained using the allocator in the context or \fBmalloc()\fP if no context is supplied. A pointer to this buffer is placed in the variable to which \fBbuffer\fP points. When no longer needed the output buffer must be freed by calling -\fBpcre2_converted_pattern_free()\fP. If this function is called with a NULL +\fBpcre2_converted_pattern_free()\fP. If this function is called with a NULL argument, it returns immediately without doing anything. .P If \fBbuffer\fP points to a non-NULL pointer, \fBblength\fP must be set to the diff --git a/doc/pcre2grep.1 b/doc/pcre2grep.1 index 12a1859..ce112af 100644 --- a/doc/pcre2grep.1 +++ b/doc/pcre2grep.1 @@ -126,7 +126,7 @@ of changing the way binary files are handled. .rs .sp Patterns passed from the command line are strings that are terminated by a -binary zero, so cannot contain internal zeros. However, patterns that are read +binary zero, so cannot contain internal zeros. However, patterns that are read from a file via the \fB-f\fP option may contain binary zeros. . . @@ -471,7 +471,7 @@ is a pattern that uses nested unlimited repeats. Internally, PCRE2 has a counter that is incremented each time around its main processing loop. If the value set by \fB--match-limit\fP is reached, an error occurs. .sp -The \fB--heap-limit\fP option specifies, as a number of kibibytes (units of +The \fB--heap-limit\fP option specifies, as a number of kibibytes (units of 1024 bytes), the amount of heap memory that may be used for matching. Heap memory is needed only if matching the pattern requires a significant number of nested backtracking points to be remembered. This parameter can be set to zero diff --git a/doc/pcre2jit.3 b/doc/pcre2jit.3 index f612faa..c3b916b 100644 --- a/doc/pcre2jit.3 +++ b/doc/pcre2jit.3 @@ -177,7 +177,7 @@ are a starting size, a maximum size, and a general context (for memory allocation functions, or NULL for standard memory allocation). It returns a pointer to an opaque structure of type \fBpcre2_jit_stack\fP, or NULL if there is an error. The \fBpcre2_jit_stack_free()\fP function is used to free a stack -that is no longer needed. If its argument is NULL, this function returns +that is no longer needed. If its argument is NULL, this function returns immediately, without doing anything. (For the technically minded: the address space is allocated by mmap or VirtualAlloc.) A maximum stack size of 512KiB to 1MiB should be more than enough for any pattern. diff --git a/doc/pcre2perform.3 b/doc/pcre2perform.3 index 698f692..91ca22a 100644 --- a/doc/pcre2perform.3 +++ b/doc/pcre2perform.3 @@ -79,7 +79,7 @@ may also reduce the memory requirements. In contrast to \fBpcre2_match()\fP, \fBpcre2_dfa_match()\fP does use recursive function calls, but only for processing atomic groups, lookaround assertions, and recursion within the pattern. The original version of the code used to -allocate quite large internal workspace vectors on the stack, which caused some +allocate quite large internal workspace vectors on the stack, which caused some problems for some patterns in environments with small stacks. From release 10.32 the code for \fBpcre2_dfa_match()\fP has been re-factored to use heap memory when necessary for internal workspace when recursing, though recursive diff --git a/doc/pcre2serialize.3 b/doc/pcre2serialize.3 index b341e4e..85aee9b 100644 --- a/doc/pcre2serialize.3 +++ b/doc/pcre2serialize.3 @@ -29,13 +29,13 @@ and PCRE2_SIZE type. For example, patterns compiled on a 32-bit system using PCRE2's 16-bit library cannot be reloaded on a 64-bit system, nor can they be reloaded using the 8-bit library. .P -Note that "serialization" in PCRE2 does not convert compiled patterns to an -abstract format like Java or .NET serialization. The serialized output is -really just a bytecode dump, which is why it can only be reloaded in the same +Note that "serialization" in PCRE2 does not convert compiled patterns to an +abstract format like Java or .NET serialization. The serialized output is +really just a bytecode dump, which is why it can only be reloaded in the same environment as the one that created it. Hence the restrictions mentioned above. Applications that are not statically linked with a fixed version of PCRE2 must -be prepared to recompile patterns from their sources, in order to be immune to -PCRE2 upgrades. +be prepared to recompile patterns from their sources, in order to be immune to +PCRE2 upgrades. . . .SH "SECURITY CONCERNS" diff --git a/doc/pcre2syntax.3 b/doc/pcre2syntax.3 index 64b8bf1..e5ace25 100644 --- a/doc/pcre2syntax.3 +++ b/doc/pcre2syntax.3 @@ -35,7 +35,7 @@ This table applies to ASCII and Unicode environments. \eddd character with octal code ddd, or backreference \eo{ddd..} character with octal code ddd.. \eU "U" if PCRE2_ALT_BSUX is set (otherwise is an error) - \eN{U+hh..} character with Unicode code point hh.. + \eN{U+hh..} character with Unicode code point hh.. \euhhhh character with hex code hhhh (if PCRE2_ALT_BSUX is set) \exhh character with hex code hh \ex{hh..} character with hex code hh.. @@ -421,7 +421,7 @@ but some of them use Unicode properties if PCRE2_UCP is set. You can use . .SH "OPTION SETTING" .rs -Changes of these options within a group are automatically cancelled at the end +Changes of these options within a group are automatically cancelled at the end of the group. .sp (?i) caseless @@ -433,12 +433,12 @@ of the group. (?x) extended: ignore white space except in classes (?xx) as (?x) but also ignore space and tab in classes (?-...) unset option(s) - (?^) unset imnsx options + (?^) unset imnsx options .sp Unsetting x or xx unsets both. Several options may be set at once, and a mixture of setting and unsetting such as (?i-x) is allowed, but there may be only one hyphen. Setting (but no unsetting) is allowed after (?^ for example -(?^in). An option setting may appear at the start of a non-capturing group, for +(?^in). An option setting may appear at the start of a non-capturing group, for example (?i:...). .P The following are recognized only at the very start of a pattern or after one @@ -584,8 +584,8 @@ pattern is not anchored. (*MARK:NAME); if not found, the (*SKIP) is ignored (*THEN) local failure, backtrack to next alternation .sp -The effect of one of these verbs in a group called as a subroutine is confined -to the subroutine call. +The effect of one of these verbs in a group called as a subroutine is confined +to the subroutine call. . . .SH "CALLOUTS" diff --git a/doc/pcre2test.1 b/doc/pcre2test.1 index 06b3dc8..f590fe1 100644 --- a/doc/pcre2test.1 +++ b/doc/pcre2test.1 @@ -266,8 +266,8 @@ number of subject lines to be matched against that pattern. In between sets of test data, command lines that begin with # may appear. This file format, with some restrictions, can also be processed by the \fBperltest.sh\fP script that is distributed with PCRE2 as a means of checking that the behaviour of PCRE2 -and Perl is the same. For a specification of \fBperltest.sh\fP, see the -comments near its beginning. +and Perl is the same. For a specification of \fBperltest.sh\fP, see the +comments near its beginning. .P When the input is a terminal, \fBpcre2test\fP prompts for each line of input, using "re>" to prompt for regular expression patterns, and "data>" to prompt @@ -1408,10 +1408,10 @@ the match context via \fBpcre2_set_heap_limit()\fP, the minimum values for each parameter that allows the match to complete without error. If JIT is being used, only the match limit is relevant. .P -When using this modifier, the pattern should not contain any limit settings -such as (*LIMIT_MATCH=...) within it. If such a setting is present and is -lower than the minimum matching value, the minimum value cannot be found -because \fBpcre2_set_match_limit()\fP etc. are only able to reduce the value of +When using this modifier, the pattern should not contain any limit settings +such as (*LIMIT_MATCH=...) within it. If such a setting is present and is +lower than the minimum matching value, the minimum value cannot be found +because \fBpcre2_set_match_limit()\fP etc. are only able to reduce the value of an in-pattern limit; they cannot increase it. .P For non-DFA matching, the minimum \fIdepth_limit\fP number is a measure of how @@ -1424,12 +1424,12 @@ For non-DFA matching, the \fImatch_limit\fP number is a measure of the amount of backtracking that takes place, and learning the minimum value can be instructive. For most simple matches, the number is quite small, but for patterns with very large numbers of matching possibilities, it can become large -very quickly with increasing length of subject string. In the case of DFA -matching, \fImatch_limit\fP controls the total number of calls, both recursive -and non-recursive, to the internal matching function, thus controlling the +very quickly with increasing length of subject string. In the case of DFA +matching, \fImatch_limit\fP controls the total number of calls, both recursive +and non-recursive, to the internal matching function, thus controlling the overall amount of computing resource that is used. .P -For both kinds of matching, the \fIheap_limit\fP number, which is in kibibytes +For both kinds of matching, the \fIheap_limit\fP number, which is in kibibytes (units of 1024 bytes), limits the amount of heap memory used for matching. A value of zero disables the use of any heap memory; many simple pattern matches can be done without using the heap, so zero is not an unreasonable setting. @@ -1897,7 +1897,7 @@ for serializing and de-serializing. They are described in the documentation. In this section we describe the features of \fBpcre2test\fP that can be used to test these functions. .P -Note that "serialization" in PCRE2 does not convert compiled patterns to an +Note that "serialization" in PCRE2 does not convert compiled patterns to an abstract format like Java or .NET. It just makes a reloadable byte code stream. Hence the restrictions on reloading mentioned above. .P diff --git a/perltest.sh b/perltest.sh index 64ae633..5e6c466 100755 --- a/perltest.sh +++ b/perltest.sh @@ -233,8 +233,8 @@ for (;;) # Use no_start_optimize (disable PCRE2 start-up optimization) to disable Perl # optimization by inserting (??{""}) at the start of the pattern. We may - # also encounter -no_start_optimize from a #pattern setting. - + # also encounter -no_start_optimize from a #pattern setting. + $mod =~ s/-no_start_optimize,?//; if ($mod =~ s/no_start_optimize,?//) { $pat =~ s/$del/$del(??{""})/; } diff --git a/src/config.h.in b/src/config.h.in index 3f543dd..d8a5280 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -144,8 +144,7 @@ sure both macros are undefined; an emulation function will then be used. */ instead. This allows for longer patterns in extreme cases. */ #undef LINK_SIZE -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* The value of MATCH_LIMIT determines the default number of times the diff --git a/src/pcre2.h.in b/src/pcre2.h.in index 149b5c6..4c7c674 100644 --- a/src/pcre2.h.in +++ b/src/pcre2.h.in @@ -46,7 +46,7 @@ POSSIBILITY OF SUCH DAMAGE. #define PCRE2_PRERELEASE @PCRE2_PRERELEASE@ #define PCRE2_DATE @PCRE2_DATE@ -/* For the benefit of systems without stdint.h, an alternative is to use +/* For the benefit of systems without stdint.h, an alternative is to use inttypes.h. The existence of these headers is checked by configure or CMake. */ #define PCRE2_HAVE_STDINT_H @PCRE2_HAVE_STDINT_H@ @@ -88,7 +88,7 @@ set, we ensure here that it has no effect. */ #endif /* Have to include limits.h, stdlib.h and stdint.h (or inttypes.h) to ensure -that size_t and uint8_t, UCHAR_MAX, etc are defined. If the system has neither +that size_t and uint8_t, UCHAR_MAX, etc are defined. If the system has neither header, the relevant values must be provided by some other means. */ #include