Possessify high ASCII
This commit is contained in:
parent
13b47acdad
commit
83bd5c540a
450
pcre-8.30-possessify_high_ascii.patch
Normal file
450
pcre-8.30-possessify_high_ascii.patch
Normal file
@ -0,0 +1,450 @@
|
|||||||
|
Possessify high ASCII
|
||||||
|
|
||||||
|
r962 | ph10 | 2012-04-20 19:28:23 +0200 (Pá, 20 dub 2012) | 3 lines
|
||||||
|
Fix auto-possessifying bugs when PCRE_UCP is not set, but character tables
|
||||||
|
specify characters in the range 127-255 are letters, spaces, etc.
|
||||||
|
|
||||||
|
Petr Pisar: Changelog entries removed
|
||||||
|
|
||||||
|
Index: testdata/testoutput15
|
||||||
|
===================================================================
|
||||||
|
--- testdata/testoutput15 (revision 961)
|
||||||
|
+++ testdata/testoutput15 (revision 962)
|
||||||
|
@@ -910,4 +910,140 @@
|
||||||
|
First char = \x{c7}
|
||||||
|
Need char = \x{bf}
|
||||||
|
|
||||||
|
+/\w+\x{C4}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \w++
|
||||||
|
+ \x{c4}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+ 0: a\x{c4}
|
||||||
|
+
|
||||||
|
+/\w+\x{C4}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \w+
|
||||||
|
+ \x{c4}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+ 0: a\x{c4}\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \x{c4}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{C4}
|
||||||
|
+ 0: !\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W++
|
||||||
|
+ \x{c4}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{C4}
|
||||||
|
+ 0: !\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \x{a1}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{A1}
|
||||||
|
+ 0: !\x{a1}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \x{a1}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{A1}
|
||||||
|
+ 0: !\x{a1}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ X
|
||||||
|
+ \s++
|
||||||
|
+ \x{a0}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+ 0: X \x{a0}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ X
|
||||||
|
+ \s+
|
||||||
|
+ \x{a0}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+ 0: X \x{a0}\x{a0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \S+
|
||||||
|
+ \x{a0}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+ 0: X\x{a0}\x{a0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \S++
|
||||||
|
+ \x{a0}
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+ 0: X\x{a0}
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \x{a0}++
|
||||||
|
+ \s
|
||||||
|
+ !
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+ 0: \x{a0} !
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \x{a0}+
|
||||||
|
+ \s
|
||||||
|
+ !
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+ 0: \x{a0} !
|
||||||
|
+
|
||||||
|
/-- End of testinput15 --/
|
||||||
|
Index: testdata/testoutput18
|
||||||
|
===================================================================
|
||||||
|
--- testdata/testoutput18 (revision 961)
|
||||||
|
+++ testdata/testoutput18 (revision 962)
|
||||||
|
@@ -845,4 +845,140 @@
|
||||||
|
/<2F><><EFBFBD>/8
|
||||||
|
Failed: invalid UTF-16 string at offset 0
|
||||||
|
|
||||||
|
+/\w+\x{C4}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \w++
|
||||||
|
+ \xc4
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+ 0: a\x{c4}
|
||||||
|
+
|
||||||
|
+/\w+\x{C4}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \w+
|
||||||
|
+ \xc4
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+ 0: a\x{c4}\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \xc4
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{C4}
|
||||||
|
+ 0: !\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W++
|
||||||
|
+ \xc4
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{C4}
|
||||||
|
+ 0: !\x{c4}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \xa1
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{A1}
|
||||||
|
+ 0: !\x{a1}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \W+
|
||||||
|
+ \xa1
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ !\x{A1}
|
||||||
|
+ 0: !\x{a1}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ X
|
||||||
|
+ \s++
|
||||||
|
+ \xa0
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+ 0: X \x{a0}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ X
|
||||||
|
+ \s+
|
||||||
|
+ \xa0
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+ 0: X \x{a0}\x{a0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \S+
|
||||||
|
+ \xa0
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+ 0: X\x{a0}\x{a0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \S++
|
||||||
|
+ \xa0
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+ 0: X\x{a0}
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \xa0++
|
||||||
|
+ \s
|
||||||
|
+ !
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+ 0: \x{a0} !
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZT1
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ \xa0+
|
||||||
|
+ \s
|
||||||
|
+ !
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+ 0: \x{a0} !
|
||||||
|
+
|
||||||
|
/-- End of testinput18 --/
|
||||||
|
Index: testdata/testinput15
|
||||||
|
===================================================================
|
||||||
|
--- testdata/testinput15 (revision 961)
|
||||||
|
+++ testdata/testinput15 (revision 962)
|
||||||
|
@@ -277,4 +277,40 @@
|
||||||
|
|
||||||
|
/\777/8DZ
|
||||||
|
|
||||||
|
+/\w+\x{C4}/8BZ
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+
|
||||||
|
+/\w+\x{C4}/8BZT1
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZ
|
||||||
|
+ !\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZT1
|
||||||
|
+ !\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZ
|
||||||
|
+ !\x{A1}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZT1
|
||||||
|
+ !\x{A1}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZ
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZT1
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZ
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZT1
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZ
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZT1
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+
|
||||||
|
/-- End of testinput15 --/
|
||||||
|
Index: testdata/testinput18
|
||||||
|
===================================================================
|
||||||
|
--- testdata/testinput18 (revision 961)
|
||||||
|
+++ testdata/testinput18 (revision 962)
|
||||||
|
@@ -240,4 +240,40 @@
|
||||||
|
|
||||||
|
/<2F><><EFBFBD>/8
|
||||||
|
|
||||||
|
+/\w+\x{C4}/8BZ
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+
|
||||||
|
+/\w+\x{C4}/8BZT1
|
||||||
|
+ a\x{C4}\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZ
|
||||||
|
+ !\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{C4}/8BZT1
|
||||||
|
+ !\x{C4}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZ
|
||||||
|
+ !\x{A1}
|
||||||
|
+
|
||||||
|
+/\W+\x{A1}/8BZT1
|
||||||
|
+ !\x{A1}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZ
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/X\s+\x{A0}/8BZT1
|
||||||
|
+ X\x20\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZ
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\S+\x{A0}/8BZT1
|
||||||
|
+ X\x{A0}\x{A0}
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZ
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+
|
||||||
|
+/\x{a0}+\s!/8BZT1
|
||||||
|
+ \x{a0}\x20!
|
||||||
|
+
|
||||||
|
/-- End of testinput18 --/
|
||||||
|
Index: pcre_compile.c
|
||||||
|
===================================================================
|
||||||
|
--- pcre_compile.c (revision 961)
|
||||||
|
+++ pcre_compile.c (revision 962)
|
||||||
|
@@ -3132,22 +3132,22 @@
|
||||||
|
When it is set, \d etc. are converted into OP_(NOT_)PROP codes. */
|
||||||
|
|
||||||
|
case OP_DIGIT:
|
||||||
|
- return next > 127 || (cd->ctypes[next] & ctype_digit) == 0;
|
||||||
|
+ return next > 255 || (cd->ctypes[next] & ctype_digit) == 0;
|
||||||
|
|
||||||
|
case OP_NOT_DIGIT:
|
||||||
|
- return next <= 127 && (cd->ctypes[next] & ctype_digit) != 0;
|
||||||
|
+ return next <= 255 && (cd->ctypes[next] & ctype_digit) != 0;
|
||||||
|
|
||||||
|
case OP_WHITESPACE:
|
||||||
|
- return next > 127 || (cd->ctypes[next] & ctype_space) == 0;
|
||||||
|
+ return next > 255 || (cd->ctypes[next] & ctype_space) == 0;
|
||||||
|
|
||||||
|
case OP_NOT_WHITESPACE:
|
||||||
|
- return next <= 127 && (cd->ctypes[next] & ctype_space) != 0;
|
||||||
|
+ return next <= 255 && (cd->ctypes[next] & ctype_space) != 0;
|
||||||
|
|
||||||
|
case OP_WORDCHAR:
|
||||||
|
- return next > 127 || (cd->ctypes[next] & ctype_word) == 0;
|
||||||
|
+ return next > 255 || (cd->ctypes[next] & ctype_word) == 0;
|
||||||
|
|
||||||
|
case OP_NOT_WORDCHAR:
|
||||||
|
- return next <= 127 && (cd->ctypes[next] & ctype_word) != 0;
|
||||||
|
+ return next <= 255 && (cd->ctypes[next] & ctype_word) != 0;
|
||||||
|
|
||||||
|
case OP_HSPACE:
|
||||||
|
case OP_NOT_HSPACE:
|
||||||
|
@@ -3225,22 +3225,22 @@
|
||||||
|
switch(-next)
|
||||||
|
{
|
||||||
|
case ESC_d:
|
||||||
|
- return c > 127 || (cd->ctypes[c] & ctype_digit) == 0;
|
||||||
|
+ return c > 255 || (cd->ctypes[c] & ctype_digit) == 0;
|
||||||
|
|
||||||
|
case ESC_D:
|
||||||
|
- return c <= 127 && (cd->ctypes[c] & ctype_digit) != 0;
|
||||||
|
+ return c <= 255 && (cd->ctypes[c] & ctype_digit) != 0;
|
||||||
|
|
||||||
|
case ESC_s:
|
||||||
|
- return c > 127 || (cd->ctypes[c] & ctype_space) == 0;
|
||||||
|
+ return c > 255 || (cd->ctypes[c] & ctype_space) == 0;
|
||||||
|
|
||||||
|
case ESC_S:
|
||||||
|
- return c <= 127 && (cd->ctypes[c] & ctype_space) != 0;
|
||||||
|
+ return c <= 255 && (cd->ctypes[c] & ctype_space) != 0;
|
||||||
|
|
||||||
|
case ESC_w:
|
||||||
|
- return c > 127 || (cd->ctypes[c] & ctype_word) == 0;
|
||||||
|
+ return c > 255 || (cd->ctypes[c] & ctype_word) == 0;
|
||||||
|
|
||||||
|
case ESC_W:
|
||||||
|
- return c <= 127 && (cd->ctypes[c] & ctype_word) != 0;
|
||||||
|
+ return c <= 255 && (cd->ctypes[c] & ctype_word) != 0;
|
||||||
|
|
||||||
|
case ESC_h:
|
||||||
|
case ESC_H:
|
@ -2,7 +2,7 @@
|
|||||||
#%%global rcversion RC1
|
#%%global rcversion RC1
|
||||||
Name: pcre
|
Name: pcre
|
||||||
Version: 8.30
|
Version: 8.30
|
||||||
Release: %{?rcversion:0.}4%{?rcversion:.%rcversion}%{?dist}
|
Release: %{?rcversion:0.}5%{?rcversion:.%rcversion}%{?dist}
|
||||||
%global myversion %{version}%{?rcversion:-%rcversion}
|
%global myversion %{version}%{?rcversion:-%rcversion}
|
||||||
Summary: Perl-compatible regular expression library
|
Summary: Perl-compatible regular expression library
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -17,6 +17,8 @@ Patch1: pcre-8.30-refused_spelling_terminated.patch
|
|||||||
Patch2: pcre-8.30-Fix-look-behind-assertion-in-UTF-8-JIT-mode.patch
|
Patch2: pcre-8.30-Fix-look-behind-assertion-in-UTF-8-JIT-mode.patch
|
||||||
# Bug #813237, fixed in upstream after 8.30
|
# Bug #813237, fixed in upstream after 8.30
|
||||||
Patch3: pcre-8.30-possesify_sr.patch
|
Patch3: pcre-8.30-possesify_sr.patch
|
||||||
|
# bug #815217, fixed in upstream after 8.30
|
||||||
|
Patch4: pcre-8.30-possessify_high_ascii.patch
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
# New libtool to get rid of rpath
|
# New libtool to get rid of rpath
|
||||||
BuildRequires: autoconf, automake, libtool
|
BuildRequires: autoconf, automake, libtool
|
||||||
@ -58,6 +60,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
|
|||||||
%patch1 -p1 -b .terminated_typos
|
%patch1 -p1 -b .terminated_typos
|
||||||
%patch2 -p1 -b .lookbehind_assertion
|
%patch2 -p1 -b .lookbehind_assertion
|
||||||
%patch3 -p0 -b .possesify_sr
|
%patch3 -p0 -b .possesify_sr
|
||||||
|
%patch4 -p0 -b .possessify_high_ascii
|
||||||
# Because of rpath patch
|
# Because of rpath patch
|
||||||
libtoolize --copy --force && autoreconf
|
libtoolize --copy --force && autoreconf
|
||||||
# One contributor's name is non-UTF-8
|
# One contributor's name is non-UTF-8
|
||||||
@ -121,6 +124,9 @@ make check
|
|||||||
%{_mandir}/man1/pcretest.*
|
%{_mandir}/man1/pcretest.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Apr 23 2012 Petr Pisar <ppisar@redhat.com> - 8.30-5
|
||||||
|
- Possessify high ASCII (bug #815217)
|
||||||
|
|
||||||
* Fri Apr 20 2012 Petr Pisar <ppisar@redhat.com> - 8.30-4
|
* Fri Apr 20 2012 Petr Pisar <ppisar@redhat.com> - 8.30-4
|
||||||
- Possesify \s*\R (bug #813237)
|
- Possesify \s*\R (bug #813237)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user