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 "", as happens for non-POSIX matching. -3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only", -whatever the build configuration was. It now correctly says "\R matches all -Unicode newlines" in the default case when --enable-bsr-anycrlf has not been -specified. Similarly, running "pcre2test -C bsr" never produced the result +3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only", +whatever the build configuration was. It now correctly says "\R matches all +Unicode newlines" in the default case when --enable-bsr-anycrlf has not been +specified. Similarly, running "pcre2test -C bsr" never produced the result ANY. -4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing -multi-code-unit characters caused bad behaviour and possibly a crash. This +4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing +multi-code-unit characters caused bad behaviour and possibly a crash. This issue was fixed for other kinds of repeat in release 10.20 by change 19, but repeating character classes were overlooked. -5. pcre2grep now supports the inclusion of binary zeros in patterns that are +5. pcre2grep now supports the inclusion of binary zeros in patterns that are read from files via the -f option. 6. A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2. @@ -43,79 +43,79 @@ offset is set zero for early errors. 10. A number of patches for Windows support from Daniel Richard G: - (a) List of error numbers in Runtest.bat corrected (it was not the same as in - Runtest). - - (b) pcre2grep snprintf() workaround as used elsewhere in the tree. - - (c) Support for non-C99 snprintf() that returns -1 in the overflow case. - -11. Minor tidy of pcre2_dfa_match() code. + (a) List of error numbers in Runtest.bat corrected (it was not the same as in + Runtest). -12. Refactored pcre2_dfa_match() so that the internal recursive calls no longer -use the stack for local workspace and local ovectors. Instead, an initial block -of stack is reserved, but if this is insufficient, heap memory is used. The + (b) pcre2grep snprintf() workaround as used elsewhere in the tree. + + (c) Support for non-C99 snprintf() that returns -1 in the overflow case. + +11. Minor tidy of pcre2_dfa_match() code. + +12. Refactored pcre2_dfa_match() so that the internal recursive calls no longer +use the stack for local workspace and local ovectors. Instead, an initial block +of stack is reserved, but if this is insufficient, heap memory is used. The heap limit parameter now applies to pcre2_dfa_match(). -13. If a "find limits" test of DFA matching in pcre2test resulted in too many +13. If a "find limits" test of DFA matching in pcre2test resulted in too many matches for the ovector, no matches were displayed. -14. Removed an occurrence of ctrl/Z from test 6 because Windows treats it as +14. Removed an occurrence of ctrl/Z from test 6 because Windows treats it as EOF. The test looks to have come from a fuzzer. -15. If PCRE2 was built with a default match limit a lot greater than the +15. If PCRE2 was built with a default match limit a lot greater than the default default of 10 000 000, some JIT tests of the match limit no longer failed. All such tests now set 10 000 000 as the upper limit. -16. Another Windows related patch for pcregrep to ensure that WIN32 is -undefiined under Cygwin. +16. Another Windows related patch for pcregrep to ensure that WIN32 is +undefined under Cygwin. -17. Test for the presence of stdint.h and inttypes.h in configure and CMake and -include whichever exists (stdint preferred) instead of unconditionally +17. Test for the presence of stdint.h and inttypes.h in configure and CMake and +include whichever exists (stdint preferred) instead of unconditionally including stdint. This makes life easier for old and non-standard systems. 18. Further changes to improve portability, especially to old and or non- standard systems: (a) Put all printf arguments in RunGrepTest into single, not double, quotes, - and use \0 not \x00 for binary zero. - + and use \0 not \x00 for binary zero. + (b) Avoid the use of C++ (i.e. BCPL) // comments. - + (c) Parameterize the use of %zu in pcre2test to make it like %td. For both of - these now, if using MSVC or a standard C before C99, %lu is used with a - cast if necessary. - -19. Applied a contributed patch to CMakeLists.txt to increase the stack size + these now, if using MSVC or a standard C before C99, %lu is used with a + cast if necessary. + +19. Applied a contributed patch to CMakeLists.txt to increase the stack size when linking pcre2test with MSVC. This gets rid of a stack overflow error in the standard set of tests. 20. Output a warning in pcre2test when ignoring the "altglobal" modifier when it is given with the "replace" modifier. -21. In both pcre2test and pcre2_substitute(), with global matching, a pattern -that matched an empty string, but never at the starting match offset, was not -handled in a Perl-compatible way. The pattern /(a(*:1))(?>b)(*SKIP:1)x|.*/ matched against "abc", where the *SKIP +/(?>a(*:1))(?>b)(*SKIP:1)x|.*/ matched against "abc", where the *SKIP shouldn't find a MARK (because is in an atomic group), but it did. 26. Upgraded the perltest.sh script: (1) #pattern lines can now be used to set @@ -125,9 +125,9 @@ default "mark" modifier; (3) Unsupported #command lines give a warning when they are ignored; (4) Mark data is output only if the "mark" modifier is present. -27. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported. +27. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported. -28. A (*MARK) name was not being passed back for positive assertions that were +28. A (*MARK) name was not being passed back for positive assertions that were terminated by (*ACCEPT). 29. Add support for \N{U+dddd}, but not in EBCDIC environments. @@ -141,20 +141,20 @@ Now, when Unicode support is compiled, PCRE2_EXTENDED also discards U+0085, U+200E, U+200F, U+2028, and U+2029, which are additional characters defined by Unicode as "Pattern White Space". This makes PCRE2 compatible with Perl. -32. In certain circumstances, option settings within patterns were not being -correctly processed. For example, the pattern /((?i)A)(?m)B/ incorrectly -matched "ab". (The (?m) setting lost the fact that (?i) should be reset at the -end of its group during the parse process, but without another setting such as +32. In certain circumstances, option settings within patterns were not being +correctly processed. For example, the pattern /((?i)A)(?m)B/ incorrectly +matched "ab". (The (?m) setting lost the fact that (?i) should be reset at the +end of its group during the parse process, but without another setting such as (?m) the compile phase got it right.) This bug was introduced by the refactoring in release 10.23. -33. PCRE2 uses bcopy() if available when memmove() is not, and it used just to +33. PCRE2 uses bcopy() if available when memmove() is not, and it used just to define memmove() as function call to bcopy(). This hasn't been tested for a -long time because in pcre2test the result of memmove() was being used, whereas -bcopy() doesn't return a result. This feature is now refactored always to call -an emulation function when there is no memmove(). The emulation makes use of +long time because in pcre2test the result of memmove() was being used, whereas +bcopy() doesn't return a result. This feature is now refactored always to call +an emulation function when there is no memmove(). The emulation makes use of bcopy() when available. - + Version 10.31 12-February-2018 ------------------------------ diff --git a/NEWS b/NEWS index d52dffe..bc7dbcb 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,32 @@ News about PCRE2 releases ------------------------- +Version 10.32 13-August-2018 +---------------------------- + +This is another mainly bugfix and tidying release with a few minor +enhancements. + +1. pcre2grep now supports the inclusion of binary zeros in patterns that are +read from files via the -f option. + +2. ./configure now supports --enable-jit=auto, which automatically enables JIT +if the hardware supports it. + +3. In pcre2_dfa_match(), internal recursive calls no longer use the stack for +local workspace and local ovectors. Instead, an initial block of stack is +reserved, but if this is insufficient, heap memory is used. The heap limit +parameter now applies to pcre2_dfa_match(). + +4. Updated to Unicode version 11.0.0. + +5. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported. + +6. Added support for \N{U+dddd}, but not in EBCDIC environments. + +7. Added support for (?^) to unset all imnsx options. + + Version 10.31 12-February-2018 ------------------------------ diff --git a/NON-AUTOTOOLS-BUILD b/NON-AUTOTOOLS-BUILD index 21c69de..b742ed3 100644 --- a/NON-AUTOTOOLS-BUILD +++ b/NON-AUTOTOOLS-BUILD @@ -329,7 +329,7 @@ cache can be deleted by selecting "File > Delete Cache". most recent build configuration is targeted by the tests. A summary of test results is presented. Complete test output is subsequently available for review in Testing\Temporary under your build dir. - + BUILDING PCRE2 ON WINDOWS WITH VISUAL STUDIO diff --git a/RunGrepTest b/RunGrepTest index aca24b0..74ff4c1 100755 --- a/RunGrepTest +++ b/RunGrepTest @@ -4,10 +4,10 @@ # itself. What we are checking here is the file handling and options that are # supported by pcre2grep. This script must be run in the build directory. -# CODING CONVENTIONS: +# CODING CONVENTIONS: # * Put printf arguments in single, not double quotes to avoid unwanted # escaping. -# * Use \0 for binary zero in printf, not \x0, for the benefit of older +# * Use \0 for binary zero in printf, not \x0, for the benefit of older # versions. # Set the C locale, so that sort(1) behaves predictably. diff --git a/configure.ac b/configure.ac index b441910..d5e01cd 100644 --- a/configure.ac +++ b/configure.ac @@ -11,16 +11,16 @@ dnl be defined as -RC2, for example. For real releases, it should be empty. m4_define(pcre2_major, [10]) m4_define(pcre2_minor, [32]) m4_define(pcre2_prerelease, [-RC1]) -m4_define(pcre2_date, [2018-02-19]) +m4_define(pcre2_date, [2018-08-13]) # 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. # Libtool shared library interface versions (current:revision:age) -m4_define(libpcre2_8_version, [7:0:7]) -m4_define(libpcre2_16_version, [7:0:7]) -m4_define(libpcre2_32_version, [7:0:7]) -m4_define(libpcre2_posix_version, [2:0:0]) +m4_define(libpcre2_8_version, [7:1:7]) +m4_define(libpcre2_16_version, [7:1:7]) +m4_define(libpcre2_32_version, [7:1:7]) +m4_define(libpcre2_posix_version, [2:1:0]) AC_PREREQ(2.57) AC_INIT(PCRE2, pcre2_major.pcre2_minor[]pcre2_prerelease, , pcre2) diff --git a/doc/html/NON-AUTOTOOLS-BUILD.txt b/doc/html/NON-AUTOTOOLS-BUILD.txt index 21c69de..b742ed3 100644 --- a/doc/html/NON-AUTOTOOLS-BUILD.txt +++ b/doc/html/NON-AUTOTOOLS-BUILD.txt @@ -329,7 +329,7 @@ cache can be deleted by selecting "File > Delete Cache". most recent build configuration is targeted by the tests. A summary of test results is presented. Complete test output is subsequently available for review in Testing\Temporary under your build dir. - + BUILDING PCRE2 ON WINDOWS WITH VISUAL STUDIO diff --git a/doc/html/pcre2.html b/doc/html/pcre2.html index 81555f9..bc588c4 100644 --- a/doc/html/pcre2.html +++ b/doc/html/pcre2.html @@ -23,11 +23,11 @@ please consult the man page, in case the conversion went wrong.

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.


