From: Dmitry Stogov Date: Fri, 21 Oct 2005 13:22:10 +0000 (+0000) Subject: Fixed bug #31341 (escape on curly inconsistent) X-Git-Tag: RELEASE_0_9_1~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=de047ae0a57060d43fd38fb7aba7a358ca92e11a;p=php Fixed bug #31341 (escape on curly inconsistent) --- diff --git a/Zend/tests/bug31341.phpt b/Zend/tests/bug31341.phpt new file mode 100755 index 0000000000..2f68006a07 --- /dev/null +++ b/Zend/tests/bug31341.phpt @@ -0,0 +1,29 @@ +--TEST-- +Bug #31341 (escape on curly inconsistent) +--FILE-- + +--EXPECT-- +'$ \{ ' +' \{ $' +' {$ ' +' $\{ ' +' $\{ ' +' \{$ ' +'$ \{ ' +' \{ $' +'% \{ ' diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 093e9253d8..a63bfec83e 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -2428,6 +2428,13 @@ NEWLINE ("\r"|"\n"|"\r\n") } +"\\{$" { + zendlval->value.str.val = estrndup("{$", sizeof("{$")-1); + zendlval->value.str.len = sizeof("{$")-1; + zendlval->type = IS_STRING; + return T_STRING; +} + "\\"{ANY_CHAR} { switch (yytext[1]) { case 'n': @@ -2445,9 +2452,6 @@ NEWLINE ("\r"|"\n"|"\r\n") case '$': zendlval->value.lval = (long) yytext[1]; break; - case '{': - zendlval->value.lval = (long) yytext[1]; - break; default: if (!zend_copy_string_value(zendlval, yytext, yyleng, CG(literal_type) TSRMLS_CC)) { return 0;