diff --git a/.gitignore b/.gitignore index c8fe373..8c916ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ pcre-8.10.tar.bz2 /pcre-8.11.tar.bz2 /pcre-8.12.tar.bz2 +/pcre-8.13.tar.bz2 diff --git a/pcre-8.12-caseless_reference.patch b/pcre-8.12-caseless_reference.patch deleted file mode 100644 index 1ffd957..0000000 --- a/pcre-8.12-caseless_reference.patch +++ /dev/null @@ -1,552 +0,0 @@ -r595 | ph10 | 2011-05-02 12:33:29 +0200 (Po, 02 kvě 2011) | 3 lines -Fix problems with caseless reference matching in UTF-8 mode when the -upper/lower case characters have different lengths. - -and - -r597 | ph10 | 2011-05-02 19:08:52 +0200 (Po, 02 kvě 2011) | 2 lines -Complete incomplete fix for UTF-8 caseless references of different lengths. - -http://bugs.exim.org/show_bug.cgi?id=1074 - -Petr Pisar: Changelog and comment changes removed. - -Index: testdata/testoutput12 -=================================================================== ---- testdata/testoutput12 (revision 594) -+++ testdata/testoutput12 (revision 595) -@@ -1176,4 +1176,64 @@ - End - ------------------------------------------------------------------ - -+/-- These behaved oddly in Perl, so they are kept in this test --/ -+ -+/(\x{23a}\x{23a}\x{23a})?\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} -+No match -+ -+/(ȺȺȺ)?\1/8i -+ ȺȺȺⱥⱥ -+No match -+ -+/(\x{23a}\x{23a}\x{23a})?\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 1: \x{23a}\x{23a}\x{23a} -+ -+/(ȺȺȺ)?\1/8i -+ ȺȺȺⱥⱥⱥ -+ 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 1: \x{23a}\x{23a}\x{23a} -+ -+/(\x{23a}\x{23a}\x{23a})\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} -+No match -+ -+/(ȺȺȺ)\1/8i -+ ȺȺȺⱥⱥ -+No match -+ -+/(\x{23a}\x{23a}\x{23a})\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 1: \x{23a}\x{23a}\x{23a} -+ -+/(ȺȺȺ)\1/8i -+ ȺȺȺⱥⱥⱥ -+ 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ 1: \x{23a}\x{23a}\x{23a} -+ -+/(\x{2c65}\x{2c65})\1/8i -+ \x{2c65}\x{2c65}\x{23a}\x{23a} -+ 0: \x{2c65}\x{2c65}\x{23a}\x{23a} -+ 1: \x{2c65}\x{2c65} -+ -+/(ⱥⱥ)\1/8i -+ ⱥⱥȺȺ -+ 0: \x{2c65}\x{2c65}\x{23a}\x{23a} -+ 1: \x{2c65}\x{2c65} -+ -+/(\x{23a}\x{23a}\x{23a})\1Y/8i -+ X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ -+ 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y -+ 1: \x{23a}\x{23a}\x{23a} -+ -+/(\x{2c65}\x{2c65})\1Y/8i -+ X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ -+ 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y -+ 1: \x{2c65}\x{2c65} -+ -+/-- --/ -+ - /-- End of testinput12 --/ -Index: testdata/testinput12 -=================================================================== ---- testdata/testinput12 (revision 594) -+++ testdata/testinput12 (revision 595) -@@ -503,4 +503,44 @@ - - /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ - -+/-- These behaved oddly in Perl, so they are kept in this test --/ -+ -+/(\x{23a}\x{23a}\x{23a})?\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} -+ -+/(ȺȺȺ)?\1/8i -+ ȺȺȺⱥⱥ -+ -+/(\x{23a}\x{23a}\x{23a})?\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ -+/(ȺȺȺ)?\1/8i -+ ȺȺȺⱥⱥⱥ -+ -+/(\x{23a}\x{23a}\x{23a})\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} -+ -+/(ȺȺȺ)\1/8i -+ ȺȺȺⱥⱥ -+ -+/(\x{23a}\x{23a}\x{23a})\1/8i -+ \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} -+ -+/(ȺȺȺ)\1/8i -+ ȺȺȺⱥⱥⱥ -+ -+/(\x{2c65}\x{2c65})\1/8i -+ \x{2c65}\x{2c65}\x{23a}\x{23a} -+ -+/(ⱥⱥ)\1/8i -+ ⱥⱥȺȺ -+ -+/(\x{23a}\x{23a}\x{23a})\1Y/8i -+ X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ -+ -+/(\x{2c65}\x{2c65})\1Y/8i -+ X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ -+ -+/-- --/ -+ - /-- End of testinput12 --/ -Index: pcre_exec.c -=================================================================== ---- pcre_exec.c (revision 594) -+++ pcre_exec.c (revision 595) -@@ -132,24 +132,27 @@ - * Match a back-reference * - *************************************************/ - --/* If a back reference hasn't been set, the length that is passed is greater --than the number of characters left in the string, so the match fails. -+/* Normally, if a back reference hasn't been set, the length that is passed is -+negative, so the match always fails. However, in JavaScript compatibility mode, -+the length passed is zero. Note that in caseless UTF-8 mode, the number of -+subject bytes matched may be different to the number of reference bytes. - - Arguments: - offset index into the offset vector -- eptr points into the subject -- length length to be matched -+ eptr pointer into the subject -+ length length of reference to be matched (number of bytes) - md points to match data block - ims the ims flags - --Returns: TRUE if matched -+Returns: < 0 if not matched, otherwise the number of subject bytes matched - */ - --static BOOL -+static int - match_ref(int offset, register USPTR eptr, int length, match_data *md, - unsigned long int ims) - { --USPTR p = md->start_subject + md->offset_vector[offset]; -+USPTR eptr_start = eptr; -+register USPTR p = md->start_subject + md->offset_vector[offset]; - - #ifdef PCRE_DEBUG - if (eptr >= md->end_subject) -@@ -164,9 +167,9 @@ - printf("\n"); - #endif - --/* Always fail if not enough characters left */ -+/* Always fail if reference not set (and not JavaScript compatible). */ - --if (length > md->end_subject - eptr) return FALSE; -+if (length < 0) return -1; - - /* Separate the caseless case for speed. In UTF-8 mode we can only do this - properly if Unicode properties are supported. Otherwise, we can check only -@@ -178,13 +181,21 @@ - #ifdef SUPPORT_UCP - if (md->utf8) - { -- USPTR endptr = eptr + length; -- while (eptr < endptr) -+ /* Match characters up to the end of the reference. NOTE: the number of -+ bytes matched may differ, because there are some characters whose upper and -+ lower case versions code as different numbers of bytes. For example, U+023A -+ (2 bytes in UTF-8) is the upper case version of U+2C65 (3 bytes in UTF-8); -+ a sequence of 3 of the former uses 6 bytes, as does a sequence of two of -+ the latter. It is important, therefore, to check the length along the -+ reference, not along the subject (earlier code did this wrong). */ -+ -+ USPTR endptr = p + length; -+ while (p < endptr) - { - int c, d; - GETCHARINC(c, eptr); - GETCHARINC(d, p); -- if (c != d && c != UCD_OTHERCASE(d)) return FALSE; -+ if (c != d && c != UCD_OTHERCASE(d)) return -1; - } - } - else -@@ -195,16 +206,16 @@ - is no UCP support. */ - - while (length-- > 0) -- { if (md->lcc[*p++] != md->lcc[*eptr++]) return FALSE; } -+ { if (md->lcc[*p++] != md->lcc[*eptr++]) return -1; } - } - - /* In the caseful case, we can just compare the bytes, whether or not we - are in UTF-8 mode. */ - - else -- { while (length-- > 0) if (*p++ != *eptr++) return FALSE; } -+ { while (length-- > 0) if (*p++ != *eptr++) return -1; } - --return TRUE; -+return eptr - eptr_start; - } - - -@@ -2252,129 +2263,129 @@ - loops). */ - - case OP_REF: -- { -- offset = GET2(ecode, 1) << 1; /* Doubled ref number */ -- ecode += 3; -+ offset = GET2(ecode, 1) << 1; /* Doubled ref number */ -+ ecode += 3; - -- /* If the reference is unset, there are two possibilities: -+ /* If the reference is unset, there are two possibilities: - -- (a) In the default, Perl-compatible state, set the length to be longer -- than the amount of subject left; this ensures that every attempt at a -- match fails. We can't just fail here, because of the possibility of -- quantifiers with zero minima. -+ (a) In the default, Perl-compatible state, set the length negative; -+ this ensures that every attempt at a match fails. We can't just fail -+ here, because of the possibility of quantifiers with zero minima. - -- (b) If the JavaScript compatibility flag is set, set the length to zero -- so that the back reference matches an empty string. -+ (b) If the JavaScript compatibility flag is set, set the length to zero -+ so that the back reference matches an empty string. - -- Otherwise, set the length to the length of what was matched by the -- referenced subpattern. */ -+ Otherwise, set the length to the length of what was matched by the -+ referenced subpattern. */ - -- if (offset >= offset_top || md->offset_vector[offset] < 0) -- length = (md->jscript_compat)? 0 : (int)(md->end_subject - eptr + 1); -- else -- length = md->offset_vector[offset+1] - md->offset_vector[offset]; -+ if (offset >= offset_top || md->offset_vector[offset] < 0) -+ length = (md->jscript_compat)? 0 : -1; -+ else -+ length = md->offset_vector[offset+1] - md->offset_vector[offset]; - -- /* Set up for repetition, or handle the non-repeated case */ -+ /* Set up for repetition, or handle the non-repeated case */ - -- switch (*ecode) -- { -- case OP_CRSTAR: -- case OP_CRMINSTAR: -- case OP_CRPLUS: -- case OP_CRMINPLUS: -- case OP_CRQUERY: -- case OP_CRMINQUERY: -- c = *ecode++ - OP_CRSTAR; -- minimize = (c & 1) != 0; -- min = rep_min[c]; /* Pick up values from tables; */ -- max = rep_max[c]; /* zero for max => infinity */ -- if (max == 0) max = INT_MAX; -- break; -+ switch (*ecode) -+ { -+ case OP_CRSTAR: -+ case OP_CRMINSTAR: -+ case OP_CRPLUS: -+ case OP_CRMINPLUS: -+ case OP_CRQUERY: -+ case OP_CRMINQUERY: -+ c = *ecode++ - OP_CRSTAR; -+ minimize = (c & 1) != 0; -+ min = rep_min[c]; /* Pick up values from tables; */ -+ max = rep_max[c]; /* zero for max => infinity */ -+ if (max == 0) max = INT_MAX; -+ break; - -- case OP_CRRANGE: -- case OP_CRMINRANGE: -- minimize = (*ecode == OP_CRMINRANGE); -- min = GET2(ecode, 1); -- max = GET2(ecode, 3); -- if (max == 0) max = INT_MAX; -- ecode += 5; -- break; -+ case OP_CRRANGE: -+ case OP_CRMINRANGE: -+ minimize = (*ecode == OP_CRMINRANGE); -+ min = GET2(ecode, 1); -+ max = GET2(ecode, 3); -+ if (max == 0) max = INT_MAX; -+ ecode += 5; -+ break; - -- default: /* No repeat follows */ -- if (!match_ref(offset, eptr, length, md, ims)) -- { -- CHECK_PARTIAL(); -- MRRETURN(MATCH_NOMATCH); -- } -- eptr += length; -- continue; /* With the main loop */ -+ default: /* No repeat follows */ -+ if ((length = match_ref(offset, eptr, length, md, ims)) < 0) -+ { -+ CHECK_PARTIAL(); -+ MRRETURN(MATCH_NOMATCH); - } -+ eptr += length; -+ continue; /* With the main loop */ -+ } - -- /* If the length of the reference is zero, just continue with the -- main loop. */ -+ /* Handle repeated back references. If the length of the reference is -+ zero, just continue with the main loop. */ - -- if (length == 0) continue; -+ if (length == 0) continue; - -- /* First, ensure the minimum number of matches are present. We get back -- the length of the reference string explicitly rather than passing the -- address of eptr, so that eptr can be a register variable. */ -+ /* First, ensure the minimum number of matches are present. We get back -+ the length of the reference string explicitly rather than passing the -+ address of eptr, so that eptr can be a register variable. */ - -- for (i = 1; i <= min; i++) -+ for (i = 1; i <= min; i++) -+ { -+ int slength; -+ if ((slength = match_ref(offset, eptr, length, md, ims)) < 0) - { -- if (!match_ref(offset, eptr, length, md, ims)) -- { -- CHECK_PARTIAL(); -- MRRETURN(MATCH_NOMATCH); -- } -- eptr += length; -+ CHECK_PARTIAL(); -+ MRRETURN(MATCH_NOMATCH); - } -+ eptr += slength; -+ } - -- /* If min = max, continue at the same level without recursion. -- They are not both allowed to be zero. */ -+ /* If min = max, continue at the same level without recursion. -+ They are not both allowed to be zero. */ - -- if (min == max) continue; -+ if (min == max) continue; - -- /* If minimizing, keep trying and advancing the pointer */ -+ /* If minimizing, keep trying and advancing the pointer */ - -- if (minimize) -+ if (minimize) -+ { -+ for (fi = min;; fi++) - { -- for (fi = min;; fi++) -+ int slength; -+ RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM14); -+ if (rrc != MATCH_NOMATCH) RRETURN(rrc); -+ if (fi >= max) MRRETURN(MATCH_NOMATCH); -+ if ((slength = match_ref(offset, eptr, length, md, ims)) < 0) - { -- RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM14); -- if (rrc != MATCH_NOMATCH) RRETURN(rrc); -- if (fi >= max) MRRETURN(MATCH_NOMATCH); -- if (!match_ref(offset, eptr, length, md, ims)) -- { -- CHECK_PARTIAL(); -- MRRETURN(MATCH_NOMATCH); -- } -- eptr += length; -+ CHECK_PARTIAL(); -+ MRRETURN(MATCH_NOMATCH); - } -- /* Control never gets here */ -+ eptr += slength; - } -+ /* Control never gets here */ -+ } - -- /* If maximizing, find the longest string and work backwards */ -+ /* If maximizing, find the longest string and work backwards */ - -- else -+ else -+ { -+ pp = eptr; -+ for (i = min; i < max; i++) - { -- pp = eptr; -- for (i = min; i < max; i++) -+ int slength; -+ if ((slength = match_ref(offset, eptr, length, md, ims)) < 0) - { -- if (!match_ref(offset, eptr, length, md, ims)) -- { -- CHECK_PARTIAL(); -- break; -- } -- eptr += length; -+ CHECK_PARTIAL(); -+ break; - } -- while (eptr >= pp) -- { -- RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM15); -- if (rrc != MATCH_NOMATCH) RRETURN(rrc); -- eptr -= length; -- } -- MRRETURN(MATCH_NOMATCH); -+ eptr += slength; - } -+ while (eptr >= pp) -+ { -+ RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM15); -+ if (rrc != MATCH_NOMATCH) RRETURN(rrc); -+ eptr -= length; -+ } -+ MRRETURN(MATCH_NOMATCH); - } - /* Control never gets here */ - -Index: testdata/testinput1 -=================================================================== ---- testdata/testinput1 (revision 596) -+++ testdata/testinput1 (revision 597) -@@ -4079,4 +4079,10 @@ - /^\c/ - ? - -+/(abc)\1/i -+ abc -+ -+/(abc)\1/ -+ abc -+ - /-- End of testinput1 --/ -Index: testdata/testoutput1 -=================================================================== ---- testdata/testoutput1 (revision 596) -+++ testdata/testoutput1 (revision 597) -@@ -6666,4 +6666,12 @@ - ? - 0: ? - -+/(abc)\1/i -+ abc -+No match -+ -+/(abc)\1/ -+ abc -+No match -+ - /-- End of testinput1 --/ -Index: testdata/testinput4 -=================================================================== ---- testdata/testinput4 (revision 596) -+++ testdata/testinput4 (revision 597) -@@ -644,4 +644,10 @@ - /A*/g8 - AAB\x{123}BAA - -+/(abc)\1/8i -+ abc -+ -+/(abc)\1/8 -+ abc -+ - /-- End of testinput4 --/ -Index: testdata/testoutput4 -=================================================================== ---- testdata/testoutput4 (revision 596) -+++ testdata/testoutput4 (revision 597) -@@ -1128,4 +1128,12 @@ - 0: AA - 0: - -+/(abc)\1/8i -+ abc -+No match -+ -+/(abc)\1/8 -+ abc -+No match -+ - /-- End of testinput4 --/ -Index: pcre_exec.c -=================================================================== ---- pcre_exec.c (revision 596) -+++ pcre_exec.c (revision 597) -@@ -193,6 +193,7 @@ - while (p < endptr) - { - int c, d; -+ if (eptr >= md->end_subject) return -1; - GETCHARINC(c, eptr); - GETCHARINC(d, p); - if (c != d && c != UCD_OTHERCASE(d)) return -1; -@@ -204,16 +205,21 @@ - - /* The same code works when not in UTF-8 mode and in UTF-8 mode when there - is no UCP support. */ -- -- while (length-- > 0) -- { if (md->lcc[*p++] != md->lcc[*eptr++]) return -1; } -+ { -+ if (eptr + length > md->end_subject) return -1; -+ while (length-- > 0) -+ { if (md->lcc[*p++] != md->lcc[*eptr++]) return -1; } -+ } - } - - /* In the caseful case, we can just compare the bytes, whether or not we - are in UTF-8 mode. */ - - else -- { while (length-- > 0) if (*p++ != *eptr++) return -1; } -+ { -+ if (eptr + length > md->end_subject) return -1; -+ while (length-- > 0) if (*p++ != *eptr++) return -1; -+ } - - return eptr - eptr_start; - } diff --git a/pcre-8.12-manual_typos.patch b/pcre-8.12-manual_typos.patch deleted file mode 100644 index 9a6cfef..0000000 --- a/pcre-8.12-manual_typos.patch +++ /dev/null @@ -1,104 +0,0 @@ -r599 | ph10 | 2011-05-07 18:09:06 +0200 (So, 07 kvě 2011) | 2 lines - -Fix typos in pcregrep and pcretest man pages. -http://bugs.exim.org/show_bug.cgi?id=1081 - -Petr Pisar: Changelog lines removed - - -Index: doc/pcretest.1 -=================================================================== ---- doc/pcretest.1 (revision 598) -+++ doc/pcretest.1 (revision 599) -@@ -25,8 +25,8 @@ - .rs - .TP 10 - \fB-b\fP --Behave as if each regex has the \fB/B\fP (show bytecode) modifier; the internal --form is output after compilation. -+Behave as if each regex has the \fB/B\fP (show byte code) modifier; the -+internal form is output after compilation. - .TP 10 - \fB-C\fP - Output the version number of the PCRE library, and all available information -@@ -76,7 +76,7 @@ - Do not output the version number of \fBpcretest\fP at the start of execution. - .TP 10 - \fB-S\fP \fIsize\fP --On Unix-like systems, set the size of the runtime stack to \fIsize\fP -+On Unix-like systems, set the size of the run-time stack to \fIsize\fP - megabytes. - .TP 10 - \fB-t\fP -@@ -154,7 +154,7 @@ - A pattern may be followed by any number of modifiers, which are mostly single - characters. Following Perl usage, these are referred to below as, for example, - "the \fB/i\fP modifier", even though the delimiter of the pattern need not --always be a slash, and no slash is used when writing modifiers. Whitespace may -+always be a slash, and no slash is used when writing modifiers. White space may - appear between the final pattern delimiter and the first modifier, and between - the modifiers themselves. - .P -@@ -327,8 +327,8 @@ - .rs - .sp - Before each data line is passed to \fBpcre_exec()\fP, leading and trailing --whitespace is removed, and it is then scanned for \e escapes. Some of these are --pretty esoteric features, intended for checking out some of the more -+white space is removed, and it is then scanned for \e escapes. Some of these -+are pretty esoteric features, intended for checking out some of the more - complicated features of PCRE. If you are just testing "ordinary" regular - expressions, you probably don't need any of these. The following escapes are - recognized: -@@ -336,7 +336,7 @@ - \ea alarm (BEL, \ex07) - \eb backspace (\ex08) - \ee escape (\ex27) -- \ef formfeed (\ex0c) -+ \ef form feed (\ex0c) - \en newline (\ex0a) - .\" JOIN - \eqdd set the PCRE_MATCH_LIMIT limit to dd -@@ -712,7 +712,7 @@ - .rs - .sp - The facilities described in this section are not available when the POSIX --inteface to PCRE is being used, that is, when the \fB/P\fP pattern modifier is -+interface to PCRE is being used, that is, when the \fB/P\fP pattern modifier is - specified. - .P - When the POSIX interface is not in use, you can cause \fBpcretest\fP to write a -@@ -736,7 +736,7 @@ - follows immediately after the compiled pattern. After writing the file, - \fBpcretest\fP expects to read a new pattern. - .P --A saved pattern can be reloaded into \fBpcretest\fP by specifing < and a file -+A saved pattern can be reloaded into \fBpcretest\fP by specifying < and a file - name instead of a pattern. The name of the file must not contain a < character, - as otherwise \fBpcretest\fP will interpret the line as a pattern delimited by < - characters. -Index: doc/pcregrep.1 -=================================================================== ---- doc/pcregrep.1 (revision 598) -+++ doc/pcregrep.1 (revision 599) -@@ -356,7 +356,7 @@ - which recognizes any of the preceding three types, and an "any" convention, in - which any Unicode line ending sequence is assumed to end a line. The Unicode - sequences are the three just mentioned, plus VT (vertical tab, U+000B), FF --(formfeed, U+000C), NEL (next line, U+0085), LS (line separator, U+2028), and -+(form feed, U+000C), NEL (next line, U+0085), LS (line separator, U+2028), and - PS (paragraph separator, U+2029). - .sp - When the PCRE library is built, a default line-ending sequence is specified. -@@ -530,9 +530,9 @@ - .rs - .sp - Exit status is 0 if any matches were found, 1 if no matches were found, and 2 --for syntax errors and non-existent or inacessible files (even if matches were -+for syntax errors and non-existent or inaccessible files (even if matches were - found in other files) or too many matching errors. Using the \fB-s\fP option to --suppress error messages about inaccessble files does not affect the return -+suppress error messages about inaccessible files does not affect the return - code. - . - . diff --git a/pcre.spec b/pcre.spec index 5e6b42e..2d20609 100644 --- a/pcre.spec +++ b/pcre.spec @@ -1,18 +1,14 @@ Name: pcre -Version: 8.12 -Release: 4%{?dist} +Version: 8.13 +Release: 1%{?dist} Summary: Perl-compatible regular expression library Group: System Environment/Libraries License: BSD URL: http://www.pcre.org/ Source: ftp://ftp.csx.cam.ac.uk/pub/software/programming/%{name}/%{name}-%{version}.tar.bz2 Patch0: pcre-8.10-multilib.patch -# In upstream, bugs #675476, #675477 -Patch1: pcre-8.12-manual_typos.patch # Refused by upstream, bug #675477 -Patch2: pcre-8.12-refused_spelling_terminated.patch -# In upstream, bug #702623 -Patch3: pcre-8.12-caseless_reference.patch +Patch1: pcre-8.12-refused_spelling_terminated.patch # New libtool to get rid of rpath BuildRequires: autoconf, automake, libtool @@ -44,9 +40,7 @@ Library for static linking for %{name}. # Get rid of rpath %patch0 -p1 -b .multilib libtoolize --copy --force && autoreconf -%patch1 -p0 -b .manual_typos -%patch2 -p1 -b .terminated_typos -%patch3 -p0 -b .caseless_reference +%patch1 -p1 -b .terminated_typos # One contributor's name is non-UTF-8 for F in ChangeLog; do iconv -f latin1 -t utf8 "$F" >"${F}.utf8" @@ -106,6 +100,12 @@ make check %doc COPYING LICENCE %changelog +* Thu Aug 18 2011 Petr Pisar - 8.13-1 +- 8.13 bump: Bug-fix version, Unicode tables updated to 6.0.0, new pcregrep + option --buffer-size to adjust to long lines, new feature is passing of + *MARK information to callouts. +- Should fix crash back-tracking over unicode sequence (bug #691319) + * Mon May 09 2011 Petr Pisar - 8.12-4 - Fix caseless reference matching in UTF-8 mode when the upper/lower case characters have different lengths (bug #702623) diff --git a/sources b/sources index 195a6a9..f27b004 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f14a9fef3c92f3fc6c5ac92d7a2c7eb3 pcre-8.12.tar.bz2 +5e595edbcded141813fa1a10dbce05cb pcre-8.13.tar.bz2