This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
toke.c: In sublex_push use multi_close to detect here-doc
authorFather Chrysostomos <sprout@cpan.org>
Sat, 7 Sep 2013 06:45:36 +0000 (23:45 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 8 Sep 2013 01:34:36 +0000 (18:34 -0700)
It is a lot simpler this way.  scan_heredoc already sets PL_multi_close
to '<' (the only code that does it).  That value does not appear to
be used anywhere.  Now it is.

Furthermore, this removes assumptions that the next commit will
likely violate.

toke.c

diff --git a/toke.c b/toke.c
index 01073d5..32a5a42 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -2594,13 +2594,9 @@ S_sublex_push(pTHX)
 {
     dVAR;
     LEXSHARED *shared;
-    const bool is_heredoc =
-       CopLINE(PL_curcop) == (line_t)PL_multi_start - 1;
+    const bool is_heredoc = PL_multi_close == '<';
     ENTER;
 
-    assert(CopLINE(PL_curcop) == (line_t)PL_multi_start
-       || CopLINE(PL_curcop) == (line_t)PL_multi_start - 1);
-
     PL_lex_state = PL_sublex_info.super_state;
     SAVEBOOL(PL_lex_dojoin);
     SAVEI32(PL_lex_brackets);