#1 New upstream release 8.43
Opened 4 years ago by elmarco. Modified 4 years ago
rpms/ elmarco/mingw-pcre master  into  rawhide

file modified
+1
@@ -6,3 +6,4 @@ 

  /pcre-8.34.tar.gz

  /pcre-8.36.tar.bz2

  /pcre-8.38.tar.bz2

+ /pcre-8.43.tar.bz2

file modified
+17 -61
@@ -1,8 +1,8 @@ 

  %?mingw_package_header

  

  Name:		mingw-pcre

- Version:	8.38

- Release:	7%{?dist}

+ Version:	8.43

+ Release:	1%{?dist}

  Summary:	MinGW Windows pcre library

  

  License:	BSD
@@ -10,53 +10,17 @@ 

  Source0:	ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-%{version}.tar.bz2

  

  # Refused by upstream, bug #675477

- Patch1:         pcre-8.32-refused_spelling_terminated.patch

- 

- # Fix compiling comments with auto-callouts, upstream bug #1725,

- # fixed in upstream after 8.38

- Patch2:         pcre-8.38-Fix-auto-callout-comment-bug.patch

- 

- # Fix compiling expressions with negated classes in UCP mode,

- # upstream bug #1732, fixed in upstream after 8.38

- Patch3:         pcre-8.38-Fix-negated-POSIX-class-within-negated-overall-class.patch

- 

- # Fix compiling expressions with an isolated \E between an item and its

- # qualifier with auto-callouts, upstream bug #1724,

- # fixed in upstream after 8.38

- Patch4:         pcre-8.38-Fix-bug-for-isolated-E-between-an-item-and-its-quali.patch

- 

- # Fix crash in regexec() if REG_STARTEND option is set and pmatch argument is

- # NULL, upstream bug #1727, fixed in upstream after 8.38

- Patch5:         pcre-8.38-Give-error-for-regexec-with-pmatch-NULL-and-REG_STAR.patch

- 

- # Fix a stack overflow when formatting a 32-bit integer in pcregrep tool,

- # upstream bug #1728, fixed in upstream after 8.38

- Patch6:         pcre-8.38-Allow-for-up-to-32-bit-numbers-in-the-ordin-function.patch

- 

- # Fix compiling expressions with an empty \Q\E sequence between an item and

- # its qualifier with auto-callouts, upstream bug #1735,

- # fixed in upstream after 8.38

- Patch7:         pcre-8.38-Fix-Q-E-before-qualifier-bug-when-auto-callouts-are-.patch

- 

- # Fix compiling expressions with global extended modifier that is disabled by

- # local no-extended option at the start of the expression just after

- # a whitespace, in upstream after 8.38

- Patch8:         pcre-8.38-Fix-x-bug-when-pattern-starts-with-white-space-and-x.patch

- 

- # Fix possible crash in pcre_copy_named_substring() if a named substring has

- # number greater than the space in the ovector, upstream bug #1741,

- # in fixed in upstream after 8.38

- Patch9:         pcre-8.38-Fix-copy-named-substring-bug.patch

- 

- # Fix a buffer overflow when compiling an expression with named groups with

- # a group that reset capture numbers, upstream bug #1742,

- # fixed in upstream after 8.38

- Patch10:        pcre-8.38-Fix-by-hacking-another-length-computation-issue.patch

- 

- # Fix a crash in pcre_get_substring_list() if the use of \K caused the start

- # of the match to be earlier than the end, upstream bug #1744,

- # fixed in upstream after 8.38

- Patch11:        pcre-8.38-Fix-get_substring_list-bug-when-K-is-used-in-an-asse.patch

+ Patch1:     pcre-8.32-refused_spelling_terminated.patch

+ # Fix recursion stack estimator, upstream bug #2173, refused by upstream

+ Patch2:     pcre-8.41-fix_stack_estimator.patch

+ # Link applications to PCRE-specific symbols when using POSIX API, bug #1667614,

+ # upstream bug 1830, partially borrowed from PCRE2, proposed to upstream,

+ # This amends ABI, application built with this patch cannot run with

+ # previous libpcreposix builds.

+ Patch3:     pcre-8.42-Declare-POSIX-regex-function-names-as-macros-to-PCRE.patch

+ # Add (*LF) to a list of start-of-pattern options in the C++ wrapper,

+ # upstream bug #2400, in upstream after 8.43

+ Patch4:     pcre-8.43-Fix-omission-of-LF-from-list-in-the-C-wrapper.patch

  

  BuildArch:	noarch

  
@@ -132,18 +96,7 @@ 

  

  

  %prep

- %setup -q -n pcre-%{version}

- %patch1 -p1

- %patch2 -p1

- %patch3 -p1

- %patch4 -p1

- %patch5 -p1

- %patch6 -p1

- %patch7 -p1

- %patch8 -p1

- %patch9 -p1

- %patch10 -p1

- %patch11 -p1

+ %autosetup -S git_am -n pcre-%{version}

  

  

  %build
@@ -235,6 +188,9 @@ 

  

  

  %changelog

+ * Wed Aug 14 2019 Marc-André Lureau <marcandre.lureau@redhat.com> - 8.43-1

+ - New upstream release 8.43

+ 

  * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.38-7

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

  

@@ -1,37 +0,0 @@ 

- From 1d5ce3e2e6341b01609aefab20786a8638fee17a Mon Sep 17 00:00:00 2001

- From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>

- Date: Tue, 6 Dec 2011 18:44:11 +0100

- Subject: [PATCH] Fix multilib

- 

- Do not set RPATH nor add explicit -L path to compiler.

- ---

-  pcre-config.in |   12 ------------

-  1 files changed, 0 insertions(+), 12 deletions(-)

- 

- diff --git a/pcre-config.in b/pcre-config.in

- index ccbf210..aeee182 100644

- --- a/pcre-config.in

