Change 33667 by [EMAIL PROTECTED] on 2008/04/11 12:17:38
Subject: Re: [perl #52672] regexp failure: (?=) turns into OPFAIL
From: "=?UTF-8?Q?=C3=86var_Arnfj=C3=B6r=C3=B0_Bjarmason?=" <[EMAIL
PROTECTED]>
Date: Thu, 10 Apr 2008 00:38:52 +0000
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/regcomp.c#653 edit
... //depot/perl/t/op/re_tests#130 edit
Differences ...
==== //depot/perl/regcomp.c#653 (text) ====
Index: perl/regcomp.c
--- perl/regcomp.c#652~33370~ 2008-02-25 09:42:38.000000000 -0800
+++ perl/regcomp.c 2008-04-11 05:17:38.000000000 -0700
@@ -5691,6 +5691,8 @@
RExC_seen |= REG_SEEN_LOOKBEHIND;
RExC_parse++;
case '=': /* (?=...) */
+ RExC_seen_zerolen++;
+ break;
case '!': /* (?!...) */
RExC_seen_zerolen++;
if (*RExC_parse == ')') {
==== //depot/perl/t/op/re_tests#130 (text) ====
Index: perl/t/op/re_tests
--- perl/t/op/re_tests#129~33324~ 2008-02-17 07:39:22.000000000 -0800
+++ perl/t/op/re_tests 2008-04-11 05:17:38.000000000 -0700
@@ -414,6 +414,7 @@
'(abc)\1'i ABCABC y $1 ABC
'([a-c]*)\1'i ABCABC y $1 ABC
a(?!b). abad y $& ad
+(?=)a a y $& a
a(?=d). abad y $& ad
a(?=c|d). abad y $& ad
a(?:b|c|d)(.) ace y $1 e
End of Patch.