Skip to content
Permalink
Browse files
Merge remote-tracking branch 'merge/merge-pcre' into 10.2
  • Loading branch information
vuvova committed Jul 27, 2021
2 parents a32373b + 4683ce8 commit aaac247
Show file tree
Hide file tree
Showing 28 changed files with 151 additions and 114 deletions.
@@ -2,13 +2,13 @@ THE MAIN PCRE LIBRARY
---------------------

Written by: Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
Email local part: Philip.Hazel
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.


@@ -67,10 +67,17 @@
# 2013-11-05 PH added support for PARENS_NEST_LIMIT
# 2016-03-01 PH applied Chris Wilson's patch for MSVC static build
# 2016-06-24 PH applied Chris Wilson's revised patch (adds a separate option)
# 2021-06-14 PH changed CMAKE_MODULE_PATH definition to add, not replace
# 2021-06-14 PH applied Wolfgang Stöggl's patch for generating pcre-config and
# libpcre*.pc files (Bugzilla #2583)

PROJECT(PCRE C CXX)

SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake
# For FindReadline.cmake. This was changed to allow setting CMAKE_MODULE_PATH
# on the command line.
# SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

# Enable Unicode properties
OPTION(PCRE_SUPPORT_UNICODE_PROPERTIES "Unicode properties" ON)
@@ -83,6 +90,7 @@ INCLUDE(CheckIncludeFile)
INCLUDE(CheckIncludeFileCXX)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckTypeSize)
INCLUDE(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR

CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
@@ -255,7 +263,7 @@ foreach(configure_line ${configure_lines})
foreach(_substitution_variable ${SEARCHED_VARIABLES})
string(TOUPPER ${_substitution_variable} _substitution_variable_upper)
if (NOT ${_substitution_variable_upper})
string(REGEX MATCH "m4_define\\(${_substitution_variable}, \\[(.*)\\]" MACTHED_STRING ${configure_line})
string(REGEX MATCH "m4_define\\(${_substitution_variable}, \\[(.*)\\]" MATCHED_STRING ${configure_line})
if (CMAKE_MATCH_1)
set(${_substitution_variable_upper} ${CMAKE_MATCH_1})
endif()
@@ -469,7 +477,6 @@ MARK_AS_ADVANCED(PCRE_POSIX_MALLOC_THRESHOLD)
MARK_AS_ADVANCED(PCRE_SUPPORT_BSR_ANYCRLF)
MARK_AS_ADVANCED(PCRE_SUPPORT_UNICODE_PROPERTIES)


IF(PCRE_SHOW_REPORT)
STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype)
IF (CMAKE_C_FLAGS)
@@ -480,7 +487,7 @@ IF(PCRE_SHOW_REPORT)
ENDIF(CMAKE_CXX_FLAGS)
MESSAGE(STATUS "")
MESSAGE(STATUS "")
MESSAGE(STATUS "PCRE configuration summary:")
MESSAGE(STATUS "PCRE-${PCRE_MAJOR}.${PCRE_MINOR} configuration summary:")
MESSAGE(STATUS "")
# MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}")
MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}")
@@ -1,8 +1,25 @@
ChangeLog for PCRE
------------------

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.
Note that the PCRE 8.xx series (PCRE1) is now at end of life. All development
is happening in the PCRE2 10.xx series.


Version 8.45 15-June-2021
-------------------------

This is the final release of PCRE1. A few minor tidies are included.

1. CMakeLists.txt has two user-supplied patches applied, one to allow for the
setting of MODULE_PATH, and the other to support the generation of pcre-config
file and libpcre*.pc files.

