Re: [fix] [perl #21575] Bug with print( followed by a newline
Adrian M. Enache [Fri, 14 Mar 2003 23:02:42 +0000 (01:02 +0200)]
Message-ID: <20030314210242.GA1159@ratsnest.hole>
(with an added test)

p4raw-id: //depot/perl@18986

t/comp/parser.t
toke.c

index ad1c5b8..54ad351 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
 }
 
 require "./test.pl";
-plan( tests => 20 );
+plan( tests => 21 );
 
 eval '%@x=0;';
 like( $@, qr/^Can't modify hash dereference in repeat \(x\)/, '%@x=0' );
@@ -88,3 +88,12 @@ is( $@, '', 'PL_lex_brackstack' );
 ${a}{ ${a}[ @{b}{
 ${a}{
 }
+
+# Bug #21575
+# ensure that the second print statement works, by playing a bit
+# with the test output.
+my %data = ( foo => "\n" );
+print "#";
+print(
+$data{foo});
+pass();
diff --git a/toke.c b/toke.c
index 4e5a977..1b6baaa 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -3088,6 +3088,7 @@ Perl_yylex(pTHX)
            PL_oldbufptr = PL_oldoldbufptr;             /* allow print(STDOUT 123) */
        else
            PL_expect = XTERM;
+       s = skipspace(s);
        TOKEN('(');
     case ';':
        CLINE;