• Home
  • Raw
  • Download

Lines Matching +full:fix +full:- +full:win +full:- +full:bazel +full:- +full:build

2 --------------------
7 Version 10.44 07-June-2024
8 --------------------------
10 1. If a pattern contained a variable-length lookbehind in which the first
17 2. Further updates to the oss-fuzz support:
22 classes contain a lot of non-ascii characters.
26 (c) Arranged for text error messages to be shown in 16-bit and 32-bit modes.
35 bytes because this takes a long time, causing oss-fuzz to time out.
55 break property unless a zero-width joiner intervenes. PCRE2 was not insisting
61 Version 10.43 16-February-2024
62 ------------------------------
70 facilities in that script, and added a test with JIT in a non-source directory,
92 9. Updates to restrict the interaction between ASCII and non-ASCII characters
96 non-ASCII when matching caselessly. This is also /r in pcre2test and
107 change needed for 9(a) above; (b) fix bugs in ucptest,
112 --case-restrict and --no-ucp.
124 to compile in NON-AUTOTOOLS-BUILD because it is #included in pcre2_tables.c.
125 Also adjusted the BUILD.bazel and build.zig files, which had the same issue. At
126 the same time, fixed a typo in the Bazel file.
131 18. Fix an invalid match of ascii word classes when invalid utf is enabled.
133 19. Add a --posix-digit to pcre2grep for compatibility with GNU grep, and
147 24. Add support for limited-length variable-length lookbehind assertions, with
152 which fixes a bug with out-of-source-tree CMake build testing.
162 left by 16 when there are non-zeros in the top 16 bits.
171 PCRE2_EXTRA_ALT_BSUX is set. This an ECMAScript, non-Perl compatible,
180 categories are Mn (non-spacing mark) or Pc (combining punctuation). The latter
193 36. Within a pattern (?aT) and (?-aT) set and reset the PCRE2_EXTRA_ASCII_DIGIT
194 option, and (?aP) also sets (?aT) so that (?-aP) disables all ASCII
211 locks out any accidental sign-extension.
213 42. In the 32-bit library, in non-UTF mode, a quantifier that followed a
219 44. Implement --group-separator and --no-group-separator for pcre2grep.
221 45. Fix \X matching in 32 bit mode without UTF in JIT.
223 46. Fix backref iterators when PCRE2_MATCH_UNSET_BACKREF is set in JIT.
225 47. Refactor the handling of whole-pattern recursion (?0) in pcre2_match() so
234 49. In 32-bit mode, the compiler looped for the pattern /[\x{ffffffff}]/ when
238 50. In caseless 32-bit mode with UCP (but not UTF) set, the character
242 51. Fix accept and endanchored interaction in JIT.
244 52. Fix backreferences with unset backref and non-greedy iterators in JIT.
246 53. Improve the logic that checks for a list of starting code units -- positive
251 54. Fix incorrect class character matches in JIT.
264 58. AC did a lot of work on pcre2_fuzzsupport.c to extend it to 16-bit and
265 32-bit libraries and to compare JIT and non-JIT matching.
268 Version 10.42 11-December-2022
269 ------------------------------
279 3. When the -S option of pcre2test was used to set a stack size greater than
288 5. Merged @carenas patch #175 which fixes #86 - segfault on aarch64 (ARM),
298 Version 10.41 06-December-2022
299 ------------------------------
314 5. Minor code re-arrangement to remove gcc warning about realloc() in
329 in pcre2_match() so that it now always uses the heap. (In a multi-thread
332 remembered in the match data block and re-used if that block itself is re-used.
343 a 64-bit system.
345 13. Implemented -Z aka --null in pcre2grep.
353 after output generated by --output.
360 --output or obtained from a callout in a pattern contained a character (byte)
361 greater than 127, it was incorrectly output in UTF-8 format.
383 when processed by lexgrog or mandb -c (GitHub issue #160).
388 Version 10.40 15-April-2022
389 ---------------------------
391 1. Merged patch from @carenas (GitHub #35, 7db87842) to fix pcre2grep incorrect
394 2. Merged patch from @carenas (GitHub #36, dae47509) to fix portability issue
397 3. Merged patch from @carenas (GitHub #37, acc520924) to fix tests when -S is
402 5. Merged patch from @carenas (GitHub #52, b037bfa1) to fix build on GNU Hurd.
409 8. Merged patch from @carenas (GitHub #48) to fix CMake install issue #46.
428 15. Fix some minor issues raised by clang sanitize.
445 (d) The standard Unicode 4-letter abbreviations for script names are now
460 16 bytes on a 64-bit system. The ovector member of heapframe happens to only be
464 a pointer to Fecode at the start of match. Patch to fix this issue by Jessica
467 20. Added -LP and -LS listing options to pcre2test.
470 debugger (PDB) files were incorrect - perhaps never tried for PCRE2?
492 Version 10.39 29-October-2021
493 -----------------------------
495 1. Fix incorrect detection of alternatives in first character search in JIT.
510 with all 64-bit POSIX systems doing LP64 except for Windows.
520 pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
523 build failures for systems that might have stdint.h (C99) and not inttypes.h
532 instead of breaking the build, but that was punted, as it was missing anyway
539 Visual Studio older than 2013 fails to build with JIT enabled, because it is
543 -Wdeclaration-after-statement flag at build time.
550 2021-08-28), code will fail to build in a strict C89 compiler.
555 Version 10.38 01-October-2021
556 -----------------------------
558 1. Fix invalid single character repetition issues in JIT when the repetition
562 2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
563 This extends the CMake build system to build both static and shared libraries
567 - Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
569 - Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
570 variable. Added PCRE2_STATIC variable to the static build using the
573 - Extended the CMake config files.
575 - Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
578 - Added the PCRE_STATIC variable to the target compile definitions for the
583 file pcre2-8.lib. Therefore, I decided to change the static library names by
584 adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
585 [Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
596 case-independent "first code unit" searches for unanchored patterns in 8-bit
606 7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
610 whenever a lookahead was processed, leading to some fuzzer-generated patterns
615 Version 10.37 26-May-2021
616 -------------------------
621 Courreges-Anglas via Nam Nguyen. This fixes RunGrepTest for OpenBSD. Later:
626 2. Compiling with gcc 10.2's -fanalyzer option showed up a hypothetical problem
631 Windows. Patch from email@cs-ware.de fixes bugzilla #2688.
633 4. Two bugs related to over-large numbers have been fixed so the behaviour is
642 5. A run of autoconf suggested that configure.ac was out-of-date with respect
659 names were left in the library so that pre-compiled programs would still work.
663 The macros in pcre2posix.h should ensure that re-compiling fixes any programs
667 Version 10.36 04-December-2020
668 ------------------------------
670 1. Add CET_CFLAGS so that when Intel CET is enabled, pass -mshstk to
675 2. Fix infinite loop when a single byte newline is searched in JIT when
680 - Include GNUInstallDirs and use ${CMAKE_INSTALL_LIBDIR} instead of hardcoded
685 - Add the version of PCRE2 to the configuration summary like ./configure
688 - Fix typo: MACTHED_STRING->MATCHED_STRING
693 - Add escaped double quotes around include directory in CMakeLists.txt to
696 - This fixes a cmake error, if the path of the pcre2 source contains a space.
706 7. Applied a patch from Wolfgang Stöggl (Bugzilla #2600) to fix postfix for
708 generates *.pc files and pcre2-config with the same content, as in the past.
732 13. Fixed a bug with PCRE2_MATCH_INVALID_UTF in 8-bit mode when PCRE2_CASELESS
742 15. Added GNU grep's -m (aka --max-count) option to pcre2grep.
744 16. Refactored substitution processing in pcre2grep strings, both for the -O
759 19. Fix ARM64 compilation warning in JIT. Patch by Carlo.
768 22. Patch to CMakeLists.txt from Daniel to fix problem with testing under
772 Version 10.35 09-May-2020
773 ---------------------------
777 2. Fix ARMv5 JIT improper handling of labels right after a constant pool.
810 10. Fix *THEN verbs in lookahead assertions in JIT.
814 12. The JIT stack should be freed when the low-level stack allocation fails.
817 end with a newline sequence, add a newline according to the --newline setting.
834 17. Fix a crash which occurs when the character type of an invalid UTF
842 19. The function for checking UTF-16 validity was returning an incorrect offset
849 could be mis-compiled and therefore not match correctly. This is the example
850 that found this: /(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/ which failed to
859 (b) There is now a -b option for pcre2_dftables, which causes the tables to
860 be written in binary. There is also a -help option.
870 24. CMake build now checks for secure_getenv() and strerror(). Patch by Carlo.
872 25. Avoid using [-1] as a suffix in pcre2test because it can provoke a compiler
876 CMake build files, and then applied this attribute to the variable called
882 pcre2-config, the libpcre*.pc files, SOVERSION, VERSION and the
895 Version 10.34 21-November-2019
896 ------------------------------
903 detects invalid characters in the 0xd800-0xdfff range.
905 3. Fix minor typo bug in JIT compile when \X is used in a non-UTF string.
909 PCRE2_MATCH_INVALID_UTF compile-time option.
911 5. Give more error detail for invalid UTF-8 when detected in pcre2grep.
913 6. Add support for invalid UTF-8 to pcre2grep.
916 increase it substantially for non-anchored patterns.
948 11. A bug in pcre2grep meant that -o without an argument (or -o0) didn't work
950 addition (a) the default limit for groups requested by -o<n> has been raised to
951 50, (b) the new --om-capture option changes the limit, (c) an error is raised
952 if -o asks for a group that is above the limit.
964 available only for non-JIT matching, because JIT does not maintain the first
971 15. Give error if pcre2test -t, -T, -tm or -TM is given an argument of zero.
976 17. Implemented non-atomic positive lookaround assertions.
1007 24. Add -jitfast command line option to pcre2test (to make all the jit options
1010 25. Make pcre2test -C show if libreadline or libedit is supported.
1014 incorrectly recorded as 65535, leading to incorrect "no match" when start-up
1023 29. The start-up optimization that looks for a unique initial matching
1024 code unit in the interpretive engines uses memchr() in 8-bit mode. When the
1029 up to that position for an earlier occurrence of the other case. This fix
1034 compile-time performance improvement).
1047 characters, but no property types, in UTF-8 mode. Previously, on encountering
1055 unit if the two relevant characters are case-partners. This is particularly
1056 relevant to the 8-bit library, though it applies to all. It can give a
1060 for non-unique first code unit patterns, but after a unique first code unit,
1063 36. Small patch to pcre2posix.c to set the erroroffset field to -1 immediately
1070 38. If a non-ASCII character was the first in a starting assertion in a
1079 Version 10.33 16-April-2019
1080 ---------------------------
1086 2. Fix subject buffer overread in JIT when UTF is disabled and \X or \R has
1089 3. Added support for callouts from pcre2_substitute(). After 10.33-RC1, but
1097 pre-existing programs that use them. (The Debian alternative names are also
1100 5. Fix an xclass matching issue in JIT.
1116 ranges such as a-z in EBCDIC environments. The original code probably never
1122 for tidiness - none of the substring extractors should reference this after
1134 13. Add "kibibytes" to the heap limit output from pcre2test -C to make the
1139 15. Updated the VMS-specific code in pcre2test on the advice of a VMS user.
1150 17. Added --disable-percent-zt to "configure" (and equivalent to CMake) to
1155 18. Added --disable-pcre2grep-callout-fork, which restricts the callout support
1159 19. Fix two instances of <= 0 being applied to unsigned integers (the VMS
1180 for the stack as it needs for -bigstack.
1186 treated as literals. An example is [_-\s] (but not [\s-_] because that gave an
1194 28. Fix word boundary in JIT compiler. Patch by Mike Munday.
1200 30. When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in group
1208 from auto-anchoring if \p{Any}* starts a pattern.
1219 35. Setting --enable-jit=auto for an out-of-tree build failed because the
1230 about truncation for statements such as x = ~x when x is an 8-bit value; it
1231 seems to compute ~x as a 32-bit value. Changing such statements to x = 255 ^ x
1235 Version 10.32 10-September-2018
1236 -------------------------------
1239 non-zero starting offset, unset capturing groups with lower numbers than a
1241 (that is, with offset values of -1).
1245 "<unset>", as happens for non-POSIX matching.
1247 3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only",
1248 whatever the build configuration was. It now correctly says "\R matches all
1249 Unicode newlines" in the default case when --enable-bsr-anycrlf has not been
1250 specified. Similarly, running "pcre2test -C bsr" never produced the result
1253 4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing
1254 multi-code-unit characters caused bad behaviour and possibly a crash. This
1259 read from files via the -f option.
1261 6. A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2.
1263 7. Added --enable-jit=auto support to configure.ac.
1265 8. Added some dummy variables to the heapframe structure in 16-bit and 32-bit
1266 modes for the benefit of m68k, where pointers can be 16-bit aligned. The
1267 dummies force 32-bit alignment and this ensures that the structure is a
1281 (c) Support for non-C99 snprintf() that returns -1 in the overflow case.
1305 including stdint. This makes life easier for old and non-standard systems.
1307 18. Further changes to improve portability, especially to old and or non-
1328 handled in a Perl-compatible way. The pattern /(<?=\G.)/ is an example of such
1342 scripts and characters, this involved re-jigging the grapheme break property
1352 a list of modifiers for all subsequent patterns - only those that the script
1390 result of serializing is always the same. These fields are re-set when the
1393 35. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated
1396 auto-possessified, causing incorrect match failures.
1403 38. Since 10.21, the new testoutput8-16-4 file has accidentally been omitted
1405 testoutput8-16-3 twice. Now fixed.
1431 Version 10.31 12-February-2018
1432 ------------------------------
1434 1. Fix typo (missing ]) in VMS code in pcre2test.c.
1446 defined (e.g. by --enable-never-backslash-C).
1459 10. Added the -LM (list modifiers) option to pcre2test. Also made -C complain
1464 processing files with the -r option, and also (some very odd code) truncating
1469 to be closed (as for a non-assertion ACCEPT), which was wrong and could lead to
1472 started within that assertion. Fixes oss-fuzz issues 3852 and 3891.
1480 14. If --line-buffered was specified for pcre2grep when input was from a
1491 lines were processed (assuming 32-bit ints). They have all been changed to
1501 However, a character in a non-assertive group within a leading assertion such
1512 and set its never-changing fields once only. Do the same for pcre2_dfa_match().
1525 code for -g that handles the case when \K in an assertion causes the match to
1530 pcre2grep when \K was used in an assertion when --colour was used or in
1534 25. When PCRE2_FIRSTLINE without PCRE2_NO_START_OPTIMIZE was used in non-JIT
1539 26. Code for giving up a non-partial match after failing to find a starting
1554 30. Some internal structures have a variable-length ovector[] as their last
1561 overall match. This fixes oss-fuzz issue 5415.
1563 31. Auto-possessification at the end of a capturing group was dependent on what
1564 follows the group (e.g. /(a+)b/ would auto-possessify the a+) but this caused
1567 consequence of change #1 for 10.30 - the implementation of backtracking into
1569 for auto-possessification if the pattern contains any recursions. Fixes
1573 Version 10.30 14-August-2017
1574 ----------------------------
1578 remembering backtracking positions. This makes --disable-stack-for-recursion a
1581 hard-to-do issues such as #1887 in Bugzilla. The code is also cleaner because
1591 a match, because the external block was being set from non-existent
1592 internal ovector fields. Fixes oss-fuzz issue 781.
1598 Fixes oss-fuzz issue 783.
1608 negative indices. Fixes oss-fuzz issue 1454.
1611 similar reasons. Fixes oss-fuzz issue 1465.
1616 renamed as "depth limit" in all relevant places (--with-depth-limit,
1623 the match data block (non-POSIX).
1625 4. In the 32-bit library in non-UTF mode, an attempt to find a Unicode property
1633 reference \1 precedes the group (abc). This fixes oss-fuzz issue 865.
1643 for global matching, unpredictable things could happen. For example, in UTF-8
1647 9. Moved some Windows-specific code in pcre2grep (introduced in 10.23/13) out
1648 of the section that is compiled when Unix-style directory scanning is
1654 11. Fix memory leak in pcre2_serialize_decode() when the input is invalid.
1656 12. Fix potential NULL dereference in pcre2_callout_enumerate() if called with
1659 13. When the 32-bit library was being tested by pcre2test, error messages that
1664 encountered a character class with a possessive repeat, for example [a-f]{3}+.
1681 lengths, and list only the lengths, so as to be system-independent.
1691 the --output=text (-O) option and the inbuilt callout echo.
1693 21. Extend auto-anchoring etc. to ignore groups with a zero qualifier and
1694 single-branch conditions with a false condition (e.g. DEFINE) at the start of a
1722 (d) Avoid warning for never-use case OP_TABLE_LENGTH which is just a fudge
1733 32. Make -bigstack in RunTest allocate a 64MiB stack (instead of 16MiB) so
1741 35. A lookbehind assertion that had a zero-length branch caused undefined
1742 behaviour when processed by pcre2_dfa_match(). This is oss-fuzz issue 1859.
1746 deeply. (Compare item 10.23/36.) This should fix oss-fuzz #1761.
1750 38. Fix returned offsets from regexec() when REG_STARTEND is used with a
1763 43. Re-implement pcre2grep's -F, -w, and -x options using PCRE2_LITERAL,
1766 (a) The -F option did not work for fixed strings containing \E.
1767 (b) The -w option did not work for patterns with multiple branches.
1773 subjects from 1000 to 2000 for 8-bit searches, since they use memchr() and are
1778 unit". Previously only non-anchored patterns did this.
1798 53. Related to 52, though PCRE2 was throwing an error for [[:digit:]-X] it was
1799 not doing so for [\d-X] (and similar escapes), as is documented.
1808 Version 10.23 14-February-2017
1809 ------------------------------
1812 generate all possible 16-bit and 32-bit code unit values in non-UTF modes.
1814 2. In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode), without
1820 3. There has been a major re-factoring of the pcre2_compile.c file. Most syntax
1821 checking is now done in the pre-pass that identifies capturing groups. This has
1840 (f) When testing zero-terminated patterns under valgrind, the terminating
1842 show up only with non-zero-terminated patterns.
1845 /[[:ascii:]-z]/) now generates an error. Perl does accept this as a
1853 right-most character that has been read. In particular, for a variable-length
1864 the change from assuming a zero-terminated pattern (which previously had
1865 required non-zero terminated strings to be copied). These bugs were never in
1883 (e) In UTF-8 or UTF-16 modes with PCRE2_EXTENDED (/x) set and a non-zero-
1887 (f) An unterminated repeat at the end of a non-zero-terminated pattern (e.g.
1932 (t) The sequence \E- or \Q\E- after a POSIX class in a character class caused
1945 reference" and can be useful in repetitions (compare \g{-<number>} ). Perl does
1956 PCRE2_STATIC_RUNTIME). Fix from David Gaussmann.
1958 10. Added --max-buffer-size to pcre2grep, to allow for automatic buffer
1973 14. Add the -t (grand total) option to pcre2grep.
1975 15. A number of bugs have been mended relating to match start-up optimizations
1984 (?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that
1991 17. Added --enable-fuzz-support to "configure", causing an non-installed
1993 compiled. A non-installed binary to run the test function locally, called
2005 21. Make pcre2test -C list valgrind support when it is enabled.
2009 23. Fix an off-by-one bug in pcre2test for the list of names for 'get' and
2020 26. pcre2-config --libs-posix was listing -lpcre2posix instead of
2021 -lpcre2-posix. Also, the CMake build process was building the library with the
2026 support it - %lu is used instead.
2031 29. Fix small memory leak in pcre2test.
2033 30. Fix out-of-bounds read for partial matching of /./ against an empty string
2036 31. Fix a bug in pcre2test that caused a crash when a locale was set either in
2044 a call to pcre2_substitute() an out-of-bounds memory reference could occur.
2050 repeated back reference (example: /(Z)(a)\2{1,2}?(?-i)\1X/i should match ZaAAZX
2065 could-be-emptiness as the pattern is compiled instead of scanning compiled
2070 38. Add the "-ac" command line option to pcre2test as a synonym for "-pattern
2083 42. The limit in the auto-possessification code that was intended to catch
2084 overly-complicated patterns and not spend too much time auto-possessifying was
2086 Now such patterns are no longer completely auto-possessified.
2092 45. Minor cosmetic fix to pcre2test: move a variable that is not used under
2103 * --color=always will write the ANSI sequences to file;
2105 background, relatively standard on DOS/Win);
2106 * remove the (char *) casts for the now-const strings;
2117 47. Detecting patterns that are too large inside the length-measuring loop
2123 characters in the same "not-x" sublists.
2146 stack usage for the benefit of clang with -fsanitize-address, which uses huge
2147 stack frames. Example pattern: /X?(R||){3335}/. Fixes oss-fuzz issue 553.
2156 oss-fuzz issue 557.
2159 mode with --only-matching matched several lines, it restarted scanning at the
2164 with updates to the non-Windows version.
2168 Version 10.22 29-July-2016
2169 --------------------------
2172 to fix problems with running the tests under Windows.
2176 non-printing characters.
2181 4. Updated the valgrind parameters in RunTest: (a) changed smc-check=all to
2182 smc-check=all-non-file; (b) changed obj:* in the suppression file to obj:??? so
2201 about its 8-bit-ness.
2203 9. Detect unmatched closing parentheses and give the error in the pre-scan
2204 instead of later. Previously the pre-scan carried on and could give a
2209 regex library instead of libpcre2-posix. In this situation, a call to regcomp()
2217 message points out the possibility of a mis-linking. Hopefully this will avoid
2218 some head-scratching the next time this happens.
2228 13. Detect missing closing parentheses during the pre-pass for group
2233 gcc's -Wconversion (which still throws up a lot).
2242 buffer overflow. It no longer assumes a binary zero at the end of a too-small
2274 been re-factored and no longer includes pcre2_internal.h.
2286 29. Fix typo in pcre2_jit_test.c
2294 Memcheck warnings Addr16 and Cond in unknown objects (that is, JIT-compiled
2295 code). Also changed smc-check=all to smc-check=all-non-file as was done for
2300 33. Fix typo that gave a compiler error when JIT not supported.
2302 34. Fix comment describing the returns from find_fixedlength().
2304 35. Fix potential negative index in pcre2test.
2317 38. Using -o with -M in pcre2grep could cause unnecessary repeated output when
2319 the same line" - but it was already over the end.
2321 39. Allow \C in lookbehinds and DFA matching in UTF-32 mode (by converting it
2324 40. Fix two clang compiler warnings in pcre2test when only one code unit width
2327 41. Upgrade RunTest to automatically re-run test 2 with a large (64MiB) stack
2332 42. Fix register overwrite in JIT when SSE2 acceleration is enabled.
2338 45. Fix unaligned accesses on x86. Patch by Marc Mutz.
2340 46. Fix some more clang compiler warnings.
2343 Version 10.21 12-January-2016
2344 -----------------------------
2348 2. Use memchr() to find the first character in an unanchored match in 8-bit
2354 4. Fix typos in dftables.c for z/OS.
2376 9. The handling of callouts during the pre-pass for named group identification
2379 10. The quantifier {1} can be ignored, whether greedy, non-greedy, or
2392 14. Fix infinite recursion in the JIT compiler when certain patterns such as
2411 19. If (?R was followed by - or + incorrect behaviour happened instead of a
2420 very pedantic coding infelicities and a buffer overflow while checking a UTF-8
2421 string if the final multi-byte UTF-8 character was truncated.
2423 22. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
2425 non-letter EBCDIC code points within the range.
2428 references and/or recursions can take a long time. There is now a cut-off that
2447 28. If pcre2grep was given the -q option with -c or -l, or when handling a
2453 30. The way recursive references such as (?3) are compiled has been re-written
2458 detected at compile time. This re-writing was done in response to yet another
2461 31. A test for a back reference to a non-existent group was missing for items
2489 non-zero.
2493 42. Fix two assertion fails in JIT. These issues were found by Karl Skomski
2499 44. Fix bug in RunTest.bat for new test 14, and adjust the script for the added
2536 56. In a character class such as [\W\p{Any}] where both a negative-type escape
2543 58. Implemented --never-backslash-C.
2553 message if there were only single-character modifiers. It should be ignored.
2562 64. Improve error message for overly-complicated patterns.
2573 string was zero-terminated.
2582 70. The PCRE2-specific VERSION condition didn't work correctly if only one
2590 72. The code for checking a subject's UTF-32 validity for a pattern with a
2591 lookbehind involved an out-of-bounds pointer, which could potentially cause
2595 as /(?<=(a)(?-1))x/ which have a recursion within a backreference.
2626 83. Lock out configuring for EBCDIC with non-8-bit libraries.
2632 86. Avoid the possibility of computing with an out-of-bounds pointer (though
2651 93. Re-arrange valgrind support code in pcre2test to avoid spurious reports
2660 96. [:punct:] in UCP mode was matching some characters in the range 128-255
2663 97. If [:^ascii:] or [:^xdigit:] are present in a non-negated class, all
2689 104. Allow for up to 32-bit numbers in the ordin() function in pcre2grep.
2704 (a) Within /x extended #-comments
2709 space or a #-type comment that was followed by (?-x), which turns off
2711 pcre2_compile() assumed that (?-x) applied to the whole pattern and
2712 consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix
2731 113. Fix printing of *MARK names that contain binary zeroes in pcre2test.
2734 Version 10.20 30-June-2015
2735 --------------------------
2747 5. Fix JIT compilation of conditional blocks whose assertion is converted to
2758 8. For some types of pattern, for example /Z*(|d*){216}/, the auto-
2764 such as \S in non-UCP mode, explicit wide characters (> 255) can be ignored
2788 14. Negative relative recursive references such as (?-7) to non-existent
2797 caused a stack overflow instead of the diagnosis of a non-fixed length
2800 17. The use of \K in a positive lookbehind assertion in a non-anchored pattern
2807 and a subsequent item in the pattern caused a non-match, backtracking over the
2822 working properly in 16-bit and 32-bit modes. This issue was discovered by a
2830 25. Static linking against the PCRE2 library using the pkg-config module was
2834 forward reference subroutine call followed by a non-forward-reference
2856 31. Fix -fsanitize=undefined warnings for left shifts of 1 by 31 (it treats 1
2859 32. Fix pcre2grep compile when -std=c99 is used with gcc, though it still gives
2860 a warning for "fileno" unless -std=gnu99 us used.
2871 pre-pass over the regex which does nothing other than identify named
2884 39. If a non-capturing group containing a conditional group that could match
2897 43. Single character repetition in JIT has been improved. 20-30% speedup
2900 44. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in
2916 Version 10.10 06-March-2015
2917 ---------------------------
2936 the code for calculating the size over-estimates. This change stops the
2971 scanning the compiled pattern in subsequent auto-possessification can get out
2974 not a bug fix; passing bad UTF with NO_UTF_CHECK is documented as having an
2977 12. A UTF pattern containing a "not" match of a non-ASCII character and a
2981 that is found in the output of "locale -a" can actually be set by pcre2test
2992 failed to allow the zero-repeat case if pcre2_match() was called with an
2995 16. Improved error message in pcre2test when setting the stack size (-S) fails.
2998 transfer from PCRE1, meaning that CMake configuration failed if "build tests"
3000 of PCRE2 sources, which caused a failure to build pcre2test.
3015 to be compiled, leading to the error "internal error: previously-checked
3018 FortiGuard Labs. (Added 24-March-2015: CVE-2015-2325 was given to this.)
3023 discovered by Kai Lu of Fortinet's FortiGuard Labs. (Added 24-March-2015:
3024 CVE-2015-2326 was given to this.)
3026 24. Computing the size of the JIT read-only data in advance has been a source
3027 of various issues, and new ones are still appear unfortunately. To fix
3029 and replaced by on-demand memory allocation.
3031 25. A pattern such as /(?i)[A-`]/, where characters in the other case are
3034 that example, the range a-j was left out of the class.
3037 Version 10.00 05-January-2015
3038 -----------------------------
3050 1. Including Unicode support at build time is now enabled by default, but it
3054 2. The test program, now called pcre2test, was re-specified and almost
3055 completely re-written. Its input is not compatible with input for pcretest.
3066 5. There are case-equivalent Unicode characters whose encodings use different
3067 numbers of code units in UTF-8. U+023A and U+2C65 are one example. (It is
3068 theoretically possible for this to happen in UTF-16 too.) If a backreference to
3072 (and in UTF-8 mode) against "\x{23a}\x{2c65}\x{2c65}\x{2c65}", group 2 should
3073 capture the final character, which is the three bytes E2, B1, and A5 in UTF-8.