diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-11-06 02:11:02 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-11-06 10:21:42 -0800 |
commit | d1299d44cb6299d416c31fa3425359d9a2c5d7c3 (patch) | |
tree | 4742f06660a230663d73fca5ce95a7da755a81d2 /toke.c | |
parent | 6bac172059b0ed213ca5326c1117d262ed34c1c1 (diff) | |
download | perl-d1299d44cb6299d416c31fa3425359d9a2c5d7c3.tar.gz |
Make multiple #line’s update dblines in evals
The array-copying stuff that happens when #line 3 "filename" is
encountered in a string eval is not sufficient. If there are multiple
such statements, only the first one copies the debugger’s lines arrays
(@{"_<filename"}) into the new array.
Checking that CopFILESV(PL_curcop) begins with ‘(eval ’ is a bit
silly, since the parser already knows whether it’s processing a file
without having to check file names. (And what if you have a real file
beginning with ‘(eval ’?)
See commit 8818d40 and others that it references, for the history of
this piece of code.
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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 |