summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--t/comp/retainedlines.t5
-rw-r--r--toke.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/t/comp/retainedlines.t b/t/comp/retainedlines.t
index 240c5b177e..25687bed9e 100644
--- a/t/comp/retainedlines.t
+++ b/t/comp/retainedlines.t
@@ -6,7 +6,7 @@
# we've not yet verified that use works.
# use strict;
-print "1..73\n";
+print "1..74\n";
my $test = 0;
sub failed {
@@ -157,4 +157,7 @@ for (0xA, 0) {
eval qq{#line 42 "hash-line-eval"\n labadalabada()\n};
is $::{"_<hash-line-eval"}[42], " labadalabada()\n",
'#line 42 "foo" in a string eval updates @{"_<foo"}';
+ eval qq{#line 42 "figgle"\n#line 85 "doggo"\n labadalabada()\n};
+ is $::{"_<doggo"}[85], " labadalabada()\n",
+ 'subsequent #line 42 "foo" in a string eval updates @{"_<foo"}';
}
diff --git a/toke.c b/toke.c
index e01080b765..6e88c8a25c 100644
--- a/toke.c
+++ b/toke.c
@@ -1585,7 +1585,7 @@ S_incline(pTHX_ const char *s)
tmplen = 0;
}
- if (tmplen > 7 && strnEQ(cf, "(eval ", 6)) {
+ if (!PL_rsfp && !PL_parser->filtered) {
/* must copy *{"::_<(eval N)[oldfilename:L]"}
* to *{"::_<newfilename"} */
/* However, the long form of evals is only turned on by the