Fix max/min quantifiers in ungreedy mode

This commit is contained in:
Petr Písař 2014-03-11 07:59:48 +01:00
parent e73104aed3
commit e4dd0bc521
2 changed files with 66 additions and 1 deletions

View File

@ -0,0 +1,59 @@
From 2c970c22d75c6b2fda321a918b607766a0c2d4f3 Mon Sep 17 00:00:00 2001
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
Date: Mon, 10 Mar 2014 16:28:54 +0000
Subject: [PATCH] Fix typo that caused max/min quantifiers in ungreedy mode not
to work.
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@1462 2f5784b3-3f2a-0410-8824-cb99058d5e15
Signed-off-by: Petr Písař <ppisar@redhat.com>
Petr Pisar: Ported to 8.34.
diff --git a/pcre_compile.c b/pcre_compile.c
index 180a46c..8a5b723 100644
--- a/pcre_compile.c
+++ b/pcre_compile.c
@@ -3642,7 +3642,7 @@ for (;;)
break;
case OP_MINUPTO:
- *code += OP_MINUPTO - OP_UPTO;
+ *code += OP_POSUPTO - OP_MINUPTO;
break;
}
}
diff --git a/testdata/testinput2 b/testdata/testinput2
index 71df1a8..da6e614 100644
--- a/testdata/testinput2
+++ b/testdata/testinput2
@@ -907,6 +907,9 @@
/\U/I
+/a{1,3}b/U
+ ab
+
/[/I
/[a-/I
diff --git a/testdata/testoutput2 b/testdata/testoutput2
index e9d3265..b6da7df 100644
--- a/testdata/testoutput2
+++ b/testdata/testoutput2
@@ -3178,6 +3178,10 @@ Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
/\U/I
Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
+/a{1,3}b/U
+ ab
+ 0: ab
+
/[/I
Failed: missing terminating ] for character class at offset 1
--
1.8.5.3

View File

@ -2,7 +2,7 @@
#%%global rcversion RC1
Name: pcre
Version: 8.34
Release: %{?rcversion:0.}3%{?rcversion:.%rcversion}%{?dist}
Release: %{?rcversion:0.}4%{?rcversion:.%rcversion}%{?dist}
%global myversion %{version}%{?rcversion:-%rcversion}
Summary: Perl-compatible regular expression library
Group: System Environment/Libraries
@ -15,6 +15,8 @@ Patch0: pcre-8.21-multilib.patch
Patch1: pcre-8.32-refused_spelling_terminated.patch
# Fix jitted range check, in upstream after 8.34, bug #1048097
Patch2: pcre-8.34-Fix-range-check-in-JIT-path.patch
# Fix max/min quantifiers in ungreedy mode, in upstream after 8.34, bug #1074500
Patch3: pcre-8.34-Fix-typo-that-caused-max-min-quantifiers-in-ungreedy.patch
BuildRequires: readline-devel
# New libtool to get rid of rpath
BuildRequires: autoconf, automake, libtool
@ -57,6 +59,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
%patch0 -p1 -b .multilib
%patch1 -p1 -b .terminated_typos
%patch2 -p1 -b .jitted_range_check
%patch3 -p1 -b .minmax_quantifier
# Because of rpath patch
libtoolize --copy --force && autoreconf -vif
# One contributor's name is non-UTF-8
@ -124,6 +127,9 @@ make check
%{_mandir}/man1/pcretest.*
%changelog
* Tue Mar 11 2014 Petr Pisar <ppisar@redhat.com> - 8.34-4
- Fix max/min quantifiers in ungreedy mode (bug #1074500)
* Tue Jan 21 2014 Dan Horák <dan[at]danny.cz> - 8.34-3
- enlarge stack for tests on s390x