2. There was a memory leak if a compile error occurred when there were more
than 20 named groups (Bugzilla #2613).

3. Fixed some typos in code and documentation.

4. Fixed a small (*MARK) bug in the interpreter (Bugzilla #2771).


Version 8.44 12 February-2020
@@ -19,13 +19,13 @@ THE BASIC LIBRARY FUNCTIONS
---------------------------

Written by: Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
Email local part: Philip.Hazel
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.


@@ -36,7 +36,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.


@@ -47,7 +47,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.


@@ -1,8 +1,14 @@
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.
Note that this library (now called PCRE1) is no longer being maintained. New
projects are advised to use the PCRE2 libraries.


Release 8.45 15-June-2021
-----------------------------

This is the final PCRE1 release. A very few small issues have been fixed.


Release 8.44 12-February-2020
@@ -5,8 +5,8 @@ NOTE: This document relates to PCRE releases that use the original API, with
library names libpcre, libpcre16, and libpcre32. January 2015 saw the first
release of a new API, known as PCRE2, with release numbers starting at 10.00
and library names libpcre2-8, libpcre2-16, and libpcre2-32. The old libraries
(now called PCRE1) are still being maintained for bug fixes, but there will be
no new development. New projects are advised to use the new PCRE2 libraries.
(now called PCRE1) are now at end of life, and 8.45 is the final release. New
projects are advised to use the new PCRE2 libraries.


This document contains the following sections:
@@ -768,6 +768,6 @@ Everything, source and executable, is in EBCDIC and native z/OS file formats.
However, this software is not maintained and will not be upgraded. If you are
new to PCRE you should be looking at PCRE2 (version 10.30 or later).

===============================
Last Updated: 13 September 2017
===============================
==========================
Last Updated: 15 June 2021
==========================
@@ -5,9 +5,8 @@ NOTE: This set of files relates to PCRE releases that use the original API,
with library names libpcre, libpcre16, and libpcre32. January 2015 saw the
first release of a new API, known as PCRE2, with release numbers starting at
10.00 and library names libpcre2-8, libpcre2-16, and libpcre2-32. The old
libraries (now called PCRE1) are still being maintained for bug fixes, but
there will be no new development. New projects are advised to use the new PCRE2
libraries.
libraries (now called PCRE1) are now at end of life, and 8.45 is the final
release. New projects are advised to use the new PCRE2 libraries.


The latest release of PCRE1 is always available in three alternative formats
@@ -998,6 +997,6 @@ pcre_xxx, one with the name pcre16_xx, and a third with the name pcre32_xxx.
RunTest.bat a script for running tests under Windows

Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
Last updated: 12 February 2020
Email local part: Philip.Hazel
Email domain: gmail.com
Last updated: 15 June 2021
@@ -9,17 +9,17 @@ dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might
dnl be defined as -RC2, for example. For real releases, it should be empty.

m4_define(pcre_major, [8])
m4_define(pcre_minor, [44])
m4_define(pcre_minor, [45])
m4_define(pcre_prerelease, [])
m4_define(pcre_date, [2020-02-12])
m4_define(pcre_date, [2021-06-15])

# 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:12:2])
m4_define(libpcre16_version, [2:12:2])
m4_define(libpcre32_version, [0:12:0])
m4_define(libpcre_version, [3:13:2])
m4_define(libpcre16_version, [2:13:2])
m4_define(libpcre32_version, [0:13:0])
m4_define(libpcreposix_version, [0:7:0])
m4_define(libpcrecpp_version, [0:2:0])

@@ -5,8 +5,8 @@ NOTE: This document relates to PCRE releases that use the original API, with
library names libpcre, libpcre16, and libpcre32. January 2015 saw the first
release of a new API, known as PCRE2, with release numbers starting at 10.00
and library names libpcre2-8, libpcre2-16, and libpcre2-32. The old libraries
(now called PCRE1) are still being maintained for bug fixes, but there will be
no new development. New projects are advised to use the new PCRE2 libraries.
(now called PCRE1) are now at end of life, and 8.45 is the final release. New
projects are advised to use the new PCRE2 libraries.


This document contains the following sections:
@@ -768,6 +768,6 @@ Everything, source and executable, is in EBCDIC and native z/OS file formats.
However, this software is not maintained and will not be upgraded. If you are
new to PCRE you should be looking at PCRE2 (version 10.30 or later).

===============================
Last Updated: 13 September 2017
===============================
==========================
Last Updated: 15 June 2021
==========================
@@ -5,9 +5,8 @@ NOTE: This set of files relates to PCRE releases that use the original API,
with library names libpcre, libpcre16, and libpcre32. January 2015 saw the
first release of a new API, known as PCRE2, with release numbers starting at
10.00 and library names libpcre2-8, libpcre2-16, and libpcre2-32. The old
libraries (now called PCRE1) are still being maintained for bug fixes, but
there will be no new development. New projects are advised to use the new PCRE2
libraries.
libraries (now called PCRE1) are now at end of life, and 8.45 is the final
release. New projects are advised to use the new PCRE2 libraries.


The latest release of PCRE1 is always available in three alternative formats
@@ -998,6 +997,6 @@ pcre_xxx, one with the name pcre16_xx, and a third with the name pcre32_xxx.
RunTest.bat a script for running tests under Windows

Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
Last updated: 12 February 2020
Email local part: Philip.Hazel
Email domain: gmail.com
Last updated: 15 June 2021
@@ -22,13 +22,12 @@ <h1>pcre man page</h1>
</ul>
<br><a name="SEC1" href="#TOC1">PLEASE TAKE NOTE</a><br>
<P>
This document relates to PCRE releases that use the original API,
with library names libpcre, libpcre16, and libpcre32. January 2015 saw the
first release of a new API, known as PCRE2, with release numbers starting at
10.00 and library names libpcre2-8, libpcre2-16, and libpcre2-32. The old
libraries (now called PCRE1) are still being maintained for bug fixes, but
there will be no new development. New projects are advised to use the new PCRE2
libraries.
This document relates to PCRE releases that use the original API, with library
names libpcre, libpcre16, and libpcre32. January 2015 saw the first release of
a new API, known as PCRE2, with release numbers starting at 10.00 and library
names libpcre2-8, libpcre2-16, and libpcre2-32. The old libraries (now called
PCRE1) are now at end of life, and 8.45 is the final release. New projects are
advised to use the new PCRE2 libraries.
</P>
<br><a name="SEC2" href="#TOC1">INTRODUCTION</a><br>
<P>
@@ -215,9 +214,9 @@ <h1>pcre man page</h1>
</P>
<br><a name="SEC6" href="#TOC1">REVISION</a><br>
<P>
Last updated: 10 February 2015
Last updated: 14 June 2021
<br>
Copyright &copy; 1997-2015 University of Cambridge.
Copyright &copy; 1997-2021 University of Cambridge.
<br>
<p>
Return to the <a href="index.html">PCRE index page</a>.
@@ -1718,7 +1718,7 @@ <h1>pcreapi man page</h1>
<P>
The default value for the limit can be set when PCRE is built; the default
default is 10 million, which handles all but the most extreme cases. You can
override the default by suppling <b>pcre_exec()</b> with a <b>pcre_extra</b>
override the default by supplying <b>pcre_exec()</b> with a <b>pcre_extra</b>
block in which <i>match_limit</i> is set, and PCRE_EXTRA_MATCH_LIMIT is set in
the <i>flags</i> field. If the limit is exceeded, <b>pcre_exec()</b> returns
PCRE_ERROR_MATCHLIMIT.
@@ -1749,7 +1749,7 @@ <h1>pcreapi man page</h1>
<P>
The default value for <i>match_limit_recursion</i> can be set when PCRE is
built; the default default is the same value as the default for
<i>match_limit</i>. You can override the default by suppling <b>pcre_exec()</b>
<i>match_limit</i>. You can override the default by supplying <b>pcre_exec()</b>
with a <b>pcre_extra</b> block in which <i>match_limit_recursion</i> is set, and
PCRE_EXTRA_MATCH_LIMIT_RECURSION is set in the <i>flags</i> field. If the limit
is exceeded, <b>pcre_exec()</b> returns PCRE_ERROR_RECURSIONLIMIT.
@@ -2063,10 +2063,10 @@ <h1>pcreapi man page</h1>
</pre>
which finds occurrences of "iss" in the middle of words. (\B matches only if
the current position in the subject is not a word boundary.) When applied to
the string "Mississipi" the first call to <b>pcre_exec()</b> finds the first
the string "Mississippi" the first call to <b>pcre_exec()</b> finds the first
occurrence. If <b>pcre_exec()</b> is called again with just the remainder of the
subject, namely "issipi", it does not match, because \B is always false at the
start of the subject, which is deemed to be a word boundary. However, if
subject, namely "issippi", it does not match, because \B is always false at
the start of the subject, which is deemed to be a word boundary. However, if
<b>pcre_exec()</b> is passed the entire string again, but with <i>startoffset</i>
set to 4, it finds the second occurrence of "iss" because it is able to look
behind the starting point to discover that it is preceded by a letter.
@@ -161,7 +161,7 @@ <h1>pcredemo man page</h1>
return 1;
}

/* Match succeded */
/* Match succeeded */

printf("\nMatch succeeded at offset %d\n", ovector[0]);

@@ -379,7 +379,7 @@ <h1>pcredemo man page</h1>
return 1;
}

