summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtienne Kneuss <colder@php.net>2011-08-17 23:50:04 +0000
committerEtienne Kneuss <colder@php.net>2011-08-17 23:50:04 +0000
commitf6c2b4776c8c6027f32bd699988777226aa06e39 (patch)
treed37d141f1d19553817505622b2131e76fd467092
parentdb37076fc0c7671af36b71f671577744cd1b4f42 (diff)
downloadphp-git-f6c2b4776c8c6027f32bd699988777226aa06e39.tar.gz
Fix bug #55445 (Incomplete implementation of <?= being independant of short_open_tag)
-rw-r--r--Zend/tests/bug55445.phpt8
-rw-r--r--Zend/zend_language_scanner.c4
-rw-r--r--Zend/zend_language_scanner.l2
-rw-r--r--Zend/zend_language_scanner_defs.h2
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 {