From: Ilia Alshanetsky Date: Thu, 8 Dec 2005 03:12:34 +0000 (+0000) Subject: MFB51: X-Git-Tag: RELEASE_1_0_4~478 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=04ee70f6eba5c29c729f7a662e76a37b1ccb17d7;p=php MFB51: fix for bug #35382 fix for bug #35411 --- diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 1d4798cdf9..57a6330ac2 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -2106,16 +2106,22 @@ NEWLINE ("\r"|"\n"|"\r\n") yymore(); } -[^\n\r?%>]+ { - yymore(); -} - -<> { - zendlval->value.str.val = yytext; /* no copying - intentional */ - zendlval->value.str.len = yyleng; - zendlval->type = IS_STRING; - BEGIN(ST_IN_SCRIPTING); - return T_COMMENT; +[^\n\r?%>]+{ANY_CHAR} { + switch (yytext[yyleng-1]) { + case '?': case '%': case '>': + yyless(yyleng-1); + yymore(); + break; + case '\n': + CG(zend_lineno)++; + /* intentional fall through */ + default: + zendlval->value.str.val = yytext; /* no copying - intentional */ + zendlval->value.str.len = yyleng; + zendlval->type = IS_STRING; + BEGIN(ST_IN_SCRIPTING); + return T_COMMENT; + } } {NEWLINE} { @@ -2435,9 +2441,8 @@ NEWLINE ("\r"|"\n"|"\r\n") } } - -"\\{$" { - if (!zend_copy_string_value(zendlval, yytext+1, yyleng-1, CG(literal_type) TSRMLS_CC)) { +"\\{" { + if (!zend_copy_string_value(zendlval, yytext, yyleng, CG(literal_type) TSRMLS_CC)) { return 0; } return T_STRING;