85 lines
2.0 KiB
Diff
85 lines
2.0 KiB
Diff
From ad81574f3cd7aef3e7d9106d6fa86901556b1731 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
|
Date: Tue, 15 Nov 2011 16:34:01 +0100
|
|
Subject: [PATCH] Caseless matching of backreferences with fixed length
|
|
repetitions was broken.
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
From development SVN tree:
|
|
|
|
r746 | ph10 | 2011-11-15 16:07:02 +0100 (Út, 15 lis 2011) | 2 lines
|
|
|
|
6. Lookbehinds such as (?<=a{2}b) that contained a fixed repetition were
|
|
erroneously being rejected as "not fixed length" if PCRE_CASELESS was set.
|
|
This bug was probably introduced by change 9 of 8.13.
|
|
|
|
Petr Pisar: Changelog entry removed.
|
|
See <https://lists.exim.org/lurker/thread/20111115.150810.f771a73e.en.html>.
|
|
---
|
|
pcre_compile.c | 1 +
|
|
testdata/testinput1 | 10 ++++++++++
|
|
testdata/testoutput1 | 16 ++++++++++++++++
|
|
3 files changed, 27 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/pcre_compile.c b/pcre_compile.c
|
|
index 3fc7c82..588e981 100644
|
|
--- a/pcre_compile.c
|
|
+++ b/pcre_compile.c
|
|
@@ -1595,6 +1595,7 @@ for (;;)
|
|
need to skip over a multibyte character in UTF8 mode. */
|
|
|
|
case OP_EXACT:
|
|
+ case OP_EXACTI:
|
|
branchlength += GET2(cc,1);
|
|
cc += 4;
|
|
#ifdef SUPPORT_UTF8
|
|
diff --git a/testdata/testinput1 b/testdata/testinput1
|
|
index c913ee4..aa9ce42 100644
|
|
--- a/testdata/testinput1
|
|
+++ b/testdata/testinput1
|
|
@@ -4251,4 +4251,14 @@
|
|
/[:a]xxx[b:]/
|
|
:xxx:
|
|
|
|
+/(?<=a{2})b/i
|
|
+ xaabc
|
|
+ ** Failers
|
|
+ xabc
|
|
+
|
|
+/(?<!a{2})b/i
|
|
+ xabc
|
|
+ ** Failers
|
|
+ xaabc
|
|
+
|
|
/-- End of testinput1 --/
|
|
diff --git a/testdata/testoutput1 b/testdata/testoutput1
|
|
index 030f04f..5a025e2 100644
|
|
--- a/testdata/testoutput1
|
|
+++ b/testdata/testoutput1
|
|
@@ -6952,4 +6952,20 @@ No match
|
|
:xxx:
|
|
0: :xxx:
|
|
|
|
+/(?<=a{2})b/i
|
|
+ xaabc
|
|
+ 0: b
|
|
+ ** Failers
|
|
+No match
|
|
+ xabc
|
|
+No match
|
|
+
|
|
+/(?<!a{2})b/i
|
|
+ xabc
|
|
+ 0: b
|
|
+ ** Failers
|
|
+No match
|
|
+ xaabc
|
|
+No match
|
|
+
|
|
/-- End of testinput1 --/
|
|
--
|
|
1.7.6.4
|
|
|