- +++ b/pcre-config.in

- @@ -16,19 +16,7 @@ if test $# -eq 0; then

-  fi

-  

-  libR=

- -case `uname -s` in

- -  *SunOS*)

- -  libR=" -R@libdir@"

- -  ;;

- -  *BSD*)

- -  libR=" -Wl,-R@libdir@"

- -  ;;

- -esac

- -

-  libS=

- -if test @libdir@ != /usr/lib ; then

- -  libS=-L@libdir@

- -fi

-  

-  while test $# -gt 0; do

-    case "$1" in

- -- 

- 1.7.7.4

- 

@@ -1,29 +0,0 @@ 

- From e347b40d5bb12f7ef1e632aa649571a107be7d8a Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Sun, 29 Nov 2015 17:46:23 +0000

- Subject: [PATCH 4/5] Allow for up to 32-bit numbers in the ordin() function in

-  pcregrep.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1615 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcregrep.c b/pcregrep.c

- index 64986b0..cd53c64 100644

- --- a/pcregrep.c

- +++ b/pcregrep.c

- @@ -2437,7 +2437,7 @@ return options;

-  static char *

-  ordin(int n)

-  {

- -static char buffer[8];

- +static char buffer[14];

-  char *p = buffer;

-  sprintf(p, "%d", n);

-  while (*p != 0) p++;

- -- 

- 2.4.3

- 

@@ -1,122 +0,0 @@ 

- From e78ad4264b16988b826bd2939a1781c1165a92d9 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Mon, 30 Nov 2015 17:44:45 +0000

- Subject: [PATCH 5/5] Fix \Q\E before qualifier bug when auto callouts are

-  enabled.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1616 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcre_compile.c b/pcre_compile.c

- index 5786cd3..beed46b 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -4671,17 +4671,27 @@ for (;; ptr++)

-          }

-        goto NORMAL_CHAR;

-        }

- +      

- +    /* Check for the start of a \Q...\E sequence. We must do this here rather

- +    than later in case it is immediately followed by \E, which turns it into a

- +    "do nothing" sequence. */                                            

- +                                                                          

- +    if (c == CHAR_BACKSLASH && ptr[1] == CHAR_Q)

- +      {                                                                   

- +      inescq = TRUE;                                                      

- +      ptr++;                                                  

- +      continue;

- +      }           

-      }

-  

- -  /* In extended mode, skip white space and comments. We need a loop in order

- -  to check for more white space and more comments after a comment. */

- +  /* In extended mode, skip white space and comments. */

-  

-    if ((options & PCRE_EXTENDED) != 0)

-      {

- -    for (;;)

- +    const pcre_uchar *wscptr = ptr;

- +    while (MAX_255(c) && (cd->ctypes[c] & ctype_space) != 0) c = *(++ptr);

- +    if (c == CHAR_NUMBER_SIGN)

-        {

- -      while (MAX_255(c) && (cd->ctypes[c] & ctype_space) != 0) c = *(++ptr);

- -      if (c != CHAR_NUMBER_SIGN) break;

-        ptr++;

-        while (*ptr != CHAR_NULL)

-          {

- @@ -4695,7 +4705,15 @@ for (;; ptr++)

-          if (utf) FORWARDCHAR(ptr);

-  #endif

-          }

- -      c = *ptr;     /* Either NULL or the char after a newline */

- +      }

- +

- +    /* If we skipped any characters, restart the loop. Otherwise, we didn't see

- +    a comment. */

- +

- +    if (ptr > wscptr)

- +      {

- +      ptr--;

- +      continue;

-        }

-      }

-  

- @@ -7900,16 +7918,6 @@ for (;; ptr++)

-        c = ec;

-      else

-        {

- -      if (escape == ESC_Q)            /* Handle start of quoted string */

- -        {

- -        if (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E)

- -          ptr += 2;               /* avoid empty string */

- -            else inescq = TRUE;

- -        continue;

- -        }

- -

- -      if (escape == ESC_E) continue;  /* Perl ignores an orphan \E */

- -

-        /* For metasequences that actually match a character, we disable the

-        setting of a first character if it hasn't already been set. */

-  

- diff --git a/testdata/testinput2 b/testdata/testinput2

- index e8ca4fe..3a1134f 100644

- --- a/testdata/testinput2

- +++ b/testdata/testinput2

- @@ -4227,4 +4227,6 @@ backtracking verbs. --/

-  

-  /(A*)\E+/CBZ

-  

- +/()\Q\E*]/BCZ

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index 09756b8..ac33cc4 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -14624,4 +14624,19 @@ No match

-          End

-  ------------------------------------------------------------------

-  

- +/()\Q\E*]/BCZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 7

- +        Brazero

- +        SCBra 1

- +        Callout 255 1 0

- +        KetRmax

- +        Callout 255 7 1

- +        ]

- +        Callout 255 8 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

-  /-- End of testinput2 --/

- -- 

- 2.4.3

- 

@@ -1,169 +0,0 @@ 

- From 3c80e02cd464ea049e117b423fd48fab294c51a9 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Thu, 26 Nov 2015 20:29:13 +0000

- Subject: [PATCH] Fix auto-callout (?# comment bug.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1611 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Pisar: Ported to 8.38.

- 

- diff --git a/pcre_compile.c b/pcre_compile.c

- index 4d3b313..3360a8b 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -4699,6 +4699,23 @@ for (;; ptr++)

-        }

-      }

-  

- +  /* Skip over (?# comments. We need to do this here because we want to know if

- +  the next thing is a quantifier, and these comments may come between an item

- +  and its quantifier. */

- +

- +  if (c == CHAR_LEFT_PARENTHESIS && ptr[1] == CHAR_QUESTION_MARK &&

- +      ptr[2] == CHAR_NUMBER_SIGN)

- +    {

- +    ptr += 3;

- +    while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;

- +    if (*ptr == CHAR_NULL)

- +      {

- +      *errorcodeptr = ERR18;

- +      goto FAILED;

- +      }

- +    continue;

- +    }

- +

-    /* See if the next thing is a quantifier. */

-  

-    is_quantifier =

- @@ -6529,21 +6546,6 @@ for (;; ptr++)

-      case CHAR_LEFT_PARENTHESIS:

-      ptr++;

-  

- -    /* First deal with comments. Putting this code right at the start ensures

- -    that comments have no bad side effects. */

- -

- -    if (ptr[0] == CHAR_QUESTION_MARK && ptr[1] == CHAR_NUMBER_SIGN)

- -      {

- -      ptr += 2;

- -      while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;

- -      if (*ptr == CHAR_NULL)

- -        {

- -        *errorcodeptr = ERR18;

- -        goto FAILED;

- -        }

- -      continue;

- -      }

- -

-      /* Now deal with various "verbs" that can be introduced by '*'. */

-  

-      if (ptr[0] == CHAR_ASTERISK && (ptr[1] == ':'

- diff --git a/testdata/testinput2 b/testdata/testinput2

- index e2e520f..92e3359 100644

- --- a/testdata/testinput2

- +++ b/testdata/testinput2

- @@ -4217,4 +4217,12 @@ backtracking verbs. --/

-  

-  /a[[:punct:]b]/BZ

-  

- +/L(?#(|++<!(2)?/BZ

- +

- +/L(?#(|++<!(2)?/BOZ

- +

- +/L(?#(|++<!(2)?/BCZ

- +

- +/L(?#(|++<!(2)?/BCOZ

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testinput7 b/testdata/testinput7

- index e411a4b..00b9738 100644

- --- a/testdata/testinput7

- +++ b/testdata/testinput7

- @@ -853,4 +853,8 @@ of case for anything other than the ASCII letters. --/

-  

-  /a[b[:punct:]]/8WBZ

-  

- +/L(?#(|++<!(2)?/B8COZ

- +

- +/L(?#(|++<!(2)?/B8WCZ

- +

-  /-- End of testinput7 --/

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index 85c565d..2cf7a90 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -14574,4 +14574,40 @@ No match

-          End

-  ------------------------------------------------------------------

-  

- +/L(?#(|++<!(2)?/BZ

- +------------------------------------------------------------------

- +        Bra

- +        L?+

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

- +/L(?#(|++<!(2)?/BOZ

- +------------------------------------------------------------------

- +        Bra

- +        L?

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

- +/L(?#(|++<!(2)?/BCZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 14

- +        L?+

- +        Callout 255 14 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

- +/L(?#(|++<!(2)?/BCOZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 14

- +        L?

- +        Callout 255 14 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testoutput7 b/testdata/testoutput7

- index cc9ebdd..fdfff64 100644

- --- a/testdata/testoutput7

- +++ b/testdata/testoutput7

- @@ -2348,4 +2348,24 @@ No match

-          End

-  ------------------------------------------------------------------

-  

- +/L(?#(|++<!(2)?/B8COZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 14

- +        L?

- +        Callout 255 14 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

- +/L(?#(|++<!(2)?/B8WCZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 14

- +        L?+

- +        Callout 255 14 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

-  /-- End of testinput7 --/

- -- 

- 2.4.3

- 

@@ -1,84 +0,0 @@ 

- From bfc1dfa660c24dc7a75108d934290e50d7db2719 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Fri, 27 Nov 2015 17:41:04 +0000

- Subject: [PATCH 2/5] Fix bug for isolated \E between an item and its qualifier

-  when auto callout is set.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1613 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcre_compile.c b/pcre_compile.c

- index 3670f1e..5786cd3 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -4645,9 +4645,10 @@ for (;; ptr++)

-      goto FAILED;

-      }

-  

- -  /* If in \Q...\E, check for the end; if not, we have a literal */

- +  /* If in \Q...\E, check for the end; if not, we have a literal. Otherwise an

- +  isolated \E is ignored. */

-  

- -  if (inescq && c != CHAR_NULL)

- +  if (c != CHAR_NULL)

-      {

-      if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E)

-        {

- @@ -4655,7 +4656,7 @@ for (;; ptr++)

-        ptr++;

-        continue;

-        }

- -    else

- +    else if (inescq)

-        {

-        if (previous_callout != NULL)

-          {

- @@ -4670,7 +4671,6 @@ for (;; ptr++)

-          }

-        goto NORMAL_CHAR;

-        }

- -    /* Control does not reach here. */

-      }

-  

-    /* In extended mode, skip white space and comments. We need a loop in order

- diff --git a/testdata/testinput2 b/testdata/testinput2

- index 92e3359..e8ca4fe 100644

- --- a/testdata/testinput2

- +++ b/testdata/testinput2

- @@ -4225,4 +4225,6 @@ backtracking verbs. --/

-  

-  /L(?#(|++<!(2)?/BCOZ

-  

- +/(A*)\E+/CBZ

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index 2cf7a90..09756b8 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -14610,4 +14610,18 @@ No match

-          End

-  ------------------------------------------------------------------

-  

- +/(A*)\E+/CBZ

- +------------------------------------------------------------------

- +        Bra

- +        Callout 255 0 7

- +        SCBra 1

- +        Callout 255 1 2

- +        A*

- +        Callout 255 3 0

- +        KetRmax

- +        Callout 255 7 0

- +        Ket

- +        End

- +------------------------------------------------------------------

- +

-  /-- End of testinput2 --/

- -- 

- 2.4.3

- 

@@ -1,67 +0,0 @@ 

- From 40363ebc19baeab160abaaa55dc84322a89ac35a Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Sat, 5 Dec 2015 16:58:46 +0000

- Subject: [PATCH] Fix (by hacking) another length computation issue.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1619 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcre_compile.c b/pcre_compile.c

- index 57719b9..087bf2a 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -7280,7 +7280,7 @@ for (;; ptr++)

-            issue is fixed "properly" in PCRE2. As PCRE1 is now in maintenance

-            only mode, we finesse the bug by allowing more memory always. */

-  

- -          *lengthptr += 2 + 2*LINK_SIZE;

- +          *lengthptr += 4 + 4*LINK_SIZE;

-  

-            /* It is even worse than that. The current reference may be to an

-            existing named group with a different number (so apparently not

- diff --git a/testdata/testoutput11-16 b/testdata/testoutput11-16

- index 9a0a12d..280692e 100644

- --- a/testdata/testoutput11-16

- +++ b/testdata/testoutput11-16

- @@ -231,7 +231,7 @@ Memory allocation (code space): 73

-  ------------------------------------------------------------------

-  

-  /(?P<a>a)...(?P=a)bbb(?P>a)d/BM

- -Memory allocation (code space): 77

- +Memory allocation (code space): 93

-  ------------------------------------------------------------------

-    0  24 Bra

-    2   5 CBra 1

- diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32

- index 57e5da0..cdbda74 100644

- --- a/testdata/testoutput11-32

- +++ b/testdata/testoutput11-32

- @@ -231,7 +231,7 @@ Memory allocation (code space): 155

-  ------------------------------------------------------------------

-  

-  /(?P<a>a)...(?P=a)bbb(?P>a)d/BM

- -Memory allocation (code space): 157

- +Memory allocation (code space): 189

-  ------------------------------------------------------------------

-    0  24 Bra

-    2   5 CBra 1

- diff --git a/testdata/testoutput11-8 b/testdata/testoutput11-8

- index 748548a..cb37896 100644

- --- a/testdata/testoutput11-8

- +++ b/testdata/testoutput11-8

- @@ -231,7 +231,7 @@ Memory allocation (code space): 45

-  ------------------------------------------------------------------

-  

-  /(?P<a>a)...(?P=a)bbb(?P>a)d/BM

- -Memory allocation (code space): 50

- +Memory allocation (code space): 62

-  ------------------------------------------------------------------

-    0  30 Bra

-    3   7 CBra 1

- -- 

- 2.4.3

- 

@@ -1,99 +0,0 @@ 

- From db1fb68feddc9afe6f8822d099fa9ff25e3ea8e7 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Sat, 5 Dec 2015 16:30:14 +0000

- Subject: [PATCH] Fix copy named substring bug.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1618 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- diff --git a/pcre_get.c b/pcre_get.c

- index 8094b34..41eda9c 100644

- --- a/pcre_get.c

- +++ b/pcre_get.c

- @@ -250,6 +250,7 @@ Arguments:

-    code         the compiled regex

-    stringname   the name of the capturing substring

-    ovector      the vector of matched substrings

- +  stringcount  number of captured substrings 

-  

-  Returns:       the number of the first that is set,

-                 or the number of the last one if none are set,

- @@ -258,13 +259,16 @@ Returns:       the number of the first that is set,

-  

-  #if defined COMPILE_PCRE8

-  static int

- -get_first_set(const pcre *code, const char *stringname, int *ovector)

- +get_first_set(const pcre *code, const char *stringname, int *ovector,

- +  int stringcount)

-  #elif defined COMPILE_PCRE16

-  static int

- -get_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector)

- +get_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector,

- +  int stringcount)

-  #elif defined COMPILE_PCRE32

-  static int

- -get_first_set(const pcre32 *code, PCRE_SPTR32 stringname, int *ovector)

- +get_first_set(const pcre32 *code, PCRE_SPTR32 stringname, int *ovector,

- +  int stringcount)

-  #endif

-  {

-  const REAL_PCRE *re = (const REAL_PCRE *)code;

- @@ -295,7 +299,7 @@ if (entrysize <= 0) return entrysize;

-  for (entry = (pcre_uchar *)first; entry <= (pcre_uchar *)last; entry += entrysize)

-    {

-    int n = GET2(entry, 0);

- -  if (ovector[n*2] >= 0) return n;

- +  if (n < stringcount && ovector[n*2] >= 0) return n;

-    }

-  return GET2(entry, 0);

-  }

- @@ -402,7 +406,7 @@ pcre32_copy_named_substring(const pcre32 *code, PCRE_SPTR32 subject,

-    PCRE_UCHAR32 *buffer, int size)

-  #endif

-  {

- -int n = get_first_set(code, stringname, ovector);

- +int n = get_first_set(code, stringname, ovector, stringcount);

-  if (n <= 0) return n;

-  #if defined COMPILE_PCRE8

-  return pcre_copy_substring(subject, ovector, stringcount, n, buffer, size);

- @@ -619,7 +623,7 @@ pcre32_get_named_substring(const pcre32 *code, PCRE_SPTR32 subject,

-    PCRE_SPTR32 *stringptr)

-  #endif

-  {

- -int n = get_first_set(code, stringname, ovector);

- +int n = get_first_set(code, stringname, ovector, stringcount);

-  if (n <= 0) return n;

-  #if defined COMPILE_PCRE8

-  return pcre_get_substring(subject, ovector, stringcount, n, stringptr);

- diff --git a/testdata/testinput2 b/testdata/testinput2

- index 3a1134f..00ffe32 100644

- --- a/testdata/testinput2

- +++ b/testdata/testinput2

- @@ -4229,4 +4229,7 @@ backtracking verbs. --/

-  

-  /()\Q\E*]/BCZ

-  

- +/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/

- +    \O\CC

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index 6c42897..ffb4466 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -14639,4 +14639,9 @@ No match

-          End

-  ------------------------------------------------------------------

-  

- +/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/

- +    \O\CC

- +Matched, but too many substrings

- +copy substring C failed -7

- +

-  /-- End of testinput2 --/

- -- 

- 2.4.3

- 

@@ -1,67 +0,0 @@ 

- From 4f47274a2eb10131d88145ad7fd0eed4027a0c51 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Tue, 8 Dec 2015 11:06:40 +0000

- Subject: [PATCH] Fix get_substring_list() bug when \K is used in an assertion.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1620 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: ported to 8.38.

- 

- diff --git a/pcre_get.c b/pcre_get.c

- index 41eda9c..cdd2abc 100644

- --- a/pcre_get.c

- +++ b/pcre_get.c

- @@ -461,7 +461,10 @@ pcre_uchar **stringlist;

-  pcre_uchar *p;

-  

-  for (i = 0; i < double_count; i += 2)

- -  size += sizeof(pcre_uchar *) + IN_UCHARS(ovector[i+1] - ovector[i] + 1);

- +  {

- +  size += sizeof(pcre_uchar *) + IN_UCHARS(1);

- +  if (ovector[i+1] > ovector[i]) size += IN_UCHARS(ovector[i+1] - ovector[i]);

- +  } 

-  

-  stringlist = (pcre_uchar **)(PUBL(malloc))(size);

-  if (stringlist == NULL) return PCRE_ERROR_NOMEMORY;

- @@ -477,7 +480,7 @@ p = (pcre_uchar *)(stringlist + stringcount + 1);

-  

-  for (i = 0; i < double_count; i += 2)

-    {

- -  int len = ovector[i+1] - ovector[i];

- +  int len = (ovector[i+1] > ovector[i])? (ovector[i+1] - ovector[i]) : 0;

-    memcpy(p, subject + ovector[i], IN_UCHARS(len));

-    *stringlist++ = p;

-    p += len;

- diff --git a/testdata/testinput2 b/testdata/testinput2

- index 00ffe32..967a241 100644

- --- a/testdata/testinput2

- +++ b/testdata/testinput2

- @@ -4232,4 +4232,7 @@ backtracking verbs. --/

-  /(?<A>)(?J:(?<B>)(?<B>))(?<C>)/

-      \O\CC

-  

- +/(?=a\K)/ 

- +    ring bpattingbobnd $ 1,oern cou \rb\L

- +

-  /-- End of testinput2 --/

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index ffb4466..5fb28d5 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -14644,4 +14644,10 @@ No match

-  Matched, but too many substrings

-  copy substring C failed -7

-  

- +/(?=a\K)/ 

- +    ring bpattingbobnd $ 1,oern cou \rb\L

- +Start of matched string is beyond its end - displaying from end to start.

- + 0: a

- + 0L 

- +

-  /-- End of testinput2 --/

- -- 

- 2.5.0

- 

@@ -1,94 +0,0 @@ 

- From ef6b10fcde41a2687f38d4a9ff2886b037948a1b Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Fri, 27 Nov 2015 17:13:13 +0000

- Subject: [PATCH 1/5] Fix negated POSIX class within negated overall class UCP

-  bug.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1612 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- diff --git a/pcre_compile.c b/pcre_compile.c

- index 3360a8b..3670f1e 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -5063,20 +5063,22 @@ for (;; ptr++)

-              ptr = tempptr + 1;

-              continue;

-  

- -            /* For the other POSIX classes (ascii, xdigit) we are going to fall

- -            through to the non-UCP case and build a bit map for characters with

- -            code points less than 256. If we are in a negated POSIX class

- -            within a non-negated overall class, characters with code points

- -            greater than 255 must all match. In the special case where we have

- -            not yet generated any xclass data, and this is the final item in

- -            the overall class, we need do nothing: later on, the opcode

- +            /* For the other POSIX classes (ascii, cntrl, xdigit) we are going

- +            to fall through to the non-UCP case and build a bit map for

- +            characters with code points less than 256. If we are in a negated

- +            POSIX class, characters with code points greater than 255 must

- +            either all match or all not match. In the special case where we

- +            have not yet generated any xclass data, and this is the final item

- +            in the overall class, we need do nothing: later on, the opcode

-              OP_NCLASS will be used to indicate that characters greater than 255

-              are acceptable. If we have already seen an xclass item or one may

-              follow (we have to assume that it might if this is not the end of

- -            the class), explicitly match all wide codepoints. */

- +            the class), explicitly list all wide codepoints, which will then

- +            either not match or match, depending on whether the class is or is

- +            not negated. */

-  

-              default:

- -            if (!negate_class && local_negate &&

- +            if (local_negate &&

-                  (xclass || tempptr[2] != CHAR_RIGHT_SQUARE_BRACKET))

-                {

-                *class_uchardata++ = XCL_RANGE;

- diff --git a/testdata/testinput6 b/testdata/testinput6

- index aeb62a0..a178d3d 100644

- --- a/testdata/testinput6

- +++ b/testdata/testinput6

- @@ -1553,4 +1553,13 @@

-      \x{200}

-      \x{37e}

-  

- +/[^[:^ascii:]\d]/8W

- +    a

- +    ~

- +    0

- +    \a

- +    \x{7f}

- +    \x{389}

- +    \x{20ac}

- +

-  /-- End of testinput6 --/

- diff --git a/testdata/testoutput6 b/testdata/testoutput6

- index beb85aa..b64dc0d 100644

- --- a/testdata/testoutput6

- +++ b/testdata/testoutput6

- @@ -2557,4 +2557,20 @@ No match

-      \x{37e}

-   0: \x{37e}

-  

- +/[^[:^ascii:]\d]/8W

- +    a

- + 0: a

- +    ~

- + 0: ~

- +    0

- +No match

- +    \a

- + 0: \x{07}

- +    \x{7f}

- + 0: \x{7f}

- +    \x{389}

- +No match

- +    \x{20ac}

- +No match

- +

-  /-- End of testinput6 --/

- -- 

- 2.4.3

- 

@@ -1,193 +0,0 @@ 

- From 46ed1a703b067e5b679eacf6500a54dae35f8130 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Thu, 3 Dec 2015 17:05:40 +0000

- Subject: [PATCH] Fix /x bug when pattern starts with white space and (?-x)

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1617 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcre_compile.c b/pcre_compile.c

- index beed46b..57719b9 100644

- --- a/pcre_compile.c

- +++ b/pcre_compile.c

- @@ -7607,39 +7607,15 @@ for (;; ptr++)

-          newoptions = (options | set) & (~unset);

-  

-          /* If the options ended with ')' this is not the start of a nested

- -        group with option changes, so the options change at this level. If this

- -        item is right at the start of the pattern, the options can be

- -        abstracted and made external in the pre-compile phase, and ignored in

- -        the compile phase. This can be helpful when matching -- for instance in

- -        caseless checking of required bytes.

- -

- -        If the code pointer is not (cd->start_code + 1 + LINK_SIZE), we are

- -        definitely *not* at the start of the pattern because something has been

- -        compiled. In the pre-compile phase, however, the code pointer can have

- -        that value after the start, because it gets reset as code is discarded

- -        during the pre-compile. However, this can happen only at top level - if

- -        we are within parentheses, the starting BRA will still be present. At

- -        any parenthesis level, the length value can be used to test if anything

- -        has been compiled at that level. Thus, a test for both these conditions

- -        is necessary to ensure we correctly detect the start of the pattern in

- -        both phases.

- -

- +        group with option changes, so the options change at this level. 

-          If we are not at the pattern start, reset the greedy defaults and the

-          case value for firstchar and reqchar. */

-  

-          if (*ptr == CHAR_RIGHT_PARENTHESIS)

-            {

- -          if (code == cd->start_code + 1 + LINK_SIZE &&

- -               (lengthptr == NULL || *lengthptr == 2 + 2*LINK_SIZE))

- -            {

- -            cd->external_options = newoptions;

- -            }

- -          else

- -            {

- -            greedy_default = ((newoptions & PCRE_UNGREEDY) != 0);

- -            greedy_non_default = greedy_default ^ 1;

- -            req_caseopt = ((newoptions & PCRE_CASELESS) != 0)? REQ_CASELESS:0;

- -            }

- +          greedy_default = ((newoptions & PCRE_UNGREEDY) != 0);

- +          greedy_non_default = greedy_default ^ 1;

- +          req_caseopt = ((newoptions & PCRE_CASELESS) != 0)? REQ_CASELESS:0;

-  

-            /* Change options at this level, and pass them back for use

-            in subsequent branches. */

- diff --git a/testdata/testoutput2 b/testdata/testoutput2

- index ac33cc4..6c42897 100644

- --- a/testdata/testoutput2

- +++ b/testdata/testoutput2

- @@ -419,7 +419,7 @@ Need char = '>'

-  

-  /(?U)<.*>/I

-  Capturing subpattern count = 0

- -Options: ungreedy

- +No options

-  First char = '<'

-  Need char = '>'

-      abc<def>ghi<klm>nop

- @@ -443,7 +443,7 @@ Need char = '='

-  

-  /(?U)={3,}?/I

-  Capturing subpattern count = 0

- -Options: ungreedy

- +No options

-  First char = '='

-  Need char = '='

-      abc========def

- @@ -477,7 +477,7 @@ Failed: lookbehind assertion is not fixed length at offset 12

-  

-  /(?i)abc/I

-  Capturing subpattern count = 0

- -Options: caseless

- +No options

-  First char = 'a' (caseless)

-  Need char = 'c' (caseless)

-  

- @@ -489,7 +489,7 @@ No need char

-  

-  /(?i)^1234/I

-  Capturing subpattern count = 0

- -Options: anchored caseless

- +Options: anchored

-  No first char

-  No need char

-  

- @@ -502,7 +502,7 @@ No need char

-  /(?s).*/I

-  Capturing subpattern count = 0

-  May match empty string

- -Options: anchored dotall

- +Options: anchored

-  No first char

-  No need char

-  

- @@ -516,7 +516,7 @@ Starting chars: a b c d

-  

-  /(?i)[abcd]/IS

-  Capturing subpattern count = 0

- -Options: caseless

- +No options

-  No first char

-  No need char

-  Subject length lower bound = 1

- @@ -524,7 +524,7 @@ Starting chars: A B C D a b c d

-  

-  /(?m)[xy]|(b|c)/IS

-  Capturing subpattern count = 1

- -Options: multiline

- +No options

-  No first char

-  No need char

-  Subject length lower bound = 1

- @@ -538,7 +538,7 @@ No need char

-  

-  /(?i)(^a|^b)/Im

-  Capturing subpattern count = 1

- -Options: caseless multiline

- +Options: multiline

-  First char at start or follows newline

-  No need char

-  

- @@ -1179,7 +1179,7 @@ No need char

-          End

-  ------------------------------------------------------------------

-  Capturing subpattern count = 1

- -Options: anchored dotall

- +Options: anchored

-  No first char

-  No need char

-  

- @@ -2735,7 +2735,7 @@ No match

-          End

-  ------------------------------------------------------------------

-  Capturing subpattern count = 0

- -Options: caseless extended

- +Options: extended

-  First char = 'a' (caseless)

-  Need char = 'c' (caseless)

-  

- @@ -2748,7 +2748,7 @@ Need char = 'c' (caseless)

-          End

-  ------------------------------------------------------------------

-  Capturing subpattern count = 0

- -Options: caseless extended

- +Options: extended

-  First char = 'a' (caseless)

-  Need char = 'c' (caseless)

-  

- @@ -3095,7 +3095,7 @@ Need char = 'b'

-          End

-  ------------------------------------------------------------------

-  Capturing subpattern count = 0

- -Options: ungreedy

- +No options

-  First char = 'x'

-  Need char = 'b'

-      xaaaab

- @@ -3497,7 +3497,7 @@ Need char = 'c'

-  

-  /(?i)[ab]/IS

-  Capturing subpattern count = 0

- -Options: caseless

- +No options

-  No first char

-  No need char

-  Subject length lower bound = 1

- @@ -6299,7 +6299,7 @@ Capturing subpattern count = 3

-  Named capturing subpatterns:

-    A   2

-    A   3

- -Options: anchored dupnames

- +Options: anchored

-  Duplicate name status changes

-  No first char

-  No need char

- -- 

- 2.4.3

- 

@@ -1,28 +0,0 @@ 

- From 108377b836fc29a84f5286287629d96549b1c777 Mon Sep 17 00:00:00 2001

- From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

- Date: Sun, 29 Nov 2015 17:38:25 +0000

- Subject: [PATCH 3/5] Give error for regexec with pmatch=NULL and REG_STARTEND

-  set.

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1614 2f5784b3-3f2a-0410-8824-cb99058d5e15

- 

- Petr Písař: Ported to 8.38.

- 

- diff --git a/pcreposix.c b/pcreposix.c

- index f024423..dcc13ef 100644

- --- a/pcreposix.c

- +++ b/pcreposix.c

- @@ -364,6 +364,7 @@ start location rather than being passed as a PCRE "starting offset". */

-  

-  if ((eflags & REG_STARTEND) != 0)

-    {

- +  if (pmatch == NULL) return REG_INVARG; 

-    so = pmatch[0].rm_so;

-    eo = pmatch[0].rm_eo;

-    }

- -- 

- 2.4.3

- 

@@ -0,0 +1,34 @@ 

+ From 0ad3618f226deee531bcced057afa1b52d5b41f5 Mon Sep 17 00:00:00 2001

+ From: Sergei Golubchik <vuvova@gmail.com>

+ Date: Wed, 14 Aug 2019 12:09:30 +0400

+ Subject: [PATCH] Fix recursion stack estimator

+ 

+ Due to inlining match() by recent GCC, the stack estimator reported 4-bytes

+ stack consumption.

+ 

+ Author: Sergei Golubchik <vuvova@gmail.com>

+ <https://bugs.exim.org/show_bug.cgi?id=2173>

+ ---

+  pcre_exec.c | 6 ++++++

+  1 file changed, 6 insertions(+)

+ 

+ diff --git a/pcre_exec.c b/pcre_exec.c

+ index 3fd58cb..2b4d704 100644

+ --- a/pcre_exec.c

+ +++ b/pcre_exec.c

+ @@ -509,6 +509,12 @@ Returns:       MATCH_MATCH if matched            )  these values are >= 0

+                   (e.g. stopped by repeated call or recursion limit)

+  */

+  

+ +#ifdef __GNUC__

+ +static int

+ +match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,

+ +  PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,

+ +  unsigned int rdepth) __attribute__((noinline,noclone));

+ +#endif

+  static int

+  match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,

+    PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,

+ -- 

+ 2.23.0.rc1

+ 

@@ -0,0 +1,161 @@ 

+ From f1e9a32ee7fad2263636a51536ce0f9f13f09949 Mon Sep 17 00:00:00 2001

+ From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>

+ Date: Wed, 23 Jan 2019 10:16:20 +0100

+ Subject: [PATCH] Declare POSIX regex function names as macros to PCRE

+  functions

+ MIME-Version: 1.0

+ Content-Type: text/plain; charset=UTF-8

+ Content-Transfer-Encoding: 8bit

+ 

+ POSIX regex libraries differ in regex_t size. If a program includes

+ <pcreposix.h>, but is not linked to pcreposix library at run-time

+ (either in effect of --as-needed or a lazy binding in dlopen)

+ other implementation touches memory out of the structure and the

+ program can crash.

+ 

+ That means once a program includes <pcreposix.h>, it must link to the

+ pcreposix library.

+ 

+ This patch replaces the POSIX regex declaration with macros to the

+ PCRE uniqely-named function. This ensures that the PCRE's regex_t

+ structure is always handled by the PCRE functions.

+ 

+ This patch still preserves the POSIX regex definitions in order to

+ preseve ABI with application compiled before this change. The

+ definition can be removed in the future.

+ 

+ Signed-off-by: Petr Písař <ppisar@redhat.com>

+ ---

+  pcreposix.c | 50 +++++++++++++++++++++++++++++++++++++++++++++-----

+  pcreposix.h | 20 ++++++++++++++------

+  2 files changed, 59 insertions(+), 11 deletions(-)

+ 

+ diff --git a/pcreposix.c b/pcreposix.c

+ index a76d6bf..3f2f3ef 100644

+ --- a/pcreposix.c

+ +++ b/pcreposix.c

+ @@ -39,7 +39,10 @@ POSSIBILITY OF SUCH DAMAGE.

+  

+  

+  /* This module is a wrapper that provides a POSIX API to the underlying PCRE

+ -functions. */

+ +functions. The operative functions are called pcre_regcomp(), etc., with

+ +wrappers that use the plain POSIX names. This makes it easier for an

+ +application to be sure it gets the PCRE versions in the presence of other

+ +POSIX regex libraries. */

+  

+  

+  #ifdef HAVE_CONFIG_H

+ @@ -204,12 +207,49 @@ static const char *const pstring[] = {

+  

+  

+  /*************************************************

+ -*          Translate error code to string        *

+ +*      Wrappers with traditional POSIX names     *

+  *************************************************/

+  

+ +/* Keep defining them to preseve ABI with application linked to pcreposix

+ + * library before they were changed into macros. */

+ +

+ +#undef regerror

+  PCREPOSIX_EXP_DEFN size_t PCRE_CALL_CONVENTION

+  regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)

+  {

+ +return pcre_regerror(errcode, preg, errbuf, errbuf_size);

+ +}

+ +

+ +#undef regfree

+ +PCREPOSIX_EXP_DEFN void PCRE_CALL_CONVENTION

+ +regfree(regex_t *preg)

+ +{

+ +pcre_regfree(preg);

+ +}

+ +

+ +#undef regcomp

+ +PCREPOSIX_EXP_DEFN int PCRE_CALL_CONVENTION

+ +regcomp(regex_t *preg, const char *pattern, int cflags)

+ +{

+ +return pcre_regcomp(preg, pattern, cflags);

+ +}

+ +

+ +#undef regexec

+ +PCREPOSIX_EXP_DEFN int PCRE_CALL_CONVENTION

+ +regexec(const regex_t *preg, const char *string, size_t nmatch,

+ +  regmatch_t pmatch[], int eflags)

+ +{

+ +return pcre_regexec(preg, string, nmatch, pmatch, eflags);

+ +}

+ +

+ +

+ +/*************************************************

+ +*          Translate error code to string        *

+ +*************************************************/

+ +

+ +PCREPOSIX_EXP_DEFN size_t PCRE_CALL_CONVENTION

+ +pcre_regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)

+ +{

+  const char *message, *addmessage;

+  size_t length, addlength;

+  

+ @@ -243,7 +283,7 @@ return length + addlength;

+  *************************************************/

+  

+  PCREPOSIX_EXP_DEFN void PCRE_CALL_CONVENTION

+ -regfree(regex_t *preg)

+ +pcre_regfree(regex_t *preg)

+  {

+  (PUBL(free))(preg->re_pcre);

+  }

+ @@ -266,7 +306,7 @@ Returns:      0 on success

+  */

+  

+  PCREPOSIX_EXP_DEFN int PCRE_CALL_CONVENTION

+ -regcomp(regex_t *preg, const char *pattern, int cflags)

+ +pcre_regcomp(regex_t *preg, const char *pattern, int cflags)

+  {

+  const char *errorptr;

+  int erroffset;

+ @@ -320,7 +360,7 @@ be set. When this is the case, the nmatch and pmatch arguments are ignored, and

+  the only result is yes/no/error. */

+  

+  PCREPOSIX_EXP_DEFN int PCRE_CALL_CONVENTION

+ -regexec(const regex_t *preg, const char *string, size_t nmatch,

+ +pcre_regexec(const regex_t *preg, const char *string, size_t nmatch,

+    regmatch_t pmatch[], int eflags)

+  {

+  int rc, so, eo;

+ diff --git a/pcreposix.h b/pcreposix.h

+ index c77c0b0..6f108b8 100644

+ --- a/pcreposix.h

+ +++ b/pcreposix.h

+ @@ -131,13 +131,21 @@ file. */

+  #  endif

+  #endif

+  

+ -/* The functions */

+ -

+ -PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int);

+ -PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t,

+ +/* The functions. The actual code is in functions with pcre_xxx names for

+ +uniqueness. POSIX names are provided for API compatibility with POSIX regex

+ +functions. It's done this way to ensure to they are always get from the

+ +PCRE library and not by accident from elsewhere. (regex_t differs in size

+ +elsewhere.) */

+ +

+ +PCREPOSIX_EXP_DECL int pcre_regcomp(regex_t *, const char *, int);

+ +#define regcomp pcre_regcomp

+ +PCREPOSIX_EXP_DECL int pcre_regexec(const regex_t *, const char *, size_t,

+                       regmatch_t *, int);

+ -PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t);

+ -PCREPOSIX_EXP_DECL void regfree(regex_t *);

+ +#define regexec pcre_regexec

+ +PCREPOSIX_EXP_DECL size_t pcre_regerror(int, const regex_t *, char *, size_t);

+ +#define regerror pcre_regerror

+ +PCREPOSIX_EXP_DECL void pcre_regfree(regex_t *);

+ +#define regfree pcre_regfree

+  

+  #ifdef __cplusplus

+  }   /* extern "C" */

+ -- 

+ 2.17.2

+ 

@@ -0,0 +1,28 @@ 

+ From f74e04f2d8755fdd5cf5e387735593354972ad23 Mon Sep 17 00:00:00 2001

+ From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>

+ Date: Thu, 23 May 2019 16:27:33 +0000

+ Subject: [PATCH] Fix omission of (*LF) from list in the C++ wrapper.

+ MIME-Version: 1.0

+ Content-Type: text/plain; charset=UTF-8

+ Content-Transfer-Encoding: 8bit

+ 

+ git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1753 2f5784b3-3f2a-0410-8824-cb99058d5e15

+ Petr Písař: Ported to 8.43.

+ ---

+  pcrecpp.cc | 1 +

+ 

+ diff --git a/pcrecpp.cc b/pcrecpp.cc

+ index 6a3eff8..0d6b140 100644

+ --- a/pcrecpp.cc

+ +++ b/pcrecpp.cc

+ @@ -92,6 +92,7 @@ static const char *start_options[] = {

+    "(*LIMIT_RECURSION=",

+    "(*LIMIT_MATCH=",

+    "(*CRLF)",

+ +  "(*LF)", 

+    "(*CR)",

+    "(*BSR_UNICODE)",

+    "(*BSR_ANYCRLF)",

+ -- 

+ 2.20.1

+ 

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- 00aabbfe56d5a48b270f999b508c5ad2  pcre-8.38.tar.bz2

+ SHA512 (pcre-8.43.tar.bz2) = 3b4ac2c7ccd77c9575d07a33c3456f40b50731029e62d01fb8f2f5871d7118e12bc9e6bc7a8079769c765e38da5ecf98c4b261b10ff0a2f14f0881b434f67af7