diff options
author | Etienne Kneuss <colder@php.net> | 2011-08-17 23:50:04 +0000 |
---|---|---|
committer | Etienne Kneuss <colder@php.net> | 2011-08-17 23:50:04 +0000 |
commit | f6c2b4776c8c6027f32bd699988777226aa06e39 (patch) | |
tree | d37d141f1d19553817505622b2131e76fd467092 | |
parent | db37076fc0c7671af36b71f671577744cd1b4f42 (diff) | |
download | php-git-f6c2b4776c8c6027f32bd699988777226aa06e39.tar.gz |
Fix bug #55445 (Incomplete implementation of <?= being independant of short_open_tag)
-rw-r--r-- | Zend/tests/bug55445.phpt | 8 | ||||
-rw-r--r-- | Zend/zend_language_scanner.c | 4 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 2 | ||||
-rw-r--r-- | Zend/zend_language_scanner_defs.h | 2 |
4 files changed, 12 insertions, 4 deletions
diff --git a/Zend/tests/bug55445.phpt b/Zend/tests/bug55445.phpt new file mode 100644 index 0000000000..0f36ac5d88 --- /dev/null +++ b/Zend/tests/bug55445.phpt @@ -0,0 +1,8 @@ +--TEST-- +Bug #55445 (Lexer error with short open tags) +--INI-- +short_open_tag=0 +--FILE-- +<?php $u = "chris"; ?><p>Welcome <?= $u ?></p> +--EXPECTF-- +<p>Welcome chris</p> diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 3678dd0d63..acc42455c2 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue Aug 16 10:45:19 2011 */ +/* Generated by re2c 0.13.5 on Thu Aug 18 01:36:01 2011 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1099,7 +1099,7 @@ inline_char_handler: if (YYCURSOR < YYLIMIT) { switch (*YYCURSOR) { case '?': - if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */ + if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ break; } continue; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 0e3583472f..827b7bf3d7 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1780,7 +1780,7 @@ inline_char_handler: if (YYCURSOR < YYLIMIT) { switch (*YYCURSOR) { case '?': - if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */ + if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ break; } continue; diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index 1fbeabfc9d..3a8e30a027 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Jul 31 20:09:48 2011 */ +/* Generated by re2c 0.13.5 on Thu Aug 18 01:36:01 2011 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { |