]> granicus.if.org Git - php/commitdiff
Fixed bug #36037 (heredoc adds extra line number)
authorDmitry Stogov <dmitry@php.net>
Tue, 17 Jan 2006 09:39:33 +0000 (09:39 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 17 Jan 2006 09:39:33 +0000 (09:39 +0000)
Zend/tests/bug36037.phpt [new file with mode: 0755]
Zend/zend_language_scanner.l

diff --git a/Zend/tests/bug36037.phpt b/Zend/tests/bug36037.phpt
new file mode 100755 (executable)
index 0000000..3ccebf6
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+Bug #36037 (heredoc adds extra line number)
+--FILE--
+<?php
+echo __LINE__, "\n";
+$x=<<<XXX
+123
+YYY;
+XXX;
+echo __LINE__, "\n";
+?>
+--EXPECT--
+2
+7
index 593680e74674c7ad35ab5444db83f0ff268cfd28..5bd389df3574fb34e9d5cdf09a7a73bf9d4e17fd 100644 (file)
@@ -2286,7 +2286,6 @@ NEWLINE ("\r"|"\n"|"\r\n")
 <ST_HEREDOC>^{LABEL}(";")?{NEWLINE} {
        int label_len;
 
-       CG(zend_lineno)++;
        if (yytext[yyleng-2]=='\r') {
                label_len = yyleng-2;
        } else {
@@ -2307,6 +2306,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
                BEGIN(ST_IN_SCRIPTING);
                return T_END_HEREDOC;
        } else {
+               CG(zend_lineno)++;
                if (!zend_copy_string_value(zendlval, yytext, yyleng, CG(literal_type) TSRMLS_CC)) {
                        return 0;
                }