@@ -5,6 +5,49 @@ Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
5
5
development is happening in the PCRE2 10.xx series.
6
6
7
7
8
+ Version 8.43 23-February-2019
9
+ -----------------------------
10
+
11
+ 1. Some time ago the config macro SUPPORT_UTF8 was changed to SUPPORT_UTF
12
+ because it also applies to UTF-16 and UTF-32. However, this change was not made
13
+ in the pcre2cpp files; consequently the C++ wrapper has from then been compiled
14
+ with a bug in it, which would have been picked up by the unit test except that
15
+ it also had its UTF8 code cut out. The bug was in a global replace when moving
16
+ forward after matching an empty string.
17
+
18
+ 2. The C++ wrapper got broken a long time ago (version 7.3, August 2007) when
19
+ (*CR) was invented (assuming it was the first such start-of-pattern option).
20
+ The wrapper could never handle such patterns because it wraps patterns in
21
+ (?:...)\z in order to support end anchoring. I have hacked in some code to fix
22
+ this, that is, move the wrapping till after any existing start-of-pattern
23
+ special settings.
24
+
25
+ 3. "pcre2grep" (sic) was accidentally mentioned in an error message (fix was
26
+ ported from PCRE2).
27
+
28
+ 4. Typo LCC_ALL for LC_ALL fixed in pcregrep.
29
+
30
+ 5. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated
31
+ negative class with no characters less than 0x100 followed by a positive class
32
+ with only characters less than 0x100, the first class was incorrectly being
33
+ auto-possessified, causing incorrect match failures.
34
+
35
+ 6. If the only branch in a conditional subpattern was anchored, the whole
36
+ subpattern was treated as anchored, when it should not have been, since the
37
+ assumed empty second branch cannot be anchored. Demonstrated by test patterns
38
+ such as /(?(1)^())b/ or /(?(?=^))b/.
39
+
40
+ 7. Fix subject buffer overread in JIT when UTF is disabled and \X or \R has
41
+ a greater than 1 fixed quantifier. This issue was found by Yunho Kim.
42
+
43
+ 8. If a pattern started with a subroutine call that had a quantifier with a
44
+ minimum of zero, an incorrect "match must start with this character" could be
45
+ recorded. Example: /(?&xxx)*ABC(?<xxx>XYZ)/ would (incorrectly) expect 'A' to
46
+ be the first character of a match.
47
+
48
+ 9. Improve MAP_JIT flag usage on MacOS. Patch by Rich Siegel.
49
+
50
+
8
51
Version 8.42 20-March-2018
9
52
--------------------------
10
53
0 commit comments