php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #36037 heredoc adds extra line number
Submitted: 2006-01-16 21:58 UTC Modified: 2006-01-17 10:42 UTC
From: nospam at 1111-internet dot com Assigned: dmitry (profile)
Status: Closed Package: Scripting Engine problem
PHP Version: 5CVS, 4CVS (2006-01-17) (cvs) OS: *
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: nospam at 1111-internet dot com
New email:
PHP Version: OS:

 

 [2006-01-16 21:58 UTC] nospam at 1111-internet dot com
Description:
------------
Heredoc syntax adds one extra line number and thus skews all subsequent script line numbers. Example uses PHP CLI, but also affects PHP as Apache module.

Reproduce code:
---------------
<?php
echo __LINE__, "\n";
$x=<<<XXX
123
XXX;
echo __LINE__, "\n";
?>


Expected result:
----------------
2
6


Actual result:
--------------
2
7


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-01-16 22:10 UTC] tony2001@php.net
Dmitry, check out the patch, plz:
Index: Zend/zend_language_scanner.l
===================================================================
RCS file: /repository/ZendEngine2/zend_language_scanner.l,v
retrieving revision 1.131.2.9
diff -u -p -d -r1.131.2.9 zend_language_scanner.l
--- Zend/zend_language_scanner.l        4 Jan 2006 23:53:04 -0000       1.131.2.9
+++ Zend/zend_language_scanner.l        16 Jan 2006 21:09:17 -0000
@@ -1706,7 +1706,6 @@ NEWLINE ("\r"|"\n"|"\r\n")

 <ST_IN_SCRIPTING>"<<<"{TABS_AND_SPACES}{LABEL}{NEWLINE} {
        char *s;
-       CG(zend_lineno)++;
        CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0);
        s = yytext+3;
        while ((*s == ' ') || (*s == '\t')) {
 [2006-01-17 10:42 UTC] dmitry@php.net
Fixed in CVS HEAD, PHP_5_1 and PHP_4_4.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 13:01:29 2024 UTC