summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-04-13 13:48:28 +0000
committerDmitry Stogov <dmitry@php.net>2006-04-13 13:48:28 +0000
commit67abcb58c37559995c337db96f94efdbaa85ae6a (patch)
tree16015bd8964f6c4d9a93b69a19276b82d9d94539
parentaf429910eff7308b28de75ba2b3ff74136d7c59d (diff)
downloadphp-git-67abcb58c37559995c337db96f94efdbaa85ae6a.tar.gz
Fixed bug #36513 (comment will be outputed in last line)
-rw-r--r--NEWS1
-rwxr-xr-xZend/tests/bug36513.phpt22
-rw-r--r--Zend/zend_language_scanner.l4
3 files changed, 25 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 7a06400b58..47b50a1602 100644
--- a/NEWS
+++ b/NEWS
@@ -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("&nbsp;", " ", 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);