diff options
| author | Dmitry Stogov <dmitry@php.net> | 2006-04-13 13:48:28 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2006-04-13 13:48:28 +0000 |
| commit | 67abcb58c37559995c337db96f94efdbaa85ae6a (patch) | |
| tree | 16015bd8964f6c4d9a93b69a19276b82d9d94539 | |
| parent | af429910eff7308b28de75ba2b3ff74136d7c59d (diff) | |
| download | php-git-67abcb58c37559995c337db96f94efdbaa85ae6a.tar.gz | |
Fixed bug #36513 (comment will be outputed in last line)
| -rw-r--r-- | NEWS | 1 | ||||
| -rwxr-xr-x | Zend/tests/bug36513.phpt | 22 | ||||
| -rw-r--r-- | Zend/zend_language_scanner.l | 4 |
3 files changed, 25 insertions, 2 deletions
@@ -16,6 +16,7 @@ PHP NEWS - Fixed bug #37046 (foreach breaks static scope). (Dmitry) - Fixed bug #37002 (Have to quote literals in INI when concatenating with vars). (Dmitry) +- Fixed bug #36513 (comment will be outputed in last line). (Dmitry) 06 Apr 2006, PHP 5.1.3RC3 - Eliminated run-time constant fetching for TRUE, FALSE and NULL. (Dmitry) diff --git a/Zend/tests/bug36513.phpt b/Zend/tests/bug36513.phpt new file mode 100755 index 0000000000..f46da4efc5 --- /dev/null +++ b/Zend/tests/bug36513.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #36513 (comment will be outputed in last line) +--FILE-- +<?php +function test($s) { + echo "'".trim(str_replace(" ", " ", htmlspecialchars_decode(strip_tags(highlight_string($s,1)))))."'\n"; +} + +eval('echo "1";//2'); +eval('echo 3; //{ 4?>5'); +echo "\n"; + +//test('<?php echo "1";//'); +test('<?php echo "1";//2'); +test('<?php echo "1";//22'); +test('<?php echo 3; // 4 ?>5'); +?> +--EXPECT-- +135 +'<?php echo "1";//2' +'<?php echo "1";//22' +'<?php echo 3; // 4 ?>5' diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 66e98988f7..57581404f3 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1461,7 +1461,7 @@ NEWLINE ("\r"|"\n"|"\r\n") yymore(); } -<ST_ONE_LINE_COMMENT>[^\n\r?%>]+{ANY_CHAR} { +<ST_ONE_LINE_COMMENT>[^\n\r?%>]*{ANY_CHAR} { switch (yytext[yyleng-1]) { case '?': case '%': case '>': yyless(yyleng-1); @@ -1491,7 +1491,7 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_ONE_LINE_COMMENT>"?>"|"%>" { if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */ zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; + zendlval->value.str.len = yyleng-2; zendlval->type = IS_STRING; yyless(yyleng-2); BEGIN(ST_IN_SCRIPTING); |
