cvs: ZendEngine2(PHP_5_3) / zend_ini_scanner.c zend_ini_scanner.l
[email protected] ("Scott MacVicar")
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsscottmac1207568354@cvsserver> |
scottmac Mon Apr 7 11:39:14 2008 UTC
Modified files: (Branch: PHP_5_3)
/ZendEngine2 zend_ini_scanner.l zend_ini_scanner.c
Log:
Fixed bug #44609 (Dollar in ini variables are not parsed correctly)
scottmac-20080407113914.txt
(text/plain, 15.7 KB)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ini_scanner.l?r1=1.41.2.2.2.2.2.6&r2=1.41.2.2.2.2.2.7&diff_format=u
Index: ZendEngine2/zend_ini_scanner.l
diff -u ZendEngine2/zend_ini_scanner.l:1.41.2.2.2.2.2.6 ZendEngine2/zend_ini_scanner.l:1.41.2.2.2.2.2.7
--- ZendEngine2/zend_ini_scanner.l:1.41.2.2.2.2.2.6 Fri Apr 4 15:01:22 2008
+++ ZendEngine2/zend_ini_scanner.l Mon Apr 7 11:39:14 2008
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini_scanner.l,v 1.41.2.2.2.2.2.6 2008/04/04 15:01:22 nlopess Exp $ */
+/* $Id: zend_ini_scanner.l,v 1.41.2.2.2.2.2.7 2008/04/07 11:39:14 scottmac Exp $ */
#include <errno.h>
#include "zend.h"
@@ -319,7 +319,7 @@
SINGLE_QUOTED_CHARS [^']
RAW_VALUE_CHARS [^=\n\r;]
-LITERAL_DOLLAR ("$"([^a-zA-Z0-9{\000]|("\\"{ANY_CHAR})))
+LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR})))
VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR})
SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
@@ -488,7 +488,7 @@
<ST_VALUE,ST_RAW>[^] { /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
- return 0;
+ return END_OF_LINE;
}
<*>[^] {
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ini_scanner.c?r1=1.1.2.5&r2=1.1.2.6&diff_format=u
Index: ZendEngine2/zend_ini_scanner.c
diff -u ZendEngine2/zend_ini_scanner.c:1.1.2.5 ZendEngine2/zend_ini_scanner.c:1.1.2.6
--- ZendEngine2/zend_ini_scanner.c:1.1.2.5 Fri Apr 4 15:01:22 2008
+++ ZendEngine2/zend_ini_scanner.c Mon Apr 7 11:39:14 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Fri Apr 4 15:52:51 2008 */
+/* Generated by re2c 0.13.4.dev on Mon Apr 7 12:36:56 2008 */
#line 1 "Zend/zend_ini_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -22,7 +22,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini_scanner.c,v 1.1.2.5 2008/04/04 15:01:22 nlopess Exp $ */
+/* $Id: zend_ini_scanner.c,v 1.1.2.6 2008/04/07 11:39:14 scottmac Exp $ */
#include <errno.h>
#include "zend.h"
@@ -943,22 +943,13 @@
yy64:
YYDEBUG(64, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= 'Z') {
- if (yych <= '/') {
- if (yych >= 0x01) goto yy67;
- } else {
- if (yych <= '9') goto yy65;
- if (yych <= '@') goto yy67;
- }
+ if ((yych = *YYCURSOR) <= '\\') {
+ if (yych <= 0x00) goto yy65;
+ if (yych <= '[') goto yy67;
+ goto yy72;
} else {
- if (yych <= '`') {
- if (yych == '\\') goto yy72;
- goto yy67;
- } else {
- if (yych <= 'z') goto yy65;
- if (yych <= '{') goto yy78;
- goto yy67;
- }
+ if (yych == '{') goto yy78;
+ goto yy67;
}
yy65:
YYDEBUG(65, *YYCURSOR);
@@ -967,7 +958,7 @@
{
return 0;
}
-#line 971 "Zend/zend_ini_scanner.c"
+#line 962 "Zend/zend_ini_scanner.c"
yy66:
YYDEBUG(66, *YYCURSOR);
yych = *++YYCURSOR;
@@ -994,21 +985,12 @@
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych >= 0x01) goto yy67;
- } else {
- if (yych <= '9') goto yy71;
- if (yych <= '@') goto yy67;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy71;
+ if (yych <= '[') goto yy67;
+ goto yy72;
} else {
- if (yych <= '\\') {
- if (yych <= '[') goto yy67;
- goto yy72;
- } else {
- if (yych <= '`') goto yy67;
- if (yych >= '|') goto yy67;
- }
+ if (yych != '{') goto yy67;
}
yy71:
YYDEBUG(71, *YYCURSOR);
@@ -1066,7 +1048,7 @@
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 1070 "Zend/zend_ini_scanner.c"
+#line 1052 "Zend/zend_ini_scanner.c"
yy80:
YYDEBUG(80, *YYCURSOR);
++YYCURSOR;
@@ -1169,7 +1151,7 @@
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 1173 "Zend/zend_ini_scanner.c"
+#line 1155 "Zend/zend_ini_scanner.c"
yy86:
YYDEBUG(86, *YYCURSOR);
yyaccept = 0;
@@ -1190,7 +1172,7 @@
{
return 0;
}
-#line 1194 "Zend/zend_ini_scanner.c"
+#line 1176 "Zend/zend_ini_scanner.c"
yy89:
YYDEBUG(89, *YYCURSOR);
++YYCURSOR;
@@ -1202,28 +1184,17 @@
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 1206 "Zend/zend_ini_scanner.c"
+#line 1188 "Zend/zend_ini_scanner.c"
yy91:
YYDEBUG(91, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych <= 0x00) goto yy88;
- goto yy102;
- } else {
- if (yych <= '9') goto yy88;
- if (yych <= '@') goto yy102;
- goto yy88;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy88;
+ if (yych <= '[') goto yy102;
+ goto yy107;
} else {
- if (yych <= '`') {
- if (yych == '\\') goto yy107;
- goto yy102;
- } else {
- if (yych <= 'z') goto yy88;
- if (yych <= '{') goto yy127;
- goto yy102;
- }
+ if (yych == '{') goto yy127;
+ goto yy102;
}
yy92:
YYDEBUG(92, *YYCURSOR);
@@ -1279,7 +1250,7 @@
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 1283 "Zend/zend_ini_scanner.c"
+#line 1254 "Zend/zend_ini_scanner.c"
yy97:
YYDEBUG(97, *YYCURSOR);
yyaccept = 3;
@@ -1309,7 +1280,7 @@
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 1313 "Zend/zend_ini_scanner.c"
+#line 1284 "Zend/zend_ini_scanner.c"
yy99:
YYDEBUG(99, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1325,7 +1296,7 @@
BEGIN(INITIAL);
return ']';
}
-#line 1329 "Zend/zend_ini_scanner.c"
+#line 1300 "Zend/zend_ini_scanner.c"
yy102:
YYDEBUG(102, *YYCURSOR);
yyaccept = 0;
@@ -1350,21 +1321,12 @@
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych >= 0x01) goto yy102;
- } else {
- if (yych <= '9') goto yy106;
- if (yych <= '@') goto yy102;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy106;
+ if (yych <= '[') goto yy102;
+ goto yy107;
} else {
- if (yych <= '\\') {
- if (yych <= '[') goto yy102;
- goto yy107;
- } else {
- if (yych <= '`') goto yy102;
- if (yych >= '|') goto yy102;
- }
+ if (yych != '{') goto yy102;
}
yy106:
YYDEBUG(106, *YYCURSOR);
@@ -1633,7 +1595,7 @@
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1637 "Zend/zend_ini_scanner.c"
+#line 1599 "Zend/zend_ini_scanner.c"
yy127:
YYDEBUG(127, *YYCURSOR);
++YYCURSOR;
@@ -1644,7 +1606,7 @@
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 1648 "Zend/zend_ini_scanner.c"
+#line 1610 "Zend/zend_ini_scanner.c"
yy129:
YYDEBUG(129, *YYCURSOR);
yyaccept = 0;
@@ -1761,7 +1723,7 @@
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1765 "Zend/zend_ini_scanner.c"
+#line 1727 "Zend/zend_ini_scanner.c"
yy137:
YYDEBUG(137, *YYCURSOR);
yyaccept = 0;
@@ -1789,7 +1751,7 @@
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1793 "Zend/zend_ini_scanner.c"
+#line 1755 "Zend/zend_ini_scanner.c"
yy140:
YYDEBUG(140, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1806,9 +1768,9 @@
#line 489 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
- return 0;
+ return END_OF_LINE;
}
-#line 1812 "Zend/zend_ini_scanner.c"
+#line 1774 "Zend/zend_ini_scanner.c"
yy143:
YYDEBUG(143, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1836,7 +1798,7 @@
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1840 "Zend/zend_ini_scanner.c"
+#line 1802 "Zend/zend_ini_scanner.c"
yy148:
YYDEBUG(148, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1942,7 +1904,7 @@
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1946 "Zend/zend_ini_scanner.c"
+#line 1908 "Zend/zend_ini_scanner.c"
yy159:
YYDEBUG(159, *YYCURSOR);
++YYCURSOR;
@@ -1952,7 +1914,7 @@
{
return 0;
}
-#line 1956 "Zend/zend_ini_scanner.c"
+#line 1918 "Zend/zend_ini_scanner.c"
yy161:
YYDEBUG(161, *YYCURSOR);
++YYCURSOR;
@@ -1967,7 +1929,7 @@
SCNG(lineno)++;
return ']';
}
-#line 1971 "Zend/zend_ini_scanner.c"
+#line 1933 "Zend/zend_ini_scanner.c"
yy163:
YYDEBUG(163, *YYCURSOR);
++YYCURSOR;
@@ -2092,7 +2054,7 @@
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2096 "Zend/zend_ini_scanner.c"
+#line 2058 "Zend/zend_ini_scanner.c"
yy173:
YYDEBUG(173, *YYCURSOR);
yyaccept = 0;
@@ -2115,7 +2077,7 @@
{
return 0;
}
-#line 2119 "Zend/zend_ini_scanner.c"
+#line 2081 "Zend/zend_ini_scanner.c"
yy176:
YYDEBUG(176, *YYCURSOR);
++YYCURSOR;
@@ -2127,28 +2089,17 @@
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 2131 "Zend/zend_ini_scanner.c"
+#line 2093 "Zend/zend_ini_scanner.c"
yy178:
YYDEBUG(178, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych <= 0x00) goto yy175;
- goto yy193;
- } else {
- if (yych <= '9') goto yy175;
- if (yych <= '@') goto yy193;
- goto yy175;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy175;
+ if (yych <= '[') goto yy193;
+ goto yy198;
} else {
- if (yych <= '`') {
- if (yych == '\\') goto yy198;
- goto yy193;
- } else {
- if (yych <= 'z') goto yy175;
- if (yych <= '{') goto yy218;
- goto yy193;
- }
+ if (yych == '{') goto yy218;
+ goto yy193;
}
yy179:
YYDEBUG(179, *YYCURSOR);
@@ -2204,7 +2155,7 @@
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 2208 "Zend/zend_ini_scanner.c"
+#line 2159 "Zend/zend_ini_scanner.c"
yy184:
YYDEBUG(184, *YYCURSOR);
yyaccept = 3;
@@ -2234,7 +2185,7 @@
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 2238 "Zend/zend_ini_scanner.c"
+#line 2189 "Zend/zend_ini_scanner.c"
yy186:
YYDEBUG(186, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2253,7 +2204,7 @@
SCNG(lineno)++;
return ']';
}
-#line 2257 "Zend/zend_ini_scanner.c"
+#line 2208 "Zend/zend_ini_scanner.c"
yy189:
YYDEBUG(189, *YYCURSOR);
++YYCURSOR;
@@ -2300,21 +2251,12 @@
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych >= 0x01) goto yy193;
- } else {
- if (yych <= '9') goto yy197;
- if (yych <= '@') goto yy193;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy197;
+ if (yych <= '[') goto yy193;
+ goto yy198;
} else {
- if (yych <= '\\') {
- if (yych <= '[') goto yy193;
- goto yy198;
- } else {
- if (yych <= '`') goto yy193;
- if (yych >= '|') goto yy193;
- }
+ if (yych != '{') goto yy193;
}
yy197:
YYDEBUG(197, *YYCURSOR);
@@ -2583,7 +2525,7 @@
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 2587 "Zend/zend_ini_scanner.c"
+#line 2529 "Zend/zend_ini_scanner.c"
yy218:
YYDEBUG(218, *YYCURSOR);
++YYCURSOR;
@@ -2594,7 +2536,7 @@
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 2598 "Zend/zend_ini_scanner.c"
+#line 2540 "Zend/zend_ini_scanner.c"
yy220:
YYDEBUG(220, *YYCURSOR);
yyaccept = 0;
@@ -2776,9 +2718,9 @@
#line 489 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
- return 0;
+ return END_OF_LINE;
}
-#line 2782 "Zend/zend_ini_scanner.c"
+#line 2724 "Zend/zend_ini_scanner.c"
yy227:
YYDEBUG(227, *YYCURSOR);
yyaccept = 0;
@@ -2791,7 +2733,7 @@
{ /* Get everything else as option/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2795 "Zend/zend_ini_scanner.c"
+#line 2737 "Zend/zend_ini_scanner.c"
yy229:
YYDEBUG(229, *YYCURSOR);
yyaccept = 1;
@@ -2804,7 +2746,7 @@
{
RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
}
-#line 2808 "Zend/zend_ini_scanner.c"
+#line 2750 "Zend/zend_ini_scanner.c"
yy231:
YYDEBUG(231, *YYCURSOR);
++YYCURSOR;
@@ -2817,7 +2759,7 @@
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 2821 "Zend/zend_ini_scanner.c"
+#line 2763 "Zend/zend_ini_scanner.c"
yy233:
YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2835,7 +2777,7 @@
{ /* Boolean operators */
return yytext[0];
}
-#line 2839 "Zend/zend_ini_scanner.c"
+#line 2781 "Zend/zend_ini_scanner.c"
yy236:
YYDEBUG(236, *YYCURSOR);
++YYCURSOR;
@@ -2847,28 +2789,17 @@
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 2851 "Zend/zend_ini_scanner.c"
+#line 2793 "Zend/zend_ini_scanner.c"
yy238:
YYDEBUG(238, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych <= 0x00) goto yy226;
- goto yy254;
- } else {
- if (yych <= '9') goto yy226;
- if (yych <= '@') goto yy254;
- goto yy226;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy226;
+ if (yych <= '[') goto yy254;
+ goto yy261;
} else {
- if (yych <= '`') {
- if (yych == '\\') goto yy261;
- goto yy254;
- } else {
- if (yych <= 'z') goto yy226;
- if (yych <= '{') goto yy299;
- goto yy254;
- }
+ if (yych == '{') goto yy299;
+ goto yy254;
}
yy239:
YYDEBUG(239, *YYCURSOR);
@@ -2938,7 +2869,7 @@
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 2942 "Zend/zend_ini_scanner.c"
+#line 2873 "Zend/zend_ini_scanner.c"
yy244:
YYDEBUG(244, *YYCURSOR);
yyaccept = 2;
@@ -2955,7 +2886,7 @@
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 2959 "Zend/zend_ini_scanner.c"
+#line 2890 "Zend/zend_ini_scanner.c"
yy247:
YYDEBUG(247, *YYCURSOR);
yyaccept = 4;
@@ -2995,7 +2926,7 @@
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 2999 "Zend/zend_ini_scanner.c"
+#line 2930 "Zend/zend_ini_scanner.c"
yy249:
YYDEBUG(249, *YYCURSOR);
yyaccept = 4;
@@ -3383,21 +3314,12 @@
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych >= 0x01) goto yy254;
- } else {
- if (yych <= '9') goto yy260;
- if (yych <= '@') goto yy254;
- }
+ if (yych <= '\\') {
+ if (yych <= 0x00) goto yy260;
+ if (yych <= '[') goto yy254;
+ goto yy261;
} else {
- if (yych <= '\\') {
- if (yych <= '[') goto yy254;
- goto yy261;
- } else {
- if (yych <= '`') goto yy254;
- if (yych >= '|') goto yy254;
- }
+ if (yych != '{') goto yy254;
}
yy260:
YYDEBUG(260, *YYCURSOR);
@@ -3500,7 +3422,7 @@
{ /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
-#line 3504 "Zend/zend_ini_scanner.c"
+#line 3426 "Zend/zend_ini_scanner.c"
yy266:
YYDEBUG(266, *YYCURSOR);
++YYCURSOR;
@@ -3704,7 +3626,7 @@
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
-#line 3708 "Zend/zend_ini_scanner.c"
+#line 3630 "Zend/zend_ini_scanner.c"
yy273:
YYDEBUG(273, *YYCURSOR);
++YYCURSOR;
@@ -4086,7 +4008,7 @@
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 4090 "Zend/zend_ini_scanner.c"
+#line 4012 "Zend/zend_ini_scanner.c"
yy286:
YYDEBUG(286, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4307,7 +4229,7 @@
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 4311 "Zend/zend_ini_scanner.c"
+#line 4233 "Zend/zend_ini_scanner.c"
yy299:
YYDEBUG(299, *YYCURSOR);
++YYCURSOR;
@@ -4318,7 +4240,7 @@
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 4322 "Zend/zend_ini_scanner.c"
+#line 4244 "Zend/zend_ini_scanner.c"
yy301:
YYDEBUG(301, *YYCURSOR);
++YYCURSOR;
@@ -4428,7 +4350,7 @@
{
return 0;
}
-#line 4432 "Zend/zend_ini_scanner.c"
+#line 4354 "Zend/zend_ini_scanner.c"
yy312:
YYDEBUG(312, *YYCURSOR);
++YYCURSOR;
@@ -4441,7 +4363,7 @@
{ /* Variable name */
RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
}
-#line 4445 "Zend/zend_ini_scanner.c"
+#line 4367 "Zend/zend_ini_scanner.c"
yy314:
YYDEBUG(314, *YYCURSOR);
++YYCURSOR;
@@ -4452,7 +4374,7 @@
yy_pop_state(TSRMLS_C);
return '}';
}
-#line 4456 "Zend/zend_ini_scanner.c"
+#line 4378 "Zend/zend_ini_scanner.c"
yy316:
YYDEBUG(316, *YYCURSOR);
++YYCURSOR;