BUILDING 8-BIT, 16-BIT AND 32-BIT LIBRARIES
@@ -171,12 +171,12 @@ Just-in-time (JIT) compiler support is included in the build by specifying --enable-jit 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
   --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.


OPTIONS
@@ -542,7 +542,7 @@ counter that is incremented each time around its main processing loop. If the value set by --match-limit is reached, an error occurs.

-The --heap-limit option specifies, as a number of kibibytes (units of +The --heap-limit 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/html/pcre2jit.html b/doc/html/pcre2jit.html index 330e993..fa007e0 100644 --- a/doc/html/pcre2jit.html +++ b/doc/html/pcre2jit.html @@ -193,7 +193,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 pcre2_jit_stack, or NULL if there is an error. The pcre2_jit_stack_free() 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/html/pcre2perform.html b/doc/html/pcre2perform.html index edd5050..f823c12 100644 --- a/doc/html/pcre2perform.html +++ b/doc/html/pcre2perform.html @@ -94,7 +94,7 @@ may also reduce the memory requirements. In contrast to pcre2_match(), pcre2_dfa_match() 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 pcre2_dfa_match() has been re-factored to use heap memory when necessary for internal workspace when recursing, though recursive diff --git a/doc/html/pcre2serialize.html b/doc/html/pcre2serialize.html index 0a7669e..18a8d7f 100644 --- a/doc/html/pcre2serialize.html +++ b/doc/html/pcre2serialize.html @@ -50,13 +50,13 @@ PCRE2's 16-bit library cannot be reloaded on a 64-bit system, nor can they be reloaded using the 8-bit library.

-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.


SECURITY CONCERNS

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


OPTION SETTING

-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 options
 
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:...).

@@ -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.


CALLOUTS

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 diff --git a/src/pcre2_auto_possess.c b/src/pcre2_auto_possess.c index 51bd689..82a43ae 100644 --- a/src/pcre2_auto_possess.c +++ b/src/pcre2_auto_possess.c @@ -1235,7 +1235,7 @@ for (;;) #endif case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c index d47225e..9631f37 100644 --- a/src/pcre2_compile.c +++ b/src/pcre2_compile.c @@ -3593,8 +3593,8 @@ while (ptr < ptrend) else { BOOL hyphenok = TRUE; - uint32_t oldoptions = options; - + uint32_t oldoptions = options; + top_nest->reset_group = 0; top_nest->max_group = 0; set = unset = 0; diff --git a/src/pcre2_error.c b/src/pcre2_error.c index 4fd86d4..64ab5d9 100644 --- a/src/pcre2_error.c +++ b/src/pcre2_error.c @@ -263,7 +263,7 @@ static const unsigned char match_error_texts[] = "bad serialized data\0" "heap limit exceeded\0" "invalid syntax\0" - /* 65 */ + /* 65 */ "internal error - duplicate substitution match\0" ; diff --git a/src/pcre2_extuni.c b/src/pcre2_extuni.c index 1741922..237211a 100644 --- a/src/pcre2_extuni.c +++ b/src/pcre2_extuni.c @@ -132,10 +132,10 @@ while (eptr < end_subject) /* If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this allows any number of them before a following Extended_Pictographic. */ - if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || + if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || lgb != ucp_gbExtended_Pictographic) lgb = rgb; - + eptr += len; if (xcount != NULL) *xcount += 1; } diff --git a/src/pcre2_find_bracket.c b/src/pcre2_find_bracket.c index 38cd830..70baa13 100644 --- a/src/pcre2_find_bracket.c +++ b/src/pcre2_find_bracket.c @@ -131,7 +131,7 @@ for (;;) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: diff --git a/src/pcre2_intmodedep.h b/src/pcre2_intmodedep.h index ce95e68..62626d0 100644 --- a/src/pcre2_intmodedep.h +++ b/src/pcre2_intmodedep.h @@ -897,7 +897,7 @@ typedef struct dfa_match_block { const uint8_t *tables; /* Character tables */ PCRE2_SIZE start_offset; /* The start offset value */ PCRE2_SIZE heap_limit; /* As it says */ - PCRE2_SIZE heap_used; /* As it says */ + PCRE2_SIZE heap_used; /* As it says */ uint32_t match_limit; /* As it says */ uint32_t match_limit_depth; /* As it says */ uint32_t match_call_count; /* Number of calls of internal function */ diff --git a/src/pcre2_jit_compile.c b/src/pcre2_jit_compile.c index b695883..4bb24e9 100644 --- a/src/pcre2_jit_compile.c +++ b/src/pcre2_jit_compile.c @@ -839,7 +839,7 @@ switch(*cc) #endif case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: @@ -940,7 +940,7 @@ while (cc < ccend) common->control_head_ptr = 1; /* Fall through. */ - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_MARK: if (common->mark_ptr == 0) @@ -1555,7 +1555,7 @@ while (cc < ccend) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_THEN_ARG: SLJIT_ASSERT(common->mark_ptr != 0); @@ -1736,7 +1736,7 @@ while (cc < ccend) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_THEN_ARG: SLJIT_ASSERT(common->mark_ptr != 0); @@ -2045,7 +2045,7 @@ while (cc < ccend) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_THEN_ARG: SLJIT_ASSERT(common->mark_ptr != 0); @@ -2433,7 +2433,7 @@ while (cc < ccend) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_THEN_ARG: SLJIT_ASSERT(common->mark_ptr != 0); @@ -7264,11 +7264,11 @@ while (cc < end_subject) /* If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this allows any number of them before a following Extended_Pictographic. */ - - if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || + + if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || lgb != ucp_gbExtended_Pictographic) lgb = rgb; - + prevcc = cc; cc += len; } @@ -7320,11 +7320,11 @@ while (cc < end_subject) /* If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this allows any number of them before a following Extended_Pictographic. */ - - if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || + + if ((rgb != ucp_gbExtend && rgb != ucp_gbZWJ) || lgb != ucp_gbExtended_Pictographic) lgb = rgb; - + cc++; } @@ -10356,7 +10356,7 @@ backtrack_common *backtrack; PCRE2_UCHAR opcode = *cc; PCRE2_SPTR ccend = cc + 1; -if (opcode == OP_COMMIT_ARG || opcode == OP_PRUNE_ARG || +if (opcode == OP_COMMIT_ARG || opcode == OP_PRUNE_ARG || opcode == OP_SKIP_ARG || opcode == OP_THEN_ARG) ccend += 2 + cc[1]; @@ -10688,7 +10688,7 @@ while (cc < ccend) case OP_THEN: case OP_THEN_ARG: case OP_COMMIT: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: cc = compile_control_verb_matchingpath(common, cc, parent); break; @@ -11763,7 +11763,7 @@ while (current) break; case OP_COMMIT: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: if (!common->local_quit_available) OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE2_ERROR_NOMATCH); if (common->quit_label == NULL) diff --git a/src/pcre2_jit_test.c b/src/pcre2_jit_test.c index aadf241..a28e9a0 100644 --- a/src/pcre2_jit_test.c +++ b/src/pcre2_jit_test.c @@ -1331,7 +1331,7 @@ static int regression_tests(void) ovector8_2[i] = -2; } if (re8) { - (void)pcre2_set_match_limit_8(mcontext8, 10000000); + (void)pcre2_set_match_limit_8(mcontext8, 10000000); return_value8[1] = pcre2_match_8(re8, (PCRE2_SPTR8)current->input, strlen(current->input), current->start_offset & OFFSET_MASK, current->match_options, mdata8_2, mcontext8); @@ -1376,7 +1376,7 @@ static int regression_tests(void) else length16 = copy_char8_to_char16((PCRE2_SPTR8)current->input, regtest_buf16, REGTEST_MAX_LENGTH16); - (void)pcre2_set_match_limit_16(mcontext16, 10000000); + (void)pcre2_set_match_limit_16(mcontext16, 10000000); return_value16[1] = pcre2_match_16(re16, regtest_buf16, length16, current->start_offset & OFFSET_MASK, current->match_options, mdata16_2, mcontext16); @@ -1421,7 +1421,7 @@ static int regression_tests(void) else length32 = copy_char8_to_char32((PCRE2_SPTR8)current->input, regtest_buf32, REGTEST_MAX_LENGTH32); - (void)pcre2_set_match_limit_32(mcontext32, 10000000); + (void)pcre2_set_match_limit_32(mcontext32, 10000000); return_value32[1] = pcre2_match_32(re32, regtest_buf32, length32, current->start_offset & OFFSET_MASK, current->match_options, mdata32_2, mcontext32); diff --git a/src/pcre2_match.c b/src/pcre2_match.c index dc7500c..8741e14 100644 --- a/src/pcre2_match.c +++ b/src/pcre2_match.c @@ -5136,7 +5136,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode); (char *)assert_accept_frame + offsetof(heapframe, ovector), assert_accept_frame->offset_top * sizeof(PCRE2_SIZE)); Foffset_top = assert_accept_frame->offset_top; - Fmark = assert_accept_frame->mark; + Fmark = assert_accept_frame->mark; break; } if (rrc != MATCH_NOMATCH && rrc != MATCH_THEN) RRETURN(rrc); diff --git a/src/pcre2_pattern_info.c b/src/pcre2_pattern_info.c index 88bef4e..a29f5ef 100644 --- a/src/pcre2_pattern_info.c +++ b/src/pcre2_pattern_info.c @@ -390,7 +390,7 @@ while (TRUE) #endif case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: diff --git a/src/pcre2_printint.c b/src/pcre2_printint.c index 5d595a1..bd10c6b 100644 --- a/src/pcre2_printint.c +++ b/src/pcre2_printint.c @@ -799,7 +799,7 @@ for(;;) break; case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: diff --git a/src/pcre2_study.c b/src/pcre2_study.c index d5c6270..acbf98b 100644 --- a/src/pcre2_study.c +++ b/src/pcre2_study.c @@ -707,7 +707,7 @@ for (;;) /* Skip these, but we need to add in the name length. */ case OP_MARK: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_PRUNE_ARG: case OP_SKIP_ARG: case OP_THEN_ARG: @@ -957,7 +957,7 @@ do case OP_CIRCM: case OP_CLOSE: case OP_COMMIT: - case OP_COMMIT_ARG: + case OP_COMMIT_ARG: case OP_COND: case OP_CREF: case OP_FALSE: diff --git a/src/pcre2_ucp.h b/src/pcre2_ucp.h index fd95dd2..0c330ed 100644 --- a/src/pcre2_ucp.h +++ b/src/pcre2_ucp.h @@ -100,7 +100,7 @@ enum { ucp_Zs /* Space separator */ }; -/* These are grapheme break properties. The Extended Pictographic property +/* These are grapheme break properties. The Extended Pictographic property comes from the emoji-data.txt file. */ enum { @@ -273,13 +273,13 @@ enum { ucp_Nushu, ucp_Soyombo, ucp_Zanabazar_Square, - /* New for Unicode 11.0.0 */ - ucp_Dogra, - ucp_Gunjala_Gondi, - ucp_Hanifi_Rohingya, - ucp_Makasar, + /* New for Unicode 11.0.0 */ + ucp_Dogra, + ucp_Gunjala_Gondi, + ucp_Hanifi_Rohingya, + ucp_Makasar, ucp_Medefaidrin, - ucp_Old_Sogdian, + ucp_Old_Sogdian, ucp_Sogdian }; diff --git a/src/pcre2posix.c b/src/pcre2posix.c index 5a2f7cd..7b9f477 100644 --- a/src/pcre2posix.c +++ b/src/pcre2posix.c @@ -344,9 +344,9 @@ if (rc >= 0) if ((size_t)rc > nmatch) rc = (int)nmatch; for (i = 0; i < (size_t)rc; i++) { - pmatch[i].rm_so = (ovector[i*2] == PCRE2_UNSET)? -1 : + pmatch[i].rm_so = (ovector[i*2] == PCRE2_UNSET)? -1 : (int)(ovector[i*2] + so); - pmatch[i].rm_eo = (ovector[i*2+1] == PCRE2_UNSET)? -1 : + pmatch[i].rm_eo = (ovector[i*2+1] == PCRE2_UNSET)? -1 : (int)(ovector[i*2+1] + so); } for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;