import mingw-pcre-8.38-4.el8
This commit is contained in:
commit
84192023b3
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
SOURCES/pcre-8.38.tar.bz2
|
1
.mingw-pcre.metadata
Normal file
1
.mingw-pcre.metadata
Normal file
@ -0,0 +1 @@
|
||||
ae84e3b3ef0764788ce33b1adeff1add938126e1 SOURCES/pcre-8.38.tar.bz2
|
48
SOURCES/pcre-8.32-refused_spelling_terminated.patch
Normal file
48
SOURCES/pcre-8.32-refused_spelling_terminated.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From 6f8b68f2740f3100154342338ed3d26e676dae69 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Mon, 7 Feb 2011 11:37:09 +0100
|
||||
Subject: [PATCH] Fix spelling in pcretest(1) manual
|
||||
|
||||
I kept some non-dictionary words to be consistent.
|
||||
Credits to John Bradshaw.
|
||||
|
||||
Spelling refused by upstream <http://bugs.exim.org/show_bug.cgi?id=1081#c3>:
|
||||
|
||||
I have applied these patches, except for "termi-nated", because my
|
||||
Collins dictionary of spelling and word division shows "termin-ate" and
|
||||
"termin-ating". I do know that there is a cultural difference between
|
||||
British and American hyphenation conventions; I try to follow the
|
||||
British ones, as exemplified in the Collins.
|
||||
---
|
||||
doc/pcretest.1 | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/doc/pcretest.1 b/doc/pcretest.1
|
||||
index 41ef6ac..258a62f 100644
|
||||
--- a/doc/pcretest.1
|
||||
+++ b/doc/pcretest.1
|
||||
@@ -601,8 +601,8 @@ recognized:
|
||||
after a successful match (number less than 32)
|
||||
.\" JOIN
|
||||
\eCname call pcre[16|32]_copy_named_substring() for substring
|
||||
- "name" after a successful match (name termin-
|
||||
- ated by next non alphanumeric character)
|
||||
+ "name" after a successful match (name terminated
|
||||
+ by next non alphanumeric character)
|
||||
.\" JOIN
|
||||
\eC+ show the current captured substrings at callout
|
||||
time
|
||||
@@ -623,8 +623,8 @@ recognized:
|
||||
after a successful match (number less than 32)
|
||||
.\" JOIN
|
||||
\eGname call pcre[16|32]_get_named_substring() for substring
|
||||
- "name" after a successful match (name termin-
|
||||
- ated by next non-alphanumeric character)
|
||||
+ "name" after a successful match (name terminated
|
||||
+ by next non-alphanumeric character)
|
||||
.\" JOIN
|
||||
\eJdd set up a JIT stack of dd kilobytes maximum (any
|
||||
number of digits)
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -0,0 +1,29 @@
|
||||
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
|
||||
|
@ -0,0 +1,122 @@
|
||||
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
|
||||
|
169
SOURCES/pcre-8.38-Fix-auto-callout-comment-bug.patch
Normal file
169
SOURCES/pcre-8.38-Fix-auto-callout-comment-bug.patch
Normal file
@ -0,0 +1,169 @@
|
||||
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
|
||||
|
@ -0,0 +1,84 @@
|
||||
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
|
||||
|
@ -0,0 +1,67 @@
|
||||
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
|
||||
|
99
SOURCES/pcre-8.38-Fix-copy-named-substring-bug.patch
Normal file
99
SOURCES/pcre-8.38-Fix-copy-named-substring-bug.patch
Normal file
@ -0,0 +1,99 @@
|
||||
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
|
||||
|
@ -0,0 +1,67 @@
|
||||
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
|
||||
|
@ -0,0 +1,94 @@
|
||||
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
|
||||
|
@ -0,0 +1,193 @@
|
||||
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
|
||||
|
@ -0,0 +1,28 @@
|
||||
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
|
||||
|
330
SPECS/mingw-pcre.spec
Normal file
330
SPECS/mingw-pcre.spec
Normal file
@ -0,0 +1,330 @@
|
||||
%?mingw_package_header
|
||||
|
||||
Name: mingw-pcre
|
||||
Version: 8.38
|
||||
Release: 4%{?dist}
|
||||
Summary: MinGW Windows pcre library
|
||||
|
||||
Group: Development/Libraries
|
||||
License: BSD
|
||||
URL: http://www.pcre.org/
|
||||
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
|
||||
|
||||
BuildArch: noarch
|
||||
ExclusiveArch: %{ix86} x86_64
|
||||
|
||||
BuildRequires: redhat-rpm-config
|
||||
|
||||
BuildRequires: mingw32-filesystem >= 95
|
||||
BuildRequires: mingw32-gcc
|
||||
BuildRequires: mingw32-gcc-c++
|
||||
BuildRequires: mingw32-binutils
|
||||
|
||||
BuildRequires: mingw64-filesystem >= 95
|
||||
BuildRequires: mingw64-gcc
|
||||
BuildRequires: mingw64-gcc-c++
|
||||
BuildRequires: mingw64-binutils
|
||||
|
||||
|
||||
%description
|
||||
Cross compiled Perl-compatible regular expression library for use with mingw32.
|
||||
|
||||
PCRE has its own native API, but a set of "wrapper" functions that are based on
|
||||
the POSIX API are also supplied in the library libpcreposix. Note that this
|
||||
just provides a POSIX calling interface to PCRE: the regular expressions
|
||||
themselves still follow Perl syntax and semantics. The header file
|
||||
for the POSIX-style functions is called pcreposix.h.
|
||||
|
||||
|
||||
# Win32
|
||||
%package -n mingw32-pcre
|
||||
Summary: MinGW Windows pcre library
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n mingw32-pcre
|
||||
Cross compiled Perl-compatible regular expression library for use with mingw32.
|
||||
|
||||
PCRE has its own native API, but a set of "wrapper" functions that are based on
|
||||
the POSIX API are also supplied in the library libpcreposix. Note that this
|
||||
just provides a POSIX calling interface to PCRE: the regular expressions
|
||||
themselves still follow Perl syntax and semantics. The header file
|
||||
for the POSIX-style functions is called pcreposix.h.
|
||||
|
||||
%package -n mingw32-pcre-static
|
||||
Summary: Static version of the mingw32-pcre library
|
||||
Requires: mingw32-pcre = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
ExclusiveArch: %{ix86} x86_64
|
||||
|
||||
%description -n mingw32-pcre-static
|
||||
Static version of the mingw32-pcre library.
|
||||
|
||||
# Win64
|
||||
%package -n mingw64-pcre
|
||||
Summary: MinGW Windows pcre library
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n mingw64-pcre
|
||||
Cross compiled Perl-compatible regular expression library for use with mingw64.
|
||||
|
||||
PCRE has its own native API, but a set of "wrapper" functions that are based on
|
||||
the POSIX API are also supplied in the library libpcreposix. Note that this
|
||||
just provides a POSIX calling interface to PCRE: the regular expressions
|
||||
themselves still follow Perl syntax and semantics. The header file
|
||||
for the POSIX-style functions is called pcreposix.h.
|
||||
|
||||
%package -n mingw64-pcre-static
|
||||
Summary: Static version of the mingw64-pcre library
|
||||
Requires: mingw64-pcre = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
ExclusiveArch: %{ix86} x86_64
|
||||
|
||||
%description -n mingw64-pcre-static
|
||||
Static version of the mingw64-pcre library.
|
||||
|
||||
|
||||
%?mingw_debug_package
|
||||
|
||||
|
||||
%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
|
||||
|
||||
|
||||
%build
|
||||
%mingw_configure --enable-utf8 --enable-unicode-properties --enable-static --enable-pcre8 --enable-pcre16 --enable-pcre32
|
||||
%mingw_make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
%mingw_make DESTDIR=$RPM_BUILD_ROOT install
|
||||
|
||||
rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/doc/*
|
||||
rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/doc/*
|
||||
rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/man/*
|
||||
rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/man/*
|
||||
|
||||
# Drop all .la files
|
||||
find $RPM_BUILD_ROOT -name "*.la" -delete
|
||||
|
||||
|
||||
# Win32
|
||||
%files -n mingw32-pcre
|
||||
%doc AUTHORS COPYING LICENCE NEWS README ChangeLog
|
||||
%{mingw32_bindir}/pcre-config
|
||||
%{mingw32_bindir}/pcregrep.exe
|
||||
%{mingw32_bindir}/pcretest.exe
|
||||
%{mingw32_bindir}/libpcre-1.dll
|
||||
%{mingw32_bindir}/libpcre16-0.dll
|
||||
%{mingw32_bindir}/libpcre32-0.dll
|
||||
%{mingw32_bindir}/libpcrecpp-0.dll
|
||||
%{mingw32_bindir}/libpcreposix-0.dll
|
||||
%{mingw32_libdir}/libpcre.dll.a
|
||||
%{mingw32_libdir}/libpcre16.dll.a
|
||||
%{mingw32_libdir}/libpcre32.dll.a
|
||||
%{mingw32_libdir}/libpcrecpp.dll.a
|
||||
%{mingw32_libdir}/libpcreposix.dll.a
|
||||
%{mingw32_libdir}/pkgconfig/libpcre.pc
|
||||
%{mingw32_libdir}/pkgconfig/libpcre16.pc
|
||||
%{mingw32_libdir}/pkgconfig/libpcre32.pc
|
||||
%{mingw32_libdir}/pkgconfig/libpcrecpp.pc
|
||||
%{mingw32_libdir}/pkgconfig/libpcreposix.pc
|
||||
%{mingw32_includedir}/pcre.h
|
||||
%{mingw32_includedir}/pcre_scanner.h
|
||||
%{mingw32_includedir}/pcre_stringpiece.h
|
||||
%{mingw32_includedir}/pcrecpp.h
|
||||
%{mingw32_includedir}/pcrecpparg.h
|
||||
%{mingw32_includedir}/pcreposix.h
|
||||
|
||||
%files -n mingw32-pcre-static
|
||||
%{mingw32_libdir}/libpcre.a
|
||||
%{mingw32_libdir}/libpcre16.a
|
||||
%{mingw32_libdir}/libpcre32.a
|
||||
%{mingw32_libdir}/libpcrecpp.a
|
||||
%{mingw32_libdir}/libpcreposix.a
|
||||
|
||||
# Win64
|
||||
%files -n mingw64-pcre
|
||||
%doc AUTHORS COPYING LICENCE NEWS README ChangeLog
|
||||
%{mingw64_bindir}/pcre-config
|
||||
%{mingw64_bindir}/pcregrep.exe
|
||||
%{mingw64_bindir}/pcretest.exe
|
||||
%{mingw64_bindir}/libpcre-1.dll
|
||||
%{mingw64_bindir}/libpcre16-0.dll
|
||||
%{mingw64_bindir}/libpcre32-0.dll
|
||||
%{mingw64_bindir}/libpcrecpp-0.dll
|
||||
%{mingw64_bindir}/libpcreposix-0.dll
|
||||
%{mingw64_libdir}/libpcre.dll.a
|
||||
%{mingw64_libdir}/libpcre16.dll.a
|
||||
%{mingw64_libdir}/libpcre32.dll.a
|
||||
%{mingw64_libdir}/libpcrecpp.dll.a
|
||||
%{mingw64_libdir}/libpcreposix.dll.a
|
||||
%{mingw64_libdir}/pkgconfig/libpcre.pc
|
||||
%{mingw64_libdir}/pkgconfig/libpcre16.pc
|
||||
%{mingw64_libdir}/pkgconfig/libpcre32.pc
|
||||
%{mingw64_libdir}/pkgconfig/libpcrecpp.pc
|
||||
%{mingw64_libdir}/pkgconfig/libpcreposix.pc
|
||||
%{mingw64_includedir}/pcre.h
|
||||
%{mingw64_includedir}/pcre_scanner.h
|
||||
%{mingw64_includedir}/pcre_stringpiece.h
|
||||
%{mingw64_includedir}/pcrecpp.h
|
||||
%{mingw64_includedir}/pcrecpparg.h
|
||||
%{mingw64_includedir}/pcreposix.h
|
||||
|
||||
%files -n mingw64-pcre-static
|
||||
%{mingw64_libdir}/libpcre.a
|
||||
%{mingw64_libdir}/libpcre16.a
|
||||
%{mingw64_libdir}/libpcre32.a
|
||||
%{mingw64_libdir}/libpcrecpp.a
|
||||
%{mingw64_libdir}/libpcreposix.a
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.38-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.38-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.38-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Sat Feb 6 2016 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.38-1
|
||||
- Update to 8.38
|
||||
- Fixes various CVE's:
|
||||
RHBZ #1236660, #1249905, #1250947, #1256453, #1256454, #1287616,
|
||||
RHBZ #1287619, #1287626, #1287628, #1287631, #1287634, #1287640,
|
||||
RHBZ #1287642, #1287648, #1287650, #1287656, #1287658, #1287661,
|
||||
RHBZ #1287663, #1287668, #1287670, #1287673, #1287675, #1287692,
|
||||
RHBZ #1287694, #1287698, #1287700, #1287704, #1287706, #1287720,
|
||||
RHBZ #1287722
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 8.36-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.36-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Thu Dec 25 2014 Yaakov Selkowitz <yselkowi@redhat.com> - 8.36-1
|
||||
- Update to 8.36
|
||||
- Add upstream patches from main pcre package
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.34-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sat Jan 25 2014 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.34-1
|
||||
- Update to 8.34
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.33-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Thu Jul 11 2013 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.33-2
|
||||
- Added -static subpackages
|
||||
|
||||
* Wed Jul 3 2013 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.33-1
|
||||
- Update to 8.33
|
||||
- Added the configure arguments --enable-pcre8 --enable-pcre16 --enable-pcre32
|
||||
(the pcre16 one is needed by mingw-qt5-qtbase)
|
||||
- Use a more verbose filelist
|
||||
|
||||
* Sun Mar 24 2013 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.32-1
|
||||
- Update to 8.32
|
||||
|
||||
* Sun Jan 27 2013 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.31-2
|
||||
- Rebuild against mingw-gcc 4.8 (win64 uses SEH exceptions now)
|
||||
|
||||
* Wed Nov 21 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.31-1
|
||||
- Update to 8.31
|
||||
- Dropped patch as it doesn't have any effect on the mingw target
|
||||
|
||||
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.30-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Sat Apr 14 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.30-9
|
||||
- Update to 8.30
|
||||
- Added win64 support
|
||||
|
||||
* Fri Mar 09 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.10-8
|
||||
- Dropped .la files
|
||||
|
||||
* Wed Mar 07 2012 Kalev Lember <kalevlember@gmail.com> - 8.10-7
|
||||
- Renamed the source package to mingw-pcre (#801011)
|
||||
- Modernize the spec file
|
||||
- Use mingw macros without leading underscore
|
||||
|
||||
* Mon Feb 27 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.10-6
|
||||
- Rebuild against the mingw-w64 toolchain
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.10-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Fri Apr 22 2011 Kalev Lember <kalev@smartlink.ee> - 8.10-4
|
||||
- Rebuilt for pseudo-reloc version mismatch (#698827)
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.10-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Mon Sep 20 2010 Adam Stokes <astokes@redhat.com> - 8.10-2
|
||||
- Restore changes from the native package to pass package review process
|
||||
|
||||
* Wed Jul 21 2010 Ryan O'Hara <rohara@redhat.com> - 8.10-1
|
||||
- Initial spec file.
|
Loading…
Reference in New Issue
Block a user