diff --git a/AUTHORS b/AUTHORS index f001cb7..c61b5f3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,7 +8,7 @@ Email domain: gmail.com University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2020 University of Cambridge +Copyright (c) 1997-2021 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-2020 Zoltan Herczeg +Copyright(c) 2010-2021 Zoltan Herczeg All rights reserved. @@ -30,7 +30,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2009-2020 Zoltan Herczeg +Copyright(c) 2009-2021 Zoltan Herczeg All rights reserved. #### diff --git a/ChangeLog b/ChangeLog index 6bc766d..338ef6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,38 +2,38 @@ Change Log for PCRE2 -------------------- -Version 10.37-RC1 xx-xxxx-2021 ---------------------------------- +Version 10.37-RC1 28-April-2021 +------------------------------- -1. Change RunGrepTest to use tr instead of sed when testing with binary -zero bytes, because sed varies a lot from system to system and has problems -with binary zeros. This is from Bugzilla #2681. Patch from Jeremie -Courreges-Anglas via Nam Nguyen. This fixes RunGrepTest for OpenBSD. Later: -it broke it for at least one version of Solaris, where tr can't handle binary -zeros. However, that system had /usr/xpg4/bin/tr installed, which works OK, so +1. Change RunGrepTest to use tr instead of sed when testing with binary +zero bytes, because sed varies a lot from system to system and has problems +with binary zeros. This is from Bugzilla #2681. Patch from Jeremie +Courreges-Anglas via Nam Nguyen. This fixes RunGrepTest for OpenBSD. Later: +it broke it for at least one version of Solaris, where tr can't handle binary +zeros. However, that system had /usr/xpg4/bin/tr installed, which works OK, so RunGrepTest now checks for that command and uses it if found. -2. Compiling with gcc 10.2's -fanalyzer option showed up a hypothetical problem -with a NULL dereference. I don't think this case could ever occur in practice, +2. Compiling with gcc 10.2's -fanalyzer option showed up a hypothetical problem +with a NULL dereference. I don't think this case could ever occur in practice, but I have put in a check in order to get rid of the compiler error. 3. An alternative patch for CMakeLists.txt because 10.36 #4 breaks CMake on Windows. Patch from email@cs-ware.de fixes bugzilla #2688. -4. Two bugs related to over-large numbers have been fixed so the behaviour is +4. Two bugs related to over-large numbers have been fixed so the behaviour is now the same as Perl. - - (a) A pattern such as /\214748364/ gave an overflow error instead of being + + (a) A pattern such as /\214748364/ gave an overflow error instead of being treated as the octal number \214 followed by literal digits. - - (b) A sequence such as {65536 that has no terminating } so is not a + + (b) A sequence such as {65536 that has no terminating } so is not a quantifier was nevertheless complaining that a quantifier number was too big. 5. A run of autoconf suggested that configure.ac was out-of-date with respect to the lastest autoconf. Running autoupdate made some valid changes, some valid -suggestions, and also some invalid changes, which were fixed by hand. Autoconf -now runs clean and the resulting "configure" seems to work, so I hope nothing -is broken. Later: the requirement for autoconf 2.70 broke some automatic test +suggestions, and also some invalid changes, which were fixed by hand. Autoconf +now runs clean and the resulting "configure" seems to work, so I hope nothing +is broken. Later: the requirement for autoconf 2.70 broke some automatic test robots. It doesn't seem to be necessary: trying a reduction to 2.60. 6. The pattern /a\K.(?0)*/ when matched against "abac" by the interpreter gave @@ -45,12 +45,12 @@ recursions such as /(a\K.(?1)*)/ did not have this problem. character repetitions are optimized than in 10.34. 8. When the names of the functions in the POSIX wrapper were changed to -pcre2_regcomp() etc. (see change 10.33 #4 below), functions with the original -names were left in the library so that pre-compiled programs would still work. -However, this has proved troublesome when programs link with several libraries, -some of which use PCRE2 via the POSIX interface while others use a native POSIX +pcre2_regcomp() etc. (see change 10.33 #4 below), functions with the original +names were left in the library so that pre-compiled programs would still work. +However, this has proved troublesome when programs link with several libraries, +some of which use PCRE2 via the POSIX interface while others use a native POSIX library. For this reason, the POSIX function names are removed in this release. -The macros in pcre2posix.h should ensure that re-compiling fixes any programs +The macros in pcre2posix.h should ensure that re-compiling fixes any programs that haven't been compiled since before 10.33. diff --git a/LICENCE b/LICENCE index 155d073..18684ce 100644 --- a/LICENCE +++ b/LICENCE @@ -26,7 +26,7 @@ Email domain: gmail.com University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2020 University of Cambridge +Copyright (c) 1997-2021 University of Cambridge All rights reserved. @@ -37,7 +37,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu -Copyright(c) 2010-2020 Zoltan Herczeg +Copyright(c) 2010-2021 Zoltan Herczeg All rights reserved. @@ -48,7 +48,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu -Copyright(c) 2009-2020 Zoltan Herczeg +Copyright(c) 2009-2021 Zoltan Herczeg All rights reserved. diff --git a/NEWS b/NEWS index de797e7..a6ef50d 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,14 @@ News about PCRE2 releases ------------------------- +Version 10.37-RC1 28_April-2021 +------------------------------- + +A few more bug fixes and tidies. The only change of real note is the removal of +the actual POSIX names regcomp etc. from the POSIX wrapper library because +these have caused issues for some applications (see 10.33 #2 below). + + Version 10.36 04-December-2020 ------------------------------ diff --git a/NON-AUTOTOOLS-BUILD b/NON-AUTOTOOLS-BUILD index 2ce0fd5..6bf6576 100644 --- a/NON-AUTOTOOLS-BUILD +++ b/NON-AUTOTOOLS-BUILD @@ -40,9 +40,9 @@ GENERIC INSTRUCTIONS FOR THE PCRE2 C LIBRARY The following are generic instructions for building the PCRE2 C library "by hand". If you are going to use CMake, this section does not apply to you; you -can skip ahead to the CMake section. Note that the settings concerned with -8-bit, 16-bit, and 32-bit code units relate to the type of data string that -PCRE2 processes. They are NOT referring to the underlying operating system bit +can skip ahead to the CMake section. Note that the settings concerned with +8-bit, 16-bit, and 32-bit code units relate to the type of data string that +PCRE2 processes. They are NOT referring to the underlying operating system bit width. You do not have to do anything special to compile in a 64-bit environment, for example. @@ -90,7 +90,7 @@ environment, for example. The tables in src/pcre2_chartables.c are defaults. The caller of PCRE2 can specify alternative tables at run time. - (4) For a library that supports 8-bit code units in the character strings that + (4) For a library that supports 8-bit code units in the character strings that it processes, compile the following source files from the src directory, setting -DPCRE2_CODE_UNIT_WIDTH=8 as a compiler option. Also set -DHAVE_CONFIG_H if you have set up src/config.h with your configuration, diff --git a/README b/README index 1d6df8f..d1a3120 100644 --- a/README +++ b/README @@ -4,16 +4,17 @@ README file for PCRE2 (Perl-compatible regular expression library) PCRE2 is a re-working of the original PCRE1 library to provide an entirely new API. Since its initial release in 2015, there has been further development of the code and it now differs from PCRE1 in more than just the API. There are new -features and the internals have been improved. The latest release of PCRE2 is -available in three alternative formats from: +features, and the internals have been improved. The original PCRE1 library is +now obsolete and should not be used in new projects. The latest release of +PCRE2 is available in three alternative formats from: https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.gz https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.bz2 https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.zip -There is a mailing list for discussion about the development of PCRE (both the -original and new APIs) at pcre-dev@exim.org. You can access the archives and -subscribe or manage your subscription here: +There is a mailing list for discussion about the development of PCRE at +pcre-dev@exim.org. You can access the archives and subscribe or manage your +subscription here: https://lists.exim.org/mailman/listinfo/pcre-dev @@ -903,4 +904,4 @@ The distribution should contain the files listed below. Philip Hazel Email local part: Philip.Hazel Email domain: gmail.com -Last updated: 04 December 2020 +Last updated: 28 April 2021 diff --git a/configure.ac b/configure.ac index 1dd29fa..063e9bd 100644 --- a/configure.ac +++ b/configure.ac @@ -11,13 +11,13 @@ dnl be defined as -RC2, for example. For real releases, it should be empty. m4_define(pcre2_major, [10]) m4_define(pcre2_minor, [37]) m4_define(pcre2_prerelease, [-RC1]) -m4_define(pcre2_date, [2021-02-02]) +m4_define(pcre2_date, [2021-04-28]) # Libtool shared library interface versions (current:revision:age) -m4_define(libpcre2_8_version, [10:1:10]) -m4_define(libpcre2_16_version, [10:1:10]) -m4_define(libpcre2_32_version, [10:1:10]) -m4_define(libpcre2_posix_version, [2:3:0]) +m4_define(libpcre2_8_version, [10:2:10]) +m4_define(libpcre2_16_version, [10:2:10]) +m4_define(libpcre2_32_version, [10:2:10]) +m4_define(libpcre2_posix_version, [3:0:0]) # 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. diff --git a/doc/html/NON-AUTOTOOLS-BUILD.txt b/doc/html/NON-AUTOTOOLS-BUILD.txt index 2ce0fd5..6bf6576 100644 --- a/doc/html/NON-AUTOTOOLS-BUILD.txt +++ b/doc/html/NON-AUTOTOOLS-BUILD.txt @@ -40,9 +40,9 @@ GENERIC INSTRUCTIONS FOR THE PCRE2 C LIBRARY The following are generic instructions for building the PCRE2 C library "by hand". If you are going to use CMake, this section does not apply to you; you -can skip ahead to the CMake section. Note that the settings concerned with -8-bit, 16-bit, and 32-bit code units relate to the type of data string that -PCRE2 processes. They are NOT referring to the underlying operating system bit +can skip ahead to the CMake section. Note that the settings concerned with +8-bit, 16-bit, and 32-bit code units relate to the type of data string that +PCRE2 processes. They are NOT referring to the underlying operating system bit width. You do not have to do anything special to compile in a 64-bit environment, for example. @@ -90,7 +90,7 @@ environment, for example. The tables in src/pcre2_chartables.c are defaults. The caller of PCRE2 can specify alternative tables at run time. - (4) For a library that supports 8-bit code units in the character strings that + (4) For a library that supports 8-bit code units in the character strings that it processes, compile the following source files from the src directory, setting -DPCRE2_CODE_UNIT_WIDTH=8 as a compiler option. Also set -DHAVE_CONFIG_H if you have set up src/config.h with your configuration, diff --git a/doc/html/README.txt b/doc/html/README.txt index 1d6df8f..d1a3120 100644 --- a/doc/html/README.txt +++ b/doc/html/README.txt @@ -4,16 +4,17 @@ README file for PCRE2 (Perl-compatible regular expression library) PCRE2 is a re-working of the original PCRE1 library to provide an entirely new API. Since its initial release in 2015, there has been further development of the code and it now differs from PCRE1 in more than just the API. There are new -features and the internals have been improved. The latest release of PCRE2 is -available in three alternative formats from: +features, and the internals have been improved. The original PCRE1 library is +now obsolete and should not be used in new projects. The latest release of +PCRE2 is available in three alternative formats from: https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.gz https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.bz2 https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.zip -There is a mailing list for discussion about the development of PCRE (both the -original and new APIs) at pcre-dev@exim.org. You can access the archives and -subscribe or manage your subscription here: +There is a mailing list for discussion about the development of PCRE at +pcre-dev@exim.org. You can access the archives and subscribe or manage your +subscription here: https://lists.exim.org/mailman/listinfo/pcre-dev @@ -903,4 +904,4 @@ The distribution should contain the files listed below. Philip Hazel Email local part: Philip.Hazel Email domain: gmail.com -Last updated: 04 December 2020 +Last updated: 28 April 2021 diff --git a/doc/html/pcre2posix.html b/doc/html/pcre2posix.html index c54860f..0ad6f9e 100644 --- a/doc/html/pcre2posix.html +++ b/doc/html/pcre2posix.html @@ -73,8 +73,8 @@ Although they were not defined as protypes in pcre2posix.h, releases regcomp() etc. These simply passed their arguments to the PCRE2 functions. These functions were provided for backwards compatibility with earlier versions of PCRE2, which had only POSIX names. However, this has proved -troublesome in situations where a program links with several libraries, some of -which use PCRE2's POSIX interface while others use the real POSIX functions. +troublesome in situations where a program links with several libraries, some of +which use PCRE2's POSIX interface while others use the real POSIX functions. For this reason, the POSIX names have been removed since release 10.37.
diff --git a/doc/html/pcre2test.html b/doc/html/pcre2test.html index 3a7a9b7..09d3a0e 100644 --- a/doc/html/pcre2test.html +++ b/doc/html/pcre2test.html @@ -1421,8 +1421,8 @@ replacement strings cannot contain commas, because a comma signifies the end of a modifier. This is not thought to be an issue in a test program.
-Specifying a completely empty replacement string disables this modifier. -However, it is possible to specify an empty replacement by providing a buffer +Specifying a completely empty replacement string disables this modifier. +However, it is possible to specify an empty replacement by providing a buffer length, as described below, for an otherwise empty replacement.
diff --git a/doc/pcre2.txt b/doc/pcre2.txt
index cf83733..3c3d980 100644
--- a/doc/pcre2.txt
+++ b/doc/pcre2.txt
@@ -185,8 +185,8 @@ REVISION
Last updated: 28 April 2021
Copyright (c) 1997-2021 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2API(3) Library Functions Manual PCRE2API(3)
@@ -3834,8 +3834,8 @@ REVISION
Last updated: 04 November 2020
Copyright (c) 1997-2020 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2BUILD(3) Library Functions Manual PCRE2BUILD(3)
@@ -4428,8 +4428,8 @@ REVISION
Last updated: 20 March 2020
Copyright (c) 1997-2020 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2CALLOUT(3) Library Functions Manual PCRE2CALLOUT(3)
@@ -4858,8 +4858,8 @@ REVISION
Last updated: 03 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2COMPAT(3) Library Functions Manual PCRE2COMPAT(3)
@@ -5071,8 +5071,8 @@ REVISION
Last updated: 06 October 2020
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2JIT(3) Library Functions Manual PCRE2JIT(3)
@@ -5496,8 +5496,8 @@ REVISION
Last updated: 23 May 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2LIMITS(3) Library Functions Manual PCRE2LIMITS(3)
@@ -5566,8 +5566,8 @@ REVISION
Last updated: 02 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2MATCHING(3) Library Functions Manual PCRE2MATCHING(3)
@@ -5790,8 +5790,8 @@ REVISION
Last updated: 23 May 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PARTIAL(3) Library Functions Manual PCRE2PARTIAL(3)
@@ -6170,8 +6170,8 @@ REVISION
Last updated: 04 September 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PATTERN(3) Library Functions Manual PCRE2PATTERN(3)
@@ -9618,8 +9618,8 @@ REVISION
Last updated: 06 October 2020
Copyright (c) 1997-2020 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PERFORM(3) Library Functions Manual PCRE2PERFORM(3)
@@ -9853,8 +9853,8 @@ REVISION
Last updated: 03 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2POSIX(3) Library Functions Manual PCRE2POSIX(3)
@@ -10187,8 +10187,8 @@ REVISION
Last updated: 26 April 2021
Copyright (c) 1997-2021 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2SAMPLE(3) Library Functions Manual PCRE2SAMPLE(3)
@@ -10466,8 +10466,8 @@ REVISION
Last updated: 27 June 2018
Copyright (c) 1997-2018 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2SYNTAX(3) Library Functions Manual PCRE2SYNTAX(3)
@@ -10982,8 +10982,8 @@ REVISION
Last updated: 28 December 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2UNICODE(3) Library Functions Manual PCRE2UNICODE(3)
@@ -11417,5 +11417,5 @@ REVISION
Last updated: 23 February 2020
Copyright (c) 1997-2020 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
diff --git a/doc/pcre2posix.3 b/doc/pcre2posix.3
index a470c8f..6cfede7 100644
--- a/doc/pcre2posix.3
+++ b/doc/pcre2posix.3
@@ -49,8 +49,8 @@ Although they were not defined as protypes in \fBpcre2posix.h\fP, releases
\fBregcomp()\fP etc. These simply passed their arguments to the PCRE2
functions. These functions were provided for backwards compatibility with
earlier versions of PCRE2, which had only POSIX names. However, this has proved
-troublesome in situations where a program links with several libraries, some of
-which use PCRE2's POSIX interface while others use the real POSIX functions.
+troublesome in situations where a program links with several libraries, some of
+which use PCRE2's POSIX interface while others use the real POSIX functions.
For this reason, the POSIX names have been removed since release 10.37.
.P
Calling the header file \fBpcre2posix.h\fP avoids any conflict with other POSIX
diff --git a/doc/pcre2test.1 b/doc/pcre2test.1
index 7331e2e..627f95a 100644
--- a/doc/pcre2test.1
+++ b/doc/pcre2test.1
@@ -1389,8 +1389,8 @@ called instead of one of the matching functions (or after one call of
replacement strings cannot contain commas, because a comma signifies the end of
a modifier. This is not thought to be an issue in a test program.
.P
-Specifying a completely empty replacement string disables this modifier.
-However, it is possible to specify an empty replacement by providing a buffer
+Specifying a completely empty replacement string disables this modifier.
+However, it is possible to specify an empty replacement by providing a buffer
length, as described below, for an otherwise empty replacement.
.P
Unlike subject strings, \fBpcre2test\fP does not process replacement strings
diff --git a/src/config.h.generic b/src/config.h.generic
index 10f4104..ea54c65 100644
--- a/src/config.h.generic
+++ b/src/config.h.generic
@@ -85,8 +85,8 @@ sure both macros are undefined; an emulation function will then be used. */
/* Define to 1 if you have the `memmove' function. */
/* #undef HAVE_MEMMOVE */
-/* Define to 1 if you have the