Revision: 1086
http://www.exim.org/viewvc/pcre2?view=rev&revision=1086
Author: ph10
Date: 2019-04-16 16:34:27 +0100 (Tue, 16 Apr 2019)
Log Message:
-----------
Final file tidies for 10.33.
Modified Paths:
--------------
code/trunk/ChangeLog
code/trunk/NEWS
code/trunk/README
code/trunk/configure.ac
code/trunk/doc/html/README.txt
code/trunk/doc/html/pcre2_jit_compile.html
code/trunk/doc/html/pcre2jit.html
code/trunk/doc/html/pcre2unicode.html
code/trunk/doc/pcre2.txt
code/trunk/doc/pcre2_jit_compile.3
code/trunk/doc/pcre2jit.3
code/trunk/doc/pcre2unicode.3
code/trunk/src/config.h.generic
code/trunk/src/pcre2.h.generic
code/trunk/src/pcre2_compile.c
code/trunk/src/pcre2_printint.c
Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/ChangeLog 2019-04-16 15:34:27 UTC (rev 1086)
@@ -2,7 +2,7 @@
--------------------
-Version 10.33 11-March-2019
+Version 10.33 16-April-2019
---------------------------
1. Added "allvector" to pcre2test to make it easy to check the part of the
@@ -149,10 +149,15 @@
36. Disable SSE2 JIT optimizations in x86 CPUs when SSE2 is not available.
Patch by Guillem Jover.
-37. Changed expressions such as 1<<10 to 1u<<10 in many places because compiler
+37. Changed expressions such as 1<<10 to 1u<<10 in many places because compiler
warnings were reported.
+38. Using the clang compiler with sanitizing options causes runtime complaints
+about truncation for statments such as x = ~x when x is an 8-bit value; it
+seems to compute ~x as a 32-bit value. Changing such statements to x = 255 ^ x
+gets rid of the warnings. There were also two missing casts in pcre2test.
+
Version 10.32 10-September-2018
-------------------------------
Modified: code/trunk/NEWS
===================================================================
--- code/trunk/NEWS 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/NEWS 2019-04-16 15:34:27 UTC (rev 1086)
@@ -2,7 +2,7 @@
-------------------------
-Version 10.33-RC1 03-March-2019
+Version 10.33-RC1 16-April-2019
-------------------------------
Yet more bugfixes, tidies, and a few enhancements, summarized here (see
Modified: code/trunk/README
===================================================================
--- code/trunk/README 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/README 2019-04-16 15:34:27 UTC (rev 1086)
@@ -1,9 +1,11 @@
README file for PCRE2 (Perl-compatible regular expression library)
------------------------------------------------------------------
-PCRE2 is a re-working of the original PCRE library to provide an entirely new
-API. The latest release of PCRE2 is always available in three alternative
-formats from:
+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
+always available in three alternative formats from:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.bz2
@@ -39,15 +41,15 @@
PCRE2 is written in C, and it has its own API. There are three sets of
functions, one for the 8-bit library, which processes strings of bytes, one for
the 16-bit library, which processes strings of 16-bit values, and one for the
-32-bit library, which processes strings of 32-bit values. There are no C++
-wrappers.
+32-bit library, which processes strings of 32-bit values. Unlike PCRE1, there
+are no C++ wrappers.
-In addition, the distribution contains a set of C wrapper functions for the
-8-bit library that are based on the POSIX regular expression API (see the
-pcre2posix man page). These are built into a library called libpcre2-posix.
-Note that this just provides a POSIX calling interface to PCRE2; the regular
-expressions themselves still follow Perl syntax and semantics. The POSIX API is
-restricted, and does not give full access to all of PCRE2's facilities.
+The distribution does contain a set of C wrapper functions for the 8-bit
+library that are based on the POSIX regular expression API (see the pcre2posix
+man page). These are built into a library called libpcre2-posix. Note that this
+just provides a POSIX calling interface to PCRE2; the regular expressions
+themselves still follow Perl syntax and semantics. The POSIX API is restricted,
+and does not give full access to all of PCRE2's facilities.
The header file for the POSIX-style functions is called pcre2posix.h. The
official POSIX name is regex.h, but I did not want to risk possible problems
@@ -890,4 +892,4 @@
Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
-Last updated: 03 March 2019
+Last updated: 16 April 2019
Modified: code/trunk/configure.ac
===================================================================
--- code/trunk/configure.ac 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/configure.ac 2019-04-16 15:34:27 UTC (rev 1086)
@@ -10,8 +10,8 @@
m4_define(pcre2_major, [10])
m4_define(pcre2_minor, [33])
-m4_define(pcre2_prerelease, [-RC1])
-m4_define(pcre2_date, [2019-03-03])
+m4_define(pcre2_prerelease, [])
+m4_define(pcre2_date, [2019-04-16])
# 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.
Modified: code/trunk/doc/html/README.txt
===================================================================
--- code/trunk/doc/html/README.txt 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/html/README.txt 2019-04-16 15:34:27 UTC (rev 1086)
@@ -1,9 +1,11 @@
README file for PCRE2 (Perl-compatible regular expression library)
------------------------------------------------------------------
-PCRE2 is a re-working of the original PCRE library to provide an entirely new
-API. The latest release of PCRE2 is always available in three alternative
-formats from:
+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
+always available in three alternative formats from:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.bz2
@@ -39,15 +41,15 @@
PCRE2 is written in C, and it has its own API. There are three sets of
functions, one for the 8-bit library, which processes strings of bytes, one for
the 16-bit library, which processes strings of 16-bit values, and one for the
-32-bit library, which processes strings of 32-bit values. There are no C++
-wrappers.
+32-bit library, which processes strings of 32-bit values. Unlike PCRE1, there
+are no C++ wrappers.
-In addition, the distribution contains a set of C wrapper functions for the
-8-bit library that are based on the POSIX regular expression API (see the
-pcre2posix man page). These are built into a library called libpcre2-posix.
-Note that this just provides a POSIX calling interface to PCRE2; the regular
-expressions themselves still follow Perl syntax and semantics. The POSIX API is
-restricted, and does not give full access to all of PCRE2's facilities.
+The distribution does contain a set of C wrapper functions for the 8-bit
+library that are based on the POSIX regular expression API (see the pcre2posix
+man page). These are built into a library called libpcre2-posix. Note that this
+just provides a POSIX calling interface to PCRE2; the regular expressions
+themselves still follow Perl syntax and semantics. The POSIX API is restricted,
+and does not give full access to all of PCRE2's facilities.
The header file for the POSIX-style functions is called pcre2posix.h. The
official POSIX name is regex.h, but I did not want to risk possible problems
@@ -890,4 +892,4 @@
Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
-Last updated: 03 March 2019
+Last updated: 16 April 2019
Modified: code/trunk/doc/html/pcre2_jit_compile.html
===================================================================
--- code/trunk/doc/html/pcre2_jit_compile.html 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/html/pcre2_jit_compile.html 2019-04-16 15:34:27 UTC (rev 1086)
@@ -40,7 +40,7 @@
PCRE2_JIT_COMPLETE compile code for full matching
PCRE2_JIT_PARTIAL_SOFT compile code for soft partial matching
PCRE2_JIT_PARTIAL_HARD compile code for hard partial matching
- PCRE2_JIT_INVALID_UTF compile code to handle invalid UTF
+ PCRE2_JIT_INVALID_UTF compile code to handle invalid UTF
</pre>
The yield of the function is 0 for success, or a negative error code otherwise.
In particular, PCRE2_ERROR_JIT_BADOPTION is returned if JIT is not supported or
Modified: code/trunk/doc/html/pcre2jit.html
===================================================================
--- code/trunk/doc/html/pcre2jit.html 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/html/pcre2jit.html 2019-04-16 15:34:27 UTC (rev 1086)
@@ -155,11 +155,11 @@
UTF is compiled.
</P>
<P>
-In this mode, an invalid code unit sequence never matches any pattern item. It
-does not match dot, it does not match \p{Any}, it does not even match negative
+In this mode, an invalid code unit sequence never matches any pattern item. It
+does not match dot, it does not match \p{Any}, it does not even match negative
items such as [^X]. A lookbehind assertion fails if it encounters an invalid
-sequence while moving the current point backwards. In other words, an invalid
-UTF code unit sequence acts as a barrier which no match can cross. Reaching an
+sequence while moving the current point backwards. In other words, an invalid
+UTF code unit sequence acts as a barrier which no match can cross. Reaching an
invalid sequence causes an immediate backtrack.
</P>
<P>
Modified: code/trunk/doc/html/pcre2unicode.html
===================================================================
--- code/trunk/doc/html/pcre2unicode.html 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/html/pcre2unicode.html 2019-04-16 15:34:27 UTC (rev 1086)
@@ -263,9 +263,9 @@
</P>
<P>
If you pass an invalid UTF string when PCRE2_NO_UTF_CHECK is set, the result
-is usually undefined and your program may crash or loop indefinitely. There is,
+is usually undefined and your program may crash or loop indefinitely. There is,
however, one mode of matching that can handle invalid UTF subject strings. This
-is matching via the JIT optimization using the PCRE2_JIT_INVALID_UTF option
+is matching via the JIT optimization using the PCRE2_JIT_INVALID_UTF option
when calling <b>pcre2_jit_compile()</b>. For details, see the
<a href="pcre2jit.html"><b>pcre2jit</b></a>
documentation.
Modified: code/trunk/doc/pcre2.txt
===================================================================
--- code/trunk/doc/pcre2.txt 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/pcre2.txt 2019-04-16 15:34:27 UTC (rev 1086)
@@ -180,8 +180,8 @@
Last updated: 17 September 2018
Copyright (c) 1997-2018 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2API(3) Library Functions Manual PCRE2API(3)
@@ -3681,8 +3681,8 @@
Last updated: 14 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2BUILD(3) Library Functions Manual PCRE2BUILD(3)
@@ -4254,8 +4254,8 @@
Last updated: 03 March 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2CALLOUT(3) Library Functions Manual PCRE2CALLOUT(3)
@@ -4685,8 +4685,8 @@
Last updated: 03 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2COMPAT(3) Library Functions Manual PCRE2COMPAT(3)
@@ -4890,8 +4890,8 @@
Last updated: 12 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2JIT(3) Library Functions Manual PCRE2JIT(3)
@@ -5313,8 +5313,8 @@
Last updated: 06 March 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2LIMITS(3) Library Functions Manual PCRE2LIMITS(3)
@@ -5383,8 +5383,8 @@
Last updated: 02 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2MATCHING(3) Library Functions Manual PCRE2MATCHING(3)
@@ -5604,8 +5604,8 @@
Last updated: 10 October 2018
Copyright (c) 1997-2018 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PARTIAL(3) Library Functions Manual PCRE2PARTIAL(3)
@@ -6044,8 +6044,8 @@
Last updated: 22 December 2014
Copyright (c) 1997-2014 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PATTERN(3) Library Functions Manual PCRE2PATTERN(3)
@@ -9388,8 +9388,8 @@
Last updated: 12 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2PERFORM(3) Library Functions Manual PCRE2PERFORM(3)
@@ -9623,8 +9623,8 @@
Last updated: 03 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2POSIX(3) Library Functions Manual PCRE2POSIX(3)
@@ -9953,8 +9953,8 @@
Last updated: 30 January 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2SAMPLE(3) Library Functions Manual PCRE2SAMPLE(3)
@@ -10232,8 +10232,8 @@
Last updated: 27 June 2018
Copyright (c) 1997-2018 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2SYNTAX(3) Library Functions Manual PCRE2SYNTAX(3)
@@ -10733,8 +10733,8 @@
Last updated: 11 February 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
PCRE2UNICODE(3) Library Functions Manual PCRE2UNICODE(3)
@@ -11109,5 +11109,5 @@
Last updated: 06 March 2019
Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------
-
-
+
+
Modified: code/trunk/doc/pcre2_jit_compile.3
===================================================================
--- code/trunk/doc/pcre2_jit_compile.3 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/pcre2_jit_compile.3 2019-04-16 15:34:27 UTC (rev 1086)
@@ -29,7 +29,7 @@
PCRE2_JIT_COMPLETE compile code for full matching
PCRE2_JIT_PARTIAL_SOFT compile code for soft partial matching
PCRE2_JIT_PARTIAL_HARD compile code for hard partial matching
- PCRE2_JIT_INVALID_UTF compile code to handle invalid UTF
+ PCRE2_JIT_INVALID_UTF compile code to handle invalid UTF
.sp
The yield of the function is 0 for success, or a negative error code otherwise.
In particular, PCRE2_ERROR_JIT_BADOPTION is returned if JIT is not supported or
Modified: code/trunk/doc/pcre2jit.3
===================================================================
--- code/trunk/doc/pcre2jit.3 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/pcre2jit.3 2019-04-16 15:34:27 UTC (rev 1086)
@@ -130,11 +130,11 @@
\fBpcre2_jit_compile()\fP, code that can process a subject containing invalid
UTF is compiled.
.P
-In this mode, an invalid code unit sequence never matches any pattern item. It
-does not match dot, it does not match \ep{Any}, it does not even match negative
+In this mode, an invalid code unit sequence never matches any pattern item. It
+does not match dot, it does not match \ep{Any}, it does not even match negative
items such as [^X]. A lookbehind assertion fails if it encounters an invalid
-sequence while moving the current point backwards. In other words, an invalid
-UTF code unit sequence acts as a barrier which no match can cross. Reaching an
+sequence while moving the current point backwards. In other words, an invalid
+UTF code unit sequence acts as a barrier which no match can cross. Reaching an
invalid sequence causes an immediate backtrack.
.P
Using this option, an application can run matches in arbitrary data, knowing
Modified: code/trunk/doc/pcre2unicode.3
===================================================================
--- code/trunk/doc/pcre2unicode.3 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/doc/pcre2unicode.3 2019-04-16 15:34:27 UTC (rev 1086)
@@ -244,9 +244,9 @@
only valid UTF code unit sequences.
.P
If you pass an invalid UTF string when PCRE2_NO_UTF_CHECK is set, the result
-is usually undefined and your program may crash or loop indefinitely. There is,
+is usually undefined and your program may crash or loop indefinitely. There is,
however, one mode of matching that can handle invalid UTF subject strings. This
-is matching via the JIT optimization using the PCRE2_JIT_INVALID_UTF option
+is matching via the JIT optimization using the PCRE2_JIT_INVALID_UTF option
when calling \fBpcre2_jit_compile()\fP. For details, see the
.\" HREF
\fBpcre2jit\fP
Modified: code/trunk/src/config.h.generic
===================================================================
--- code/trunk/src/config.h.generic 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/src/config.h.generic 2019-04-16 15:34:27 UTC (rev 1086)
@@ -218,7 +218,7 @@
#define PACKAGE_NAME "PCRE2"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "PCRE2 10.33-RC1"
+#define PACKAGE_STRING "PCRE2 10.33"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "pcre2"
@@ -227,7 +227,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "10.33-RC1"
+#define PACKAGE_VERSION "10.33"
/* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested
parentheses (of any kind) in a pattern. This limits the amount of system
@@ -352,7 +352,7 @@
#endif
/* Version number of package */
-#define VERSION "10.33-RC1"
+#define VERSION "10.33"
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
Modified: code/trunk/src/pcre2.h.generic
===================================================================
--- code/trunk/src/pcre2.h.generic 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/src/pcre2.h.generic 2019-04-16 15:34:27 UTC (rev 1086)
@@ -43,8 +43,8 @@
#define PCRE2_MAJOR 10
#define PCRE2_MINOR 33
-#define PCRE2_PRERELEASE -RC1
-#define PCRE2_DATE 2019-03-03
+#define PCRE2_PRERELEASE
+#define PCRE2_DATE 2019-04-16
/* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE2, the appropriate
Modified: code/trunk/src/pcre2_compile.c
===================================================================
--- code/trunk/src/pcre2_compile.c 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/src/pcre2_compile.c 2019-04-16 15:34:27 UTC (rev 1086)
@@ -5948,10 +5948,10 @@
(void)memmove(code + (32 / sizeof(PCRE2_UCHAR)), code,
CU2BYTES(class_uchardata - code));
if (negate_class && !xclass_has_prop)
- {
- /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
+ {
+ /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
for (i = 0; i < 32; i++) classbits[i] = 255 ^ classbits[i];
- }
+ }
memcpy(code, classbits, 32);
code = class_uchardata + (32 / sizeof(PCRE2_UCHAR));
}
@@ -5974,10 +5974,10 @@
if (lengthptr == NULL) /* Save time in the pre-compile phase */
{
if (negate_class)
- {
- /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
+ {
+ /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
for (i = 0; i < 32; i++) classbits[i] = 255 ^ classbits[i];
- }
+ }
memcpy(code, classbits, 32);
}
code += 32 / sizeof(PCRE2_UCHAR);
Modified: code/trunk/src/pcre2_printint.c
===================================================================
--- code/trunk/src/pcre2_printint.c 2019-04-16 14:49:07 UTC (rev 1085)
+++ code/trunk/src/pcre2_printint.c 2019-04-16 15:34:27 UTC (rev 1086)
@@ -673,7 +673,7 @@
map = (uint8_t *)ccode;
if (invertmap)
{
- /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
+ /* Using 255 ^ instead of ~ avoids clang sanitize warning. */
for (i = 0; i < 32; i++) inverted_map[i] = 255 ^ map[i];
map = inverted_map;
}