| From 17b16354612fa15b0d385e0ac57d0e0b4494ddac Mon Sep 17 00:00:00 2001 |
| From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> |
| Date: Wed, 18 Jun 2014 16:31:32 +0000 |
| Subject: [PATCH] Fix bad starting data when char with more than one other case |
| follows circumflex in multiline UTF mode. |
| 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@1485 2f5784b3-3f2a-0410-8824-cb99058d5e15 |
| Signed-off-by: Petr Písař <ppisar@redhat.com> |
| |
| Petr Pisar: Ported to 8.32. |
| |
| Signed-off-by: Petr Písař <ppisar@redhat.com> |
| |
| pcre_compile.c | 3 ++- |
| testdata/testinput6 | 3 +++ |
| testdata/testinput7 | 3 +++ |
| testdata/testoutput6 | 4 ++++ |
| testdata/testoutput7 | 8 ++++++++ |
| 5 files changed, 20 insertions(+), 1 deletion(-) |
| |
| diff --git a/pcre_compile.c b/pcre_compile.c |
| index 5f0c8ed..7a2d7c7 100644 |
| |
| |
| @@ -3991,7 +3991,8 @@ for (;; ptr++) |
| previous = NULL; |
| if ((options & PCRE_MULTILINE) != 0) |
| { |
| - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
| + if (firstcharflags == REQ_UNSET) |
| + zerofirstcharflags = firstcharflags = REQ_NONE; |
| *code++ = OP_CIRCM; |
| } |
| else *code++ = OP_CIRC; |
| diff --git a/testdata/testinput6 b/testdata/testinput6 |
| index a4bfb3c..219a30e 100644 |
| |
| |
| @@ -1316,4 +1316,7 @@ |
| /\x{017f}+/8i |
| \x{0053}\x{0073}\x{017f} |
| |
| +/^s?c/mi8 |
| + scat |
| + |
| /-- End of testinput6 --/ |
| diff --git a/testdata/testinput7 b/testdata/testinput7 |
| index b265f1f..252d246 100644 |
| |
| |
| @@ -669,4 +669,7 @@ of case for anything other than the ASCII letters. --/ |
| /is{2}t/8i |
| iskt |
| |
| +/^s?c/mi8I |
| + scat |
| + |
| /-- End of testinput7 --/ |
| diff --git a/testdata/testoutput6 b/testdata/testoutput6 |
| index 0182746..090d23f 100644 |
| |
| |
| @@ -2134,4 +2134,8 @@ No match |
| \x{0053}\x{0073}\x{017f} |
| 0: Ss\x{17f} |
| |
| +/^s?c/mi8 |
| + scat |
| + 0: sc |
| + |
| /-- End of testinput6 --/ |
| diff --git a/testdata/testoutput7 b/testdata/testoutput7 |
| index 4f8b7b9..5f0f546 100644 |
| |
| |
| @@ -1470,4 +1470,12 @@ No match |
| iskt |
| No match |
| |
| +/^s?c/mi8I |
| +Capturing subpattern count = 0 |
| +Options: caseless multiline utf |
| +First char at start or follows newline |
| +Need char = 'c' (caseless) |
| + scat |
| + 0: sc |
| + |
| /-- End of testinput7 --/ |
| -- |
| 1.9.3 |
| |