/* Match succeded */
/* Match succeeded */

printf("\nMatch succeeded again at offset %d\n", ovector[0]);

@@ -299,7 +299,7 @@ <h1>pcrejit man page</h1>
This is a suggestion for how a multithreaded program that needs to set up
non-default JIT stacks might operate:
<pre>
During thread initalization
During thread initialization
thread_local_var = pcre_jit_stack_alloc(...)

During thread exit
@@ -655,7 +655,7 @@ <h1>pcrepattern man page</h1>
<P>
It is possible to restrict \R to match only CR, LF, or CRLF (instead of the
complete set of Unicode line endings) by setting the option PCRE_BSR_ANYCRLF
either at compile time or when the pattern is matched. (BSR is an abbrevation
either at compile time or when the pattern is matched. (BSR is an abbreviation
for "backslash R".) This can be made the default when PCRE is built; if this is
the case, the other behaviour can be requested via the PCRE_BSR_UNICODE option.
It is also possible to specify these settings by starting a pattern string with
@@ -972,7 +972,7 @@ <h1>pcrepattern man page</h1>
3. Do not break Hangul (a Korean script) syllable sequences. Hangul characters
are of five types: L, V, T, LV, and LVT. An L character may be followed by an
L, V, LV, or LVT character; an LV or V character may be followed by a V or T
character; an LVT or T character may be follwed only by a T character.
character; an LVT or T character may be followed only by a T character.
</P>
<P>
4. Do not end before extending characters or spacing marks. Characters with
@@ -3080,7 +3080,7 @@ <h1>pcrepattern man page</h1>
</pre>
If the subject is "aaaac...", after the first match attempt fails (starting at
the first character in the string), the starting point skips on to start the
next attempt at "c". Note that a possessive quantifer does not have the same
next attempt at "c". Note that a possessive quantifier does not have the same
effect as this example; although it would suppress backtracking during the
first match attempt, the second attempt would start at the second character
instead of skipping on to "c".

0 comments on commit aaac247

Please sign in to comment.