• Home
  • Raw
  • Download

Lines Matching +full:test +full:- +full:cmake +full:- +full:minimum

1 Change Log for PCRE2 - see also the Git log
2 -------------------------------------------
5 Version 10.42 11-December-2022
6 ------------------------------
13 2. To catch similar issues to the above in future, a new small test program
14 that includes pcre2posix.h but not pcre2.h has been added to the test suite.
16 3. When the -S option of pcre2test was used to set a stack size greater than
25 5. Merged @carenas patch #175 which fixes #86 - segfault on aarch64 (ARM),
28 Version 10.41 06-December-2022
29 ------------------------------
35 2. Merged patch from @carenas (GitHub #110) for pthreads support in CMake.
44 5. Minor code re-arrangement to remove gcc warning about realloc() in
59 in pcre2_match() so that it now always uses the heap. (In a multi-thread
62 remembered in the match data block and re-used if that block itself is re-used.
71 12. Created a test for pcre2_match() heap processing that is not part of the
73 a 64-bit system.
75 13. Implemented -Z aka --null in pcre2grep.
83 after output generaed by --output.
90 --output or obtained from a callout in a pattern contained a character (byte)
91 greater than 127, it was incorrectly output in UTF-8 format.
113 when processed by lexgrog or mandb -c (GitHub issue #160).
118 Version 10.40 15-April-2022
119 ---------------------------
127 3. Merged patch from @carenas (GitHub #37, acc520924) to fix tests when -S is
136 7. Merged patch from @carenas (GitHub #49) to remove obsolete JFriedl test code
139 8. Merged patch from @carenas (GitHub #48) to fix CMake install issue #46.
175 (d) The standard Unicode 4-letter abbreviations for script names are now
190 16 bytes on a 64-bit system. The ovector member of heapframe happens to only be
197 20. Added -LP and -LS listing options to pcre2test.
200 debugger (PDB) files were incorrect - perhaps never tried for PCRE2?
218 * Really allow libedit with cmake
222 Version 10.39 29-October-2021
223 -----------------------------
240 with all 64-bit POSIX systems doing LP64 except for Windows.
250 pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
252 Remove checks for it in autotools and CMake and document better the expected
258 CMake checks for standard headers are not meant to be used for hard
273 -Wdeclaration-after-statement flag at build time.
280 2021-08-28), code will fail to build in a strict C89 compiler.
285 Version 10.38 01-October-2021
286 -----------------------------
292 2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
293 This extends the CMake build system to build both static and shared libraries
295 using the CMake config files. JWB provided these notes:
297 - Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
299 - Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
303 - Extended the CMake config files.
305 - Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
308 - Added the PCRE_STATIC variable to the target compile definitions for the
313 file pcre2-8.lib. Therefore, I decided to change the static library names by
314 adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
315 [Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
317 3. Increased the minimum release number for CMake to 3.0.0 because older than
326 case-independent "first code unit" searches for unanchored patterns in 8-bit
336 7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
340 whenever a lookahead was processed, leading to some fuzzer-generated patterns
345 Version 10.37 26-May-2021
346 -------------------------
351 Courreges-Anglas via Nam Nguyen. This fixes RunGrepTest for OpenBSD. Later:
356 2. Compiling with gcc 10.2's -fanalyzer option showed up a hypothetical problem
360 3. An alternative patch for CMakeLists.txt because 10.36 #4 breaks CMake on
361 Windows. Patch from email@cs-ware.de fixes bugzilla #2688.
363 4. Two bugs related to over-large numbers have been fixed so the behaviour is
372 5. A run of autoconf suggested that configure.ac was out-of-date with respect
376 is broken. Later: the requirement for autoconf 2.70 broke some automatic test
389 names were left in the library so that pre-compiled programs would still work.
393 The macros in pcre2posix.h should ensure that re-compiling fixes any programs
397 Version 10.36 04-December-2020
398 ------------------------------
400 1. Add CET_CFLAGS so that when Intel CET is enabled, pass -mshstk to
410 - Include GNUInstallDirs and use ${CMAKE_INSTALL_LIBDIR} instead of hardcoded
415 - Add the version of PCRE2 to the configuration summary like ./configure
418 - Fix typo: MACTHED_STRING->MATCHED_STRING
423 - Add escaped double quotes around include directory in CMakeLists.txt to
426 - This fixes a cmake error, if the path of the pcre2 source contains a space.
428 5. Updated CMakeLists.txt with a patch from B. Scott Michel: CMake's
437 debug Windows builds using CMake. This also updated configure so that it
438 generates *.pc files and pcre2-config with the same content, as in the past.
457 this case have been moved from test 1 to test 2.
462 13. Fixed a bug with PCRE2_MATCH_INVALID_UTF in 8-bit mode when PCRE2_CASELESS
472 15. Added GNU grep's -m (aka --max-count) option to pcre2grep.
474 16. Refactored substitution processing in pcre2grep strings, both for the -O
483 test for a version of sed that can handle binary zero, instead of assuming that
491 20. A bug in the RunTest script meant that if the first part of test 2 failed,
494 21. Test 2 was failing when run from a directory other than the source
502 Version 10.35 09-May-2020
503 ---------------------------
538 the minimum.
544 12. The JIT stack should be freed when the low-level stack allocation fails.
547 end with a newline sequence, add a newline according to the --newline setting.
572 19. The function for checking UTF-16 validity was returning an incorrect offset
579 could be mis-compiled and therefore not match correctly. This is the example
580 that found this: /(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/ which failed to
589 (b) There is now a -b option for pcre2_dftables, which causes the tables to
590 be written in binary. There is also a -help option.
600 24. CMake build now checks for secure_getenv() and strerror(). Patch by Carlo.
602 25. Avoid using [-1] as a suffix in pcre2test because it can provoke a compiler
606 CMake build files, and then applied this attribute to the variable called
612 pcre2-config, the libpcre*.pc files, SOVERSION, VERSION and the
613 MACHO_*_VERSIONS settings for CMake builds.
618 29. Check for the existence of memfd_create in both CMake and configure
625 Version 10.34 21-November-2019
626 ------------------------------
633 detects invalid characters in the 0xd800-0xdfff range.
635 3. Fix minor typo bug in JIT compile when \X is used in a non-UTF string.
639 PCRE2_MATCH_INVALID_UTF compile-time option.
641 5. Give more error detail for invalid UTF-8 when detected in pcre2grep.
643 6. Add support for invalid UTF-8 to pcre2grep.
646 increase it substantially for non-anchored patterns.
649 minimum is potentially useful.
651 9. Some changes to the way the minimum subject length is handled:
653 * When PCRE2_NO_START_OPTIMIZE is set, no minimum length is computed;
656 * An incorrect minimum length could be calculated for a pattern that
657 contained (*ACCEPT) inside a qualified group whose minimum repetition was
658 zero, for example /A(?:(*ACCEPT))?B/, which incorrectly computed a minimum
659 of 2. The minimum length scan no longer happens for a pattern that
662 * When no minimum length is set by the normal scan, but a first and/or last
663 code unit is recorded, set the minimum to 1 or 2 as appropriate.
666 reference cannot know which one to scan for a minimum length. This used to
667 cause the minimum length finder to give up with no result. Now it treats
668 such references as not adding to the minimum length (which it should have
678 11. A bug in pcre2grep meant that -o without an argument (or -o0) didn't work
680 addition (a) the default limit for groups requested by -o<n> has been raised to
681 50, (b) the new --om-capture option changes the limit, (c) an error is raised
682 if -o asks for a group that is above the limit.
694 available only for non-JIT matching, because JIT does not maintain the first
701 15. Give error if pcre2test -t, -T, -tm or -TM is given an argument of zero.
706 17. Implemented non-atomic positive lookaround assertions.
737 24. Add -jitfast command line option to pcre2test (to make all the jit options
740 25. Make pcre2test -C show if libreadline or libedit is supported.
743 that is remembered as a minimum length), the whole group's length was
744 incorrectly recorded as 65535, leading to incorrect "no match" when start-up
753 29. The start-up optimization that looks for a unique initial matching
754 code unit in the interpretive engines uses memchr() in 8-bit mode. When the
762 30. While scanning to find the minimum length of a group, if any branch has
763 minimum length zero, there is no need to scan any subsequent branches (a small
764 compile-time performance improvement).
777 characters, but no property types, in UTF-8 mode. Previously, on encountering
785 unit if the two relevant characters are case-partners. This is particularly
786 relevant to the 8-bit library, though it applies to all. It can give a
790 for non-unique first code unit patterns, but after a unique first code unit,
793 36. Small patch to pcre2posix.c to set the erroroffset field to -1 immediately
800 38. If a non-ASCII character was the first in a starting assertion in a
809 Version 10.33 16-April-2019
810 ---------------------------
819 3. Added support for callouts from pcre2_substitute(). After 10.33-RC1, but
827 pre-existing programs that use them. (The Debian alternative names are also
846 ranges such as a-z in EBCDIC environments. The original code probably never
852 for tidiness - none of the substring extractors should reference this after
856 minimum of zero, an incorrect "match must start with this character" could be
864 13. Add "kibibytes" to the heap limit output from pcre2test -C to make the
869 15. Updated the VMS-specific code in pcre2test on the advice of a VMS user.
880 17. Added --disable-percent-zt to "configure" (and equivalent to CMake) to
885 18. Added --disable-pcre2grep-callout-fork, which restricts the callout support
900 23. The RunGrepTest script used to cut out the test of NUL characters for
902 systems can't either. I've inverted the test so that only those OS that are
903 known to work (currently only Linux) try to run this test.
909 25. In the RunTest script, make the test for stack setting use the same value
910 for the stack as it needs for -bigstack.
916 treated as literals. An example is [_-\s] (but not [\s-_] because that gave an
927 tests such as (?(VERSION>=0)...) when the version test was true. Incorrect
930 30. When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in group
938 from auto-anchoring if \p{Any}* starts a pattern.
940 33. Compile invalid UTF check in JIT test when only pcre32 is enabled.
942 34. For some time now, CMake has been warning about the setting of policy
944 removed in a future version. A request for CMake expertise on the list produced
949 35. Setting --enable-jit=auto for an out-of-tree build failed because the
960 about truncation for statements such as x = ~x when x is an 8-bit value; it
961 seems to compute ~x as a 32-bit value. Changing such statements to x = 255 ^ x
965 Version 10.32 10-September-2018
966 -------------------------------
969 non-zero starting offset, unset capturing groups with lower numbers than a
971 (that is, with offset values of -1).
975 "<unset>", as happens for non-POSIX matching.
977 3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only",
979 Unicode newlines" in the default case when --enable-bsr-anycrlf has not been
980 specified. Similarly, running "pcre2test -C bsr" never produced the result
983 4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing
984 multi-code-unit characters caused bad behaviour and possibly a crash. This
989 read from files via the -f option.
991 6. A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2.
993 7. Added --enable-jit=auto support to configure.ac.
995 8. Added some dummy variables to the heapframe structure in 16-bit and 32-bit
996 modes for the benefit of m68k, where pointers can be 16-bit aligned. The
997 dummies force 32-bit alignment and this ensures that the structure is a
1011 (c) Support for non-C99 snprintf() that returns -1 in the overflow case.
1020 13. If a "find limits" test of DFA matching in pcre2test resulted in too many
1023 14. Removed an occurrence of ctrl/Z from test 6 because Windows treats it as
1024 EOF. The test looks to have come from a fuzzer.
1033 17. Test for the presence of stdint.h and inttypes.h in configure and CMake and
1035 including stdint. This makes life easier for old and non-standard systems.
1037 18. Further changes to improve portability, especially to old and or non-
1058 handled in a Perl-compatible way. The pattern /(<?=\G.)/ is an example of such
1068 23. The VERSION condition test was reading fractional PCRE2 version numbers
1072 scripts and characters, this involved re-jigging the grapheme break property
1082 a list of modifiers for all subsequent patterns - only those that the script
1120 result of serializing is always the same. These fields are re-set when the
1123 35. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated
1126 auto-possessified, causing incorrect match failures.
1133 38. Since 10.21, the new testoutput8-16-4 file has accidentally been omitted
1135 testoutput8-16-3 twice. Now fixed.
1139 assumed empty second branch cannot be anchored. Demonstrated by test patterns
1144 repeated conditional subpattern, and can be found to be anchored if the minimum
1161 Version 10.31 12-February-2018
1162 ------------------------------
1176 defined (e.g. by --enable-never-backslash-C).
1189 10. Added the -LM (list modifiers) option to pcre2test. Also made -C complain
1194 processing files with the -r option, and also (some very odd code) truncating
1199 to be closed (as for a non-assertion ACCEPT), which was wrong and could lead to
1202 started within that assertion. Fixes oss-fuzz issues 3852 and 3891.
1210 14. If --line-buffered was specified for pcre2grep when input was from a
1221 lines were processed (assuming 32-bit ints). They have all been changed to
1224 17. If a backreference with a minimum repeat count of zero was first in a
1231 However, a character in a non-assertive group within a leading assertion such
1242 and set its never-changing fields once only. Do the same for pcre2_dfa_match().
1255 code for -g that handles the case when \K in an assertion causes the match to
1260 pcre2grep when \K was used in an assertion when --colour was used or in
1264 25. When PCRE2_FIRSTLINE without PCRE2_NO_START_OPTIMIZE was used in non-JIT
1269 26. Code for giving up a non-partial match after failing to find a starting
1284 30. Some internal structures have a variable-length ovector[] as their last
1291 overall match. This fixes oss-fuzz issue 5415.
1293 31. Auto-possessification at the end of a capturing group was dependent on what
1294 follows the group (e.g. /(a+)b/ would auto-possessify the a+) but this caused
1297 consequence of change #1 for 10.30 - the implementation of backtracking into
1299 for auto-possessification if the pattern contains any recursions. Fixes
1303 Version 10.30 14-August-2017
1304 ----------------------------
1308 remembering backtracking positions. This makes --disable-stack-for-recursion a
1311 hard-to-do issues such as #1887 in Bugzilla. The code is also cleaner because
1321 a match, because the external block was being set from non-existent
1322 internal ovector fields. Fixes oss-fuzz issue 781.
1328 Fixes oss-fuzz issue 783.
1338 negative indices. Fixes oss-fuzz issue 1454.
1341 similar reasons. Fixes oss-fuzz issue 1465.
1346 renamed as "depth limit" in all relevant places (--with-depth-limit,
1353 the match data block (non-POSIX).
1355 4. In the 32-bit library in non-UTF mode, an attempt to find a Unicode property
1363 reference \1 precedes the group (abc). This fixes oss-fuzz issue 865.
1373 for global matching, unpredictable things could happen. For example, in UTF-8
1377 9. Moved some Windows-specific code in pcre2grep (introduced in 10.23/13) out
1378 of the section that is compiled when Unix-style directory scanning is
1389 13. When the 32-bit library was being tested by pcre2test, error messages that
1394 encountered a character class with a possessive repeat, for example [a-f]{3}+.
1398 matching to find the minimum value for this limit.
1411 lengths, and list only the lengths, so as to be system-independent.
1421 the --output=text (-O) option and the inbuilt callout echo.
1423 21. Extend auto-anchoring etc. to ignore groups with a zero qualifier and
1424 single-branch conditions with a false condition (e.g. DEFINE) at the start of a
1430 heap limit along with other pattern information, and to find the minimum when
1452 (d) Avoid warning for never-use case OP_TABLE_LENGTH which is just a fudge
1463 32. Make -bigstack in RunTest allocate a 64MiB stack (instead of 16MiB) so
1471 35. A lookbehind assertion that had a zero-length branch caused undefined
1472 behaviour when processed by pcre2_dfa_match(). This is oss-fuzz issue 1859.
1476 deeply. (Compare item 10.23/36.) This should fix oss-fuzz #1761.
1493 43. Re-implement pcre2grep's -F, -w, and -x options using PCRE2_LITERAL,
1496 (a) The -F option did not work for fixed strings containing \E.
1497 (b) The -w option did not work for patterns with multiple branches.
1503 subjects from 1000 to 2000 for 8-bit searches, since they use memchr() and are
1508 unit". Previously only non-anchored patterns did this.
1528 53. Related to 52, though PCRE2 was throwing an error for [[:digit:]-X] it was
1529 not doing so for [\d-X] (and similar escapes), as is documented.
1538 Version 10.23 14-February-2017
1539 ------------------------------
1542 generate all possible 16-bit and 32-bit code unit values in non-UTF modes.
1544 2. In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode), without
1550 3. There has been a major re-factoring of the pcre2_compile.c file. Most syntax
1551 checking is now done in the pre-pass that identifies capturing groups. This has
1564 (d) A recursion condition test such as (?(R2)...) must now refer to an
1567 (e) A conditional recursion test such as (?(R)...) misbehaved if there was a
1570 (f) When testing zero-terminated patterns under valgrind, the terminating
1572 show up only with non-zero-terminated patterns.
1575 /[[:ascii:]-z]/) now generates an error. Perl does accept this as a
1583 right-most character that has been read. In particular, for a variable-length
1594 the change from assuming a zero-terminated pattern (which previously had
1595 required non-zero terminated strings to be copied). These bugs were never in
1613 (e) In UTF-8 or UTF-16 modes with PCRE2_EXTENDED (/x) set and a non-zero-
1617 (f) An unterminated repeat at the end of a non-zero-terminated pattern (e.g.
1632 (k) If parsing a pattern exactly filled the buffer, the internal test for
1662 (t) The sequence \E- or \Q\E- after a POSIX class in a character class caused
1675 reference" and can be useful in repetitions (compare \g{-<number>} ). Perl does
1688 10. Added --max-buffer-size to pcre2grep, to allow for automatic buffer
1693 without it (something that neither ./configure nor CMake allow, but it can be
1703 14. Add the -t (grand total) option to pcre2grep.
1705 15. A number of bugs have been mended relating to match start-up optimizations
1714 (?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that
1721 17. Added --enable-fuzz-support to "configure", causing an non-installed
1722 library containing a test function that can be called by fuzzers to be
1723 compiled. A non-installed binary to run the test function locally, called
1735 21. Make pcre2test -C list valgrind support when it is enabled.
1739 23. Fix an off-by-one bug in pcre2test for the list of names for 'get' and
1750 26. pcre2-config --libs-posix was listing -lpcre2posix instead of
1751 -lpcre2-posix. Also, the CMake build process was building the library with the
1756 support it - %lu is used instead.
1763 30. Fix out-of-bounds read for partial matching of /./ against an empty string
1774 a call to pcre2_substitute() an out-of-bounds memory reference could occur.
1780 repeated back reference (example: /(Z)(a)\2{1,2}?(?-i)\1X/i should match ZaAAZX
1783 35. When a pattern is too complicated, PCRE2 gives up trying to find a minimum
1795 could-be-emptiness as the pattern is compiled instead of scanning compiled
1800 38. Add the "-ac" command line option to pcre2test as a synonym for "-pattern
1813 42. The limit in the auto-possessification code that was intended to catch
1814 overly-complicated patterns and not spend too much time auto-possessifying was
1816 Now such patterns are no longer completely auto-possessified.
1833 * --color=always will write the ANSI sequences to file;
1836 * remove the (char *) casts for the now-const strings;
1847 47. Detecting patterns that are too large inside the length-measuring loop
1853 characters in the same "not-x" sublists.
1864 AC_USE_SYSTEM_EXTENSIONS macro and to test for functions used by the JIT
1876 stack usage for the benefit of clang with -fsanitize-address, which uses huge
1877 stack frames. Example pattern: /X?(R||){3335}/. Fixes oss-fuzz issue 553.
1881 searching for the referenced group in order to find the minimum length was
1882 being done repeatedly. Now up to 128 group minimum lengths are cached and the
1883 attempt to find a minimum length is abandoned if there is a back reference to a
1886 oss-fuzz issue 557.
1889 mode with --only-matching matched several lines, it restarted scanning at the
1894 with updates to the non-Windows version.
1898 Version 10.22 29-July-2016
1899 --------------------------
1906 non-printing characters.
1911 4. Updated the valgrind parameters in RunTest: (a) changed smc-check=all to
1912 smc-check=all-non-file; (b) changed obj:* in the suppression file to obj:??? so
1931 about its 8-bit-ness.
1933 9. Detect unmatched closing parentheses and give the error in the pre-scan
1934 instead of later. Previously the pre-scan carried on and could give a
1939 regex library instead of libpcre2-posix. In this situation, a call to regcomp()
1947 message points out the possibility of a mis-linking. Hopefully this will avoid
1948 some head-scratching the next time this happens.
1958 13. Detect missing closing parentheses during the pre-pass for group
1963 gcc's -Wconversion (which still throws up a lot).
1972 buffer overflow. It no longer assumes a binary zero at the end of a too-small
2000 23. RunTest.bat was missing a "set type" line for test 22.
2004 been re-factored and no longer includes pcre2_internal.h.
2024 Memcheck warnings Addr16 and Cond in unknown objects (that is, JIT-compiled
2025 code). Also changed smc-check=all to smc-check=all-non-file as was done for
2043 37. Added "&& !defined(__INTEL_COMPILER)" to the test for __GNUC__ in
2047 38. Using -o with -M in pcre2grep could cause unnecessary repeated output when
2049 the same line" - but it was already over the end.
2051 39. Allow \C in lookbehinds and DFA matching in UTF-32 mode (by converting it
2057 41. Upgrade RunTest to automatically re-run test 2 with a large (64MiB) stack
2073 Version 10.21 12-January-2016
2074 -----------------------------
2078 2. Use memchr() to find the first character in an unanchored match in 8-bit
2106 9. The handling of callouts during the pre-pass for named group identification
2109 10. The quantifier {1} can be ignored, whether greedy, non-greedy, or
2141 19. If (?R was followed by - or + incorrect behaviour happened instead of a
2150 very pedantic coding infelicities and a buffer overflow while checking a UTF-8
2151 string if the final multi-byte UTF-8 character was truncated.
2153 22. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
2155 non-letter EBCDIC code points within the range.
2157 23. Finding the minimum matching length of complex patterns with back
2158 references and/or recursions can take a long time. There is now a cut-off that
2159 gives up trying to find a minimum length when things get too complex.
2161 24. An optimization has been added that speeds up finding the minimum matching
2166 minimum matching length gave a wrong result, which could cause incorrect "no
2167 match" errors. For such patterns, a minimum matching length cannot at present
2177 28. If pcre2grep was given the -q option with -c or -l, or when handling a
2183 30. The way recursive references such as (?3) are compiled has been re-written
2188 detected at compile time. This re-writing was done in response to yet another
2191 31. A test for a back reference to a non-existent group was missing for items
2219 non-zero.
2229 44. Fix bug in RunTest.bat for new test 14, and adjust the script for the added
2230 test (there are now 20 in total).
2247 this work, the new command was added to several test files and the testing
2266 56. In a character class such as [\W\p{Any}] where both a negative-type escape
2270 57. Fixed integer overflow for patterns whose minimum matching length is very,
2273 58. Implemented --never-backslash-C.
2283 message if there were only single-character modifiers. It should be ignored.
2292 64. Improve error message for overly-complicated patterns.
2295 make it easier to test long repetitive patterns. The tests for 63 above are
2303 string was zero-terminated.
2312 70. The PCRE2-specific VERSION condition didn't work correctly if only one
2320 72. The code for checking a subject's UTF-32 validity for a pattern with a
2321 lookbehind involved an out-of-bounds pointer, which could potentially cause
2325 as /(?<=(a)(?-1))x/ which have a recursion within a backreference.
2351 81. Check for integer overflow in minimum length calculation and cap it at
2354 82. Small optimizations in code for finding the minimum matching length.
2356 83. Lock out configuring for EBCDIC with non-8-bit libraries.
2358 84. Test for error code <= 0 in regerror().
2362 86. Avoid the possibility of computing with an out-of-bounds pointer (though
2373 90. Run test 8 (internal offsets and code sizes) for link sizes 3 and 4 as well
2381 93. Re-arrange valgrind support code in pcre2test to avoid spurious reports
2390 96. [:punct:] in UCP mode was matching some characters in the range 128-255
2393 97. If [:^ascii:] or [:^xdigit:] are present in a non-negated class, all
2419 104. Allow for up to 32-bit numbers in the ordin() function in pcre2grep.
2434 (a) Within /x extended #-comments
2439 space or a #-type comment that was followed by (?-x), which turns off
2441 pcre2_compile() assumed that (?-x) applied to the whole pattern and
2442 consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix
2453 possible to test it.
2464 Version 10.20 30-June-2015
2465 --------------------------
2488 8. For some types of pattern, for example /Z*(|d*){216}/, the auto-
2494 such as \S in non-UCP mode, explicit wide characters (> 255) can be ignored
2518 14. Negative relative recursive references such as (?-7) to non-existent
2527 caused a stack overflow instead of the diagnosis of a non-fixed length
2530 17. The use of \K in a positive lookbehind assertion in a non-anchored pattern
2537 and a subsequent item in the pattern caused a non-match, backtracking over the
2543 20. The function for finding the minimum length of a matching string could take
2552 working properly in 16-bit and 32-bit modes. This issue was discovered by a
2560 25. Static linking against the PCRE2 library using the pkg-config module was
2564 forward reference subroutine call followed by a non-forward-reference
2586 31. Fix -fsanitize=undefined warnings for left shifts of 1 by 31 (it treats 1
2589 32. Fix pcre2grep compile when -std=c99 is used with gcc, though it still gives
2590 a warning for "fileno" unless -std=gnu99 us used.
2601 pre-pass over the regex which does nothing other than identify named
2614 39. If a non-capturing group containing a conditional group that could match
2619 \a and \e in test subject lines.
2627 43. Single character repetition in JIT has been improved. 20-30% speedup
2630 44. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in
2646 Version 10.10 06-March-2015
2647 ---------------------------
2666 the code for calculating the size over-estimates. This change stops the
2680 7. A reference to a duplicated named group (either a back reference or a test
2686 segfault at compile time (while trying to find the minimum matching length).
2687 The infinite loop is now broken (with the minimum length unset, that is, zero).
2689 9. If an assertion that was used as a condition was quantified with a minimum
2701 scanning the compiled pattern in subsequent auto-possessification can get out
2707 12. A UTF pattern containing a "not" match of a non-ASCII character and a
2710 13. The locale test (RunTest 3) has been upgraded. It now checks that a locale
2711 that is found in the output of "locale -a" can actually be set by pcre2test
2713 but would not set (an example does exist), the test would "pass" without
2721 15. A possessive capturing group such as (a)*+ with a minimum repeat of zero
2722 failed to allow the zero-repeat case if pcre2_match() was called with an
2725 16. Improved error message in pcre2test when setting the stack size (-S) fails.
2728 transfer from PCRE1, meaning that CMake configuration failed if "build tests"
2740 use with CMake.
2744 repeated outer group that has a zero minimum quantifier, caused incorrect code
2745 to be compiled, leading to the error "internal error: previously-checked
2748 FortiGuard Labs. (Added 24-March-2015: CVE-2015-2325 was given to this.)
2753 discovered by Kai Lu of Fortinet's FortiGuard Labs. (Added 24-March-2015:
2754 CVE-2015-2326 was given to this.)
2756 24. Computing the size of the JIT read-only data in advance has been a source
2759 and replaced by on-demand memory allocation.
2761 25. A pattern such as /(?i)[A-`]/, where characters in the other case are
2764 that example, the range a-j was left out of the class.
2767 Version 10.00 05-January-2015
2768 -----------------------------
2784 2. The test program, now called pcre2test, was re-specified and almost
2785 completely re-written. Its input is not compatible with input for pcretest.
2796 5. There are case-equivalent Unicode characters whose encodings use different
2797 numbers of code units in UTF-8. U+023A and U+2C65 are one example. (It is
2798 theoretically possible for this to happen in UTF-16 too.) If a backreference to
2802 (and in UTF-8 mode) against "\x{23a}\x{2c65}\x{2c65}\x{2c65}", group 2 should
2803 capture the final character, which is the three bytes E2, B1, and A5 in UTF-8.
2821 9. If an assertion used as a condition was quantified with a minimum of zero