summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYves Orton <demerphq@gmail.com>2006-11-29 17:18:34 +0100
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-11-29 15:26:00 +0000
commit99ed40ffbc554c06cacea00522b9ea0d8190ec46 (patch)
treed821253f9c01c944123b33ea1df4cf694e3ae708
parent4e87bc57f9548c4b32659bff1ec0ab2f84bc490d (diff)
downloadperl-99ed40ffbc554c06cacea00522b9ea0d8190ec46.tar.gz
Re: Fix \k<foo> preceded by literal
Message-ID: <9b18b3110611290718o685a07ddja39f595ed97c231a@mail.gmail.com> p4raw-id: //depot/perl@29420
-rw-r--r--regcomp.c1
-rw-r--r--regcomp.h5
-rw-r--r--t/op/re_tests6
3 files changed, 11 insertions, 1 deletions
diff --git a/regcomp.c b/regcomp.c
index 3fe556142e..30b066050d 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -6472,6 +6472,7 @@ tryagain:
case 'P':
case 'N':
case 'R':
+ case 'k':
--p;
goto loopdone;
case 'n':
diff --git a/regcomp.h b/regcomp.h
index 5710857e97..167b2c0594 100644
--- a/regcomp.h
+++ b/regcomp.h
@@ -376,7 +376,9 @@ EXTCONST U8 PL_varies[];
#else
EXTCONST U8 PL_varies[] = {
BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL,
- WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, CLUMP, 0
+ WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, CLUMP,
+ NREF, NREFF, NREFFL,
+ 0
};
#endif
@@ -751,3 +753,4 @@ re.pm, especially to the documentation.
#endif /* DEBUG RELATED DEFINES */
+
diff --git a/t/op/re_tests b/t/op/re_tests
index cde5ccc8e9..925bb36cb4 100644
--- a/t/op/re_tests
+++ b/t/op/re_tests
@@ -1193,3 +1193,9 @@ a*(*F) aaaab n - -
(foo)(\R2) foofoo y $1-$2 foo-foo
(foo)(\R2)(foo)(\R2) foofoofoofoo y $1-$2-$3-$4 foo-foo-foo-foo
(([abc]+) \R1)(([abc]+) \R1) abc abccba cba y $2-$4 abc-cba
+
+/(?'n'foo) \k<n>/ ..foo foo.. y $1 foo
+/(?'n'foo) \k<n>/ ..foo foo.. y $+{n} foo
+/(?<n>foo) \k'n'/ ..foo foo.. y $1 foo
+/(?<n>foo) \k'n'/ ..foo foo.. y $+{n} foo
+/(?<as>as) (\w+) \k<as> (\w+)/ as easy as pie y $1-$2-$3 as-easy-pie