diff options
-rw-r--r-- | AUTHORS | 6 | ||||
-rw-r--r-- | ChangeLog | 42 | ||||
-rw-r--r-- | LICENCE | 6 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | pcrecpp_unittest.cc | 14 |
6 files changed, 51 insertions, 35 deletions
@@ -8,7 +8,7 @@ Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2018 University of Cambridge +Copyright (c) 1997-2019 University of Cambridge All rights reserved @@ -19,7 +19,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2010-2018 Zoltan Herczeg +Copyright(c) 2010-2019 Zoltan Herczeg All rights reserved. @@ -30,7 +30,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2009-2018 Zoltan Herczeg +Copyright(c) 2009-2019 Zoltan Herczeg All rights reserved. @@ -5,45 +5,45 @@ Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All development is happening in the PCRE2 10.xx series. -Version 8.43 25-June-2018 -------------------------- +Version 8.43 25-January-2019 +---------------------------- -1. Some time ago the config macro SUPPORT_UTF8 was changed to SUPPORT_UTF -because it also applies to UTF-16 and UTF-32. However, this change was not made -in the pcre2cpp files; consequently the C++ wrapper has from then been compiled -with a bug in it, which would have been picked up by the unit test except that -it also had its UTF8 code cut out. The bug was in a global replace when moving +1. Some time ago the config macro SUPPORT_UTF8 was changed to SUPPORT_UTF +because it also applies to UTF-16 and UTF-32. However, this change was not made +in the pcre2cpp files; consequently the C++ wrapper has from then been compiled +with a bug in it, which would have been picked up by the unit test except that +it also had its UTF8 code cut out. The bug was in a global replace when moving forward after matching an empty string. -2. The C++ wrapper got broken a long time ago (version 7.3, August 2007) when -(*CR) was invented (assuming it was the first such start-of-pattern option). -The wrapper could never handle such patterns because it wraps patterns in -(?:...)\z in order to support end anchoring. I have hacked in some code to fix -this, that is, move the wrapping till after any existing start-of-pattern +2. The C++ wrapper got broken a long time ago (version 7.3, August 2007) when +(*CR) was invented (assuming it was the first such start-of-pattern option). +The wrapper could never handle such patterns because it wraps patterns in +(?:...)\z in order to support end anchoring. I have hacked in some code to fix +this, that is, move the wrapping till after any existing start-of-pattern special settings. -3. "pcre2grep" (sic) was accidentally mentioned in an error message (fix was +3. "pcre2grep" (sic) was accidentally mentioned in an error message (fix was ported from PCRE2). 4. Typo LCC_ALL for LC_ALL fixed in pcregrep. 5. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated negative class with no characters less than 0x100 followed by a positive class -with only characters less than 0x100, the first class was incorrectly being +with only characters less than 0x100, the first class was incorrectly being auto-possessified, causing incorrect match failures. -6. If the only branch in a conditional subpattern was anchored, the whole -subpattern was treated as anchored, when it should not have been, since the -assumed empty second branch cannot be anchored. Demonstrated by test patterns +6. If the only branch in a conditional subpattern was anchored, the whole +subpattern was treated as anchored, when it should not have been, since the +assumed empty second branch cannot be anchored. Demonstrated by test patterns such as /(?(1)^())b/ or /(?(?=^))b/. 7. Fix subject buffer overread in JIT when UTF is disabled and \X or \R has a greater than 1 fixed quantifier. This issue was found by Yunho Kim. -8. If a pattern started with a subroutine call that had a quantifier with a -minimum of zero, an incorrect "match must start with this character" could be -recorded. Example: /(?&xxx)*ABC(?<xxx>XYZ)/ would (incorrectly) expect 'A' to -be the first character of a match. +8. If a pattern started with a subroutine call that had a quantifier with a +minimum of zero, an incorrect "match must start with this character" could be +recorded. Example: /(?&xxx)*ABC(?<xxx>XYZ)/ would (incorrectly) expect 'A' to +be the first character of a match. 9. Improve MAP_JIT flag usage on MacOS. Patch by Rich Siegel. @@ -25,7 +25,7 @@ Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2018 University of Cambridge +Copyright (c) 1997-2019 University of Cambridge All rights reserved. @@ -36,7 +36,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu -Copyright(c) 2010-2018 Zoltan Herczeg +Copyright(c) 2010-2019 Zoltan Herczeg All rights reserved. @@ -47,7 +47,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu -Copyright(c) 2009-2018 Zoltan Herczeg +Copyright(c) 2009-2019 Zoltan Herczeg All rights reserved. @@ -1,12 +1,22 @@ News about PCRE releases ------------------------ +Note that this library (now called PCRE1) is now being maintained for bug fixes +only. New projects are advised to use the new PCRE2 libraries. + + Release 8.42 20-March-2018 -------------------------- This is a bug-fix release. +Release 8.43 25-January-2019 +---------------------------- + +This is a bug-fix release. + + Release 8.41 13-June-2017 ------------------------- diff --git a/configure.ac b/configure.ac index 579ec01..7211b25 100644 --- a/configure.ac +++ b/configure.ac @@ -11,15 +11,15 @@ dnl be defined as -RC2, for example. For real releases, it should be empty. m4_define(pcre_major, [8]) m4_define(pcre_minor, [43]) m4_define(pcre_prerelease, [-RC1]) -m4_define(pcre_date, [2018-06-25]) +m4_define(pcre_date, [2019-01-23]) # 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(libpcre_version, [3:10:2]) -m4_define(libpcre16_version, [2:10:2]) -m4_define(libpcre32_version, [0:10:0]) +m4_define(libpcre_version, [3:11:2]) +m4_define(libpcre16_version, [2:11:2]) +m4_define(libpcre32_version, [0:11:0]) m4_define(libpcreposix_version, [0:6:0]) m4_define(libpcrecpp_version, [0:1:0]) diff --git a/pcrecpp_unittest.cc b/pcrecpp_unittest.cc index 255066f..1fc01a0 100644 --- a/pcrecpp_unittest.cc +++ b/pcrecpp_unittest.cc @@ -1202,24 +1202,30 @@ int main(int argc, char** argv) { CHECK(re_test1.FullMatch(utf8_string)); RE re_test2("...", pcrecpp::UTF8()); CHECK(re_test2.FullMatch(utf8_string)); - + // PH added these tests for leading option settings - + + RE re_testZ0("(*CR)(*NO_START_OPT)........."); + CHECK(re_testZ0.FullMatch(utf8_string)); + +#ifdef SUPPORT_UTF RE re_testZ1("(*UTF8)..."); CHECK(re_testZ1.FullMatch(utf8_string)); RE re_testZ2("(*UTF)..."); CHECK(re_testZ2.FullMatch(utf8_string)); +#ifdef SUPPORT_UCP RE re_testZ3("(*UCP)(*UTF)..."); CHECK(re_testZ3.FullMatch(utf8_string)); RE re_testZ4("(*UCP)(*LIMIT_MATCH=1000)(*UTF)..."); CHECK(re_testZ4.FullMatch(utf8_string)); - + RE re_testZ5("(*UCP)(*LIMIT_MATCH=1000)(*ANY)(*UTF)..."); CHECK(re_testZ5.FullMatch(utf8_string)); - +#endif +#endif // Check that '.' matches one byte or UTF-8 character // according to the mode. |