add sanity checks for ZEND_MMAP_AHEAD and reduce the value from 32 to 16 (lowest safe value)

This commit is contained in:
Nuno Lopes 2008-04-04 15:01:23 +00:00
parent c3474b9116
commit bfcdbbcd33
7 changed files with 537 additions and 509 deletions

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:41:39 2008 */ /* Generated by re2c 0.13.4.dev on Fri Apr 4 15:52:51 2008 */
#line 1 "Zend/zend_ini_scanner.l" #line 1 "Zend/zend_ini_scanner.l"
/* /*
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
@ -24,6 +24,11 @@
/* $Id$ */ /* $Id$ */
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
#if 0 #if 0
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
@ -52,6 +57,14 @@
#define yyless(x) YYCURSOR = yytext + x #define yyless(x) YYCURSOR = yytext + x
/* #define yymore() goto yymore_restart */ /* #define yymore() goto yymore_restart */
/* perform sanity check. If this message is triggered you should
increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
#define YYMAXFILL 6
#if ZEND_MMAP_AHEAD < YYMAXFILL
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
#endif
/* How it works (for the core ini directives): /* How it works (for the core ini directives):
* =========================================== * ===========================================
* *
@ -82,12 +95,6 @@
* *
*/ */
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
/* Globals Macros */ /* Globals Macros */
#define SCNG INI_SCNG #define SCNG INI_SCNG
#ifdef ZTS #ifdef ZTS
@ -296,7 +303,7 @@ restart:
} }
#line 300 "Zend/zend_ini_scanner.c" #line 307 "Zend/zend_ini_scanner.c"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept = 0; unsigned int yyaccept = 0;
@ -473,11 +480,11 @@ yy2:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(3, *YYCURSOR); YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 481 "Zend/zend_ini_scanner.c" #line 488 "Zend/zend_ini_scanner.c"
yy4: yy4:
YYDEBUG(4, *YYCURSOR); YYDEBUG(4, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -486,24 +493,24 @@ yy4:
yy5: yy5:
YYDEBUG(5, *YYCURSOR); YYDEBUG(5, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 466 "Zend/zend_ini_scanner.l" #line 473 "Zend/zend_ini_scanner.l"
{ {
/* eat whitespace */ /* eat whitespace */
goto restart; goto restart;
} }
#line 495 "Zend/zend_ini_scanner.c" #line 502 "Zend/zend_ini_scanner.c"
yy6: yy6:
YYDEBUG(6, *YYCURSOR); YYDEBUG(6, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
yy7: yy7:
YYDEBUG(7, *YYCURSOR); YYDEBUG(7, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 471 "Zend/zend_ini_scanner.l" #line 478 "Zend/zend_ini_scanner.l"
{ {
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 507 "Zend/zend_ini_scanner.c" #line 514 "Zend/zend_ini_scanner.c"
yy8: yy8:
YYDEBUG(8, *YYCURSOR); YYDEBUG(8, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -514,11 +521,11 @@ yy9:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(10, *YYCURSOR); YYDEBUG(10, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 425 "Zend/zend_ini_scanner.l" #line 432 "Zend/zend_ini_scanner.l"
{ /* Disallow these chars outside option values */ { /* Disallow these chars outside option values */
return yytext[0]; return yytext[0];
} }
#line 522 "Zend/zend_ini_scanner.c" #line 529 "Zend/zend_ini_scanner.c"
yy11: yy11:
YYDEBUG(11, *YYCURSOR); YYDEBUG(11, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -527,11 +534,11 @@ yy11:
yy12: yy12:
YYDEBUG(12, *YYCURSOR); YYDEBUG(12, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 384 "Zend/zend_ini_scanner.l" #line 391 "Zend/zend_ini_scanner.l"
{ /* Get option name */ { /* Get option name */
RETURN_TOKEN(TC_LABEL, yytext, yyleng); RETURN_TOKEN(TC_LABEL, yytext, yyleng);
} }
#line 535 "Zend/zend_ini_scanner.c" #line 542 "Zend/zend_ini_scanner.c"
yy13: yy13:
YYDEBUG(13, *YYCURSOR); YYDEBUG(13, *YYCURSOR);
yyaccept = 1; yyaccept = 1;
@ -545,7 +552,7 @@ yy14:
yy15: yy15:
YYDEBUG(15, *YYCURSOR); YYDEBUG(15, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 388 "Zend/zend_ini_scanner.l" #line 395 "Zend/zend_ini_scanner.l"
{ /* Start option value */ { /* Start option value */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
yy_push_state(ST_RAW TSRMLS_CC); yy_push_state(ST_RAW TSRMLS_CC);
@ -554,7 +561,7 @@ yy15:
} }
return '='; return '=';
} }
#line 558 "Zend/zend_ini_scanner.c" #line 565 "Zend/zend_ini_scanner.c"
yy16: yy16:
YYDEBUG(16, *YYCURSOR); YYDEBUG(16, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -610,7 +617,7 @@ yy21:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(22, *YYCURSOR); YYDEBUG(22, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 322 "Zend/zend_ini_scanner.l" #line 329 "Zend/zend_ini_scanner.l"
{ /* Section start */ { /* Section start */
/* Enter section data lookup state */ /* Enter section data lookup state */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
@ -620,7 +627,7 @@ yy21:
} }
return TC_SECTION; return TC_SECTION;
} }
#line 624 "Zend/zend_ini_scanner.c" #line 631 "Zend/zend_ini_scanner.c"
yy23: yy23:
YYDEBUG(23, *YYCURSOR); YYDEBUG(23, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -650,7 +657,7 @@ yy26:
} }
YYDEBUG(28, *YYCURSOR); YYDEBUG(28, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 347 "Zend/zend_ini_scanner.l" #line 354 "Zend/zend_ini_scanner.l"
{ /* Start of option with offset */ { /* Start of option with offset */
/* Eat trailing whitespace and [ */ /* Eat trailing whitespace and [ */
EAT_TRAILING_WHITESPACE_EX('['); EAT_TRAILING_WHITESPACE_EX('[');
@ -660,7 +667,7 @@ yy26:
RETURN_TOKEN(TC_OFFSET, yytext, yyleng); RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
} }
#line 664 "Zend/zend_ini_scanner.c" #line 671 "Zend/zend_ini_scanner.c"
yy29: yy29:
YYDEBUG(29, *YYCURSOR); YYDEBUG(29, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -672,11 +679,11 @@ yy29:
yy30: yy30:
YYDEBUG(30, *YYCURSOR); YYDEBUG(30, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 376 "Zend/zend_ini_scanner.l" #line 383 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */ { /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1); RETURN_TOKEN(BOOL_TRUE, "1", 1);
} }
#line 680 "Zend/zend_ini_scanner.c" #line 687 "Zend/zend_ini_scanner.c"
yy31: yy31:
YYDEBUG(31, *YYCURSOR); YYDEBUG(31, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -714,11 +721,11 @@ yy36:
yy37: yy37:
YYDEBUG(37, *YYCURSOR); YYDEBUG(37, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 380 "Zend/zend_ini_scanner.l" #line 387 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/ { /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0); RETURN_TOKEN(BOOL_FALSE, "", 0);
} }
#line 722 "Zend/zend_ini_scanner.c" #line 729 "Zend/zend_ini_scanner.c"
yy38: yy38:
YYDEBUG(38, *YYCURSOR); YYDEBUG(38, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -813,13 +820,13 @@ yy51:
yy52: yy52:
YYDEBUG(52, *YYCURSOR); YYDEBUG(52, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 476 "Zend/zend_ini_scanner.l" #line 483 "Zend/zend_ini_scanner.l"
{ /* Comment */ { /* Comment */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 823 "Zend/zend_ini_scanner.c" #line 830 "Zend/zend_ini_scanner.c"
yy53: yy53:
YYDEBUG(53, *YYCURSOR); YYDEBUG(53, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -913,12 +920,12 @@ yyc_ST_DOUBLE_QUOTES:
yy61: yy61:
YYDEBUG(61, *YYCURSOR); YYDEBUG(61, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 452 "Zend/zend_ini_scanner.l" #line 459 "Zend/zend_ini_scanner.l"
{ /* Escape double quoted string contents */ { /* Escape double quoted string contents */
zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
return TC_QUOTED_STRING; return TC_QUOTED_STRING;
} }
#line 922 "Zend/zend_ini_scanner.c" #line 929 "Zend/zend_ini_scanner.c"
yy62: yy62:
YYDEBUG(62, *YYCURSOR); YYDEBUG(62, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -927,12 +934,12 @@ yy62:
yy63: yy63:
YYDEBUG(63, *YYCURSOR); YYDEBUG(63, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 457 "Zend/zend_ini_scanner.l" #line 464 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string ends */ { /* Double quoted '"' string ends */
yy_pop_state(TSRMLS_C); yy_pop_state(TSRMLS_C);
return '"'; return '"';
} }
#line 936 "Zend/zend_ini_scanner.c" #line 943 "Zend/zend_ini_scanner.c"
yy64: yy64:
YYDEBUG(64, *YYCURSOR); YYDEBUG(64, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -956,11 +963,11 @@ yy64:
yy65: yy65:
YYDEBUG(65, *YYCURSOR); YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 964 "Zend/zend_ini_scanner.c" #line 971 "Zend/zend_ini_scanner.c"
yy66: yy66:
YYDEBUG(66, *YYCURSOR); YYDEBUG(66, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1054,12 +1061,12 @@ yy78:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(79, *YYCURSOR); YYDEBUG(79, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 362 "Zend/zend_ini_scanner.l" #line 369 "Zend/zend_ini_scanner.l"
{ /* Variable start */ { /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC); yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY; return TC_DOLLAR_CURLY;
} }
#line 1063 "Zend/zend_ini_scanner.c" #line 1070 "Zend/zend_ini_scanner.c"
yy80: yy80:
YYDEBUG(80, *YYCURSOR); YYDEBUG(80, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -1158,11 +1165,11 @@ yy84:
yy85: yy85:
YYDEBUG(85, *YYCURSOR); YYDEBUG(85, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 443 "Zend/zend_ini_scanner.l" #line 450 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */ { /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng); RETURN_TOKEN(TC_STRING, yytext, yyleng);
} }
#line 1166 "Zend/zend_ini_scanner.c" #line 1173 "Zend/zend_ini_scanner.c"
yy86: yy86:
YYDEBUG(86, *YYCURSOR); YYDEBUG(86, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -1179,23 +1186,23 @@ yy87:
yy88: yy88:
YYDEBUG(88, *YYCURSOR); YYDEBUG(88, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 1187 "Zend/zend_ini_scanner.c" #line 1194 "Zend/zend_ini_scanner.c"
yy89: yy89:
YYDEBUG(89, *YYCURSOR); YYDEBUG(89, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
yy90: yy90:
YYDEBUG(90, *YYCURSOR); YYDEBUG(90, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 447 "Zend/zend_ini_scanner.l" #line 454 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */ { /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"'; return '"';
} }
#line 1199 "Zend/zend_ini_scanner.c" #line 1206 "Zend/zend_ini_scanner.c"
yy91: yy91:
YYDEBUG(91, *YYCURSOR); YYDEBUG(91, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1268,11 +1275,11 @@ yy95:
yy96: yy96:
YYDEBUG(96, *YYCURSOR); YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 421 "Zend/zend_ini_scanner.l" #line 428 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */ { /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng); RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
} }
#line 1276 "Zend/zend_ini_scanner.c" #line 1283 "Zend/zend_ini_scanner.c"
yy97: yy97:
YYDEBUG(97, *YYCURSOR); YYDEBUG(97, *YYCURSOR);
yyaccept = 3; yyaccept = 3;
@ -1298,11 +1305,11 @@ yy97:
yy98: yy98:
YYDEBUG(98, *YYCURSOR); YYDEBUG(98, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 417 "Zend/zend_ini_scanner.l" #line 424 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */ { /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
} }
#line 1306 "Zend/zend_ini_scanner.c" #line 1313 "Zend/zend_ini_scanner.c"
yy99: yy99:
YYDEBUG(99, *YYCURSOR); YYDEBUG(99, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1313,12 +1320,12 @@ yy100:
yy101: yy101:
YYDEBUG(101, *YYCURSOR); YYDEBUG(101, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 357 "Zend/zend_ini_scanner.l" #line 364 "Zend/zend_ini_scanner.l"
{ /* End of section or an option offset */ { /* End of section or an option offset */
BEGIN(INITIAL); BEGIN(INITIAL);
return ']'; return ']';
} }
#line 1322 "Zend/zend_ini_scanner.c" #line 1329 "Zend/zend_ini_scanner.c"
yy102: yy102:
YYDEBUG(102, *YYCURSOR); YYDEBUG(102, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -1617,7 +1624,7 @@ yy123:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(126, *YYCURSOR); YYDEBUG(126, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 332 "Zend/zend_ini_scanner.l" #line 339 "Zend/zend_ini_scanner.l"
{ /* Raw string */ { /* Raw string */
/* Eat leading and trailing single quotes */ /* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@ -1626,18 +1633,18 @@ yy123:
} }
RETURN_TOKEN(TC_RAW, yytext, yyleng); RETURN_TOKEN(TC_RAW, yytext, yyleng);
} }
#line 1630 "Zend/zend_ini_scanner.c" #line 1637 "Zend/zend_ini_scanner.c"
yy127: yy127:
YYDEBUG(127, *YYCURSOR); YYDEBUG(127, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
YYDEBUG(128, *YYCURSOR); YYDEBUG(128, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 362 "Zend/zend_ini_scanner.l" #line 369 "Zend/zend_ini_scanner.l"
{ /* Variable start */ { /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC); yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY; return TC_DOLLAR_CURLY;
} }
#line 1641 "Zend/zend_ini_scanner.c" #line 1648 "Zend/zend_ini_scanner.c"
yy129: yy129:
YYDEBUG(129, *YYCURSOR); YYDEBUG(129, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -1744,7 +1751,7 @@ yy135:
yy136: yy136:
YYDEBUG(136, *YYCURSOR); YYDEBUG(136, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 397 "Zend/zend_ini_scanner.l" #line 404 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
/* Eat leading and trailing double quotes */ /* Eat leading and trailing double quotes */
if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
@ -1754,7 +1761,7 @@ yy136:
} }
RETURN_TOKEN(TC_RAW, yytext, yyleng); RETURN_TOKEN(TC_RAW, yytext, yyleng);
} }
#line 1758 "Zend/zend_ini_scanner.c" #line 1765 "Zend/zend_ini_scanner.c"
yy137: yy137:
YYDEBUG(137, *YYCURSOR); YYDEBUG(137, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -1776,13 +1783,13 @@ yy138:
yy139: yy139:
YYDEBUG(139, *YYCURSOR); YYDEBUG(139, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 411 "Zend/zend_ini_scanner.l" #line 418 "Zend/zend_ini_scanner.l"
{ /* End of option value */ { /* End of option value */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 1786 "Zend/zend_ini_scanner.c" #line 1793 "Zend/zend_ini_scanner.c"
yy140: yy140:
YYDEBUG(140, *YYCURSOR); YYDEBUG(140, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1796,12 +1803,12 @@ yy141:
yy142: yy142:
YYDEBUG(142, *YYCURSOR); YYDEBUG(142, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 482 "Zend/zend_ini_scanner.l" #line 489 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */ { /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
} }
#line 1805 "Zend/zend_ini_scanner.c" #line 1812 "Zend/zend_ini_scanner.c"
yy143: yy143:
YYDEBUG(143, *YYCURSOR); YYDEBUG(143, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1823,13 +1830,13 @@ yy146:
yy147: yy147:
YYDEBUG(147, *YYCURSOR); YYDEBUG(147, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 476 "Zend/zend_ini_scanner.l" #line 483 "Zend/zend_ini_scanner.l"
{ /* Comment */ { /* Comment */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 1833 "Zend/zend_ini_scanner.c" #line 1840 "Zend/zend_ini_scanner.c"
yy148: yy148:
YYDEBUG(148, *YYCURSOR); YYDEBUG(148, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -1931,21 +1938,21 @@ yyc_ST_SECTION_RAW:
yy158: yy158:
YYDEBUG(158, *YYCURSOR); YYDEBUG(158, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 407 "Zend/zend_ini_scanner.l" #line 414 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
RETURN_TOKEN(TC_RAW, yytext, yyleng); RETURN_TOKEN(TC_RAW, yytext, yyleng);
} }
#line 1939 "Zend/zend_ini_scanner.c" #line 1946 "Zend/zend_ini_scanner.c"
yy159: yy159:
YYDEBUG(159, *YYCURSOR); YYDEBUG(159, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
YYDEBUG(160, *YYCURSOR); YYDEBUG(160, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 1949 "Zend/zend_ini_scanner.c" #line 1956 "Zend/zend_ini_scanner.c"
yy161: yy161:
YYDEBUG(161, *YYCURSOR); YYDEBUG(161, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -1954,13 +1961,13 @@ yy161:
yy162: yy162:
YYDEBUG(162, *YYCURSOR); YYDEBUG(162, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 341 "Zend/zend_ini_scanner.l" #line 348 "Zend/zend_ini_scanner.l"
{ /* End of section */ { /* End of section */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return ']'; return ']';
} }
#line 1964 "Zend/zend_ini_scanner.c" #line 1971 "Zend/zend_ini_scanner.c"
yy163: yy163:
YYDEBUG(163, *YYCURSOR); YYDEBUG(163, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -2081,11 +2088,11 @@ yy171:
yy172: yy172:
YYDEBUG(172, *YYCURSOR); YYDEBUG(172, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 443 "Zend/zend_ini_scanner.l" #line 450 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */ { /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng); RETURN_TOKEN(TC_STRING, yytext, yyleng);
} }
#line 2089 "Zend/zend_ini_scanner.c" #line 2096 "Zend/zend_ini_scanner.c"
yy173: yy173:
YYDEBUG(173, *YYCURSOR); YYDEBUG(173, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -2104,23 +2111,23 @@ yy174:
yy175: yy175:
YYDEBUG(175, *YYCURSOR); YYDEBUG(175, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 2112 "Zend/zend_ini_scanner.c" #line 2119 "Zend/zend_ini_scanner.c"
yy176: yy176:
YYDEBUG(176, *YYCURSOR); YYDEBUG(176, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
yy177: yy177:
YYDEBUG(177, *YYCURSOR); YYDEBUG(177, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 447 "Zend/zend_ini_scanner.l" #line 454 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */ { /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"'; return '"';
} }
#line 2124 "Zend/zend_ini_scanner.c" #line 2131 "Zend/zend_ini_scanner.c"
yy178: yy178:
YYDEBUG(178, *YYCURSOR); YYDEBUG(178, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -2193,11 +2200,11 @@ yy182:
yy183: yy183:
YYDEBUG(183, *YYCURSOR); YYDEBUG(183, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 421 "Zend/zend_ini_scanner.l" #line 428 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */ { /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng); RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
} }
#line 2201 "Zend/zend_ini_scanner.c" #line 2208 "Zend/zend_ini_scanner.c"
yy184: yy184:
YYDEBUG(184, *YYCURSOR); YYDEBUG(184, *YYCURSOR);
yyaccept = 3; yyaccept = 3;
@ -2223,11 +2230,11 @@ yy184:
yy185: yy185:
YYDEBUG(185, *YYCURSOR); YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 417 "Zend/zend_ini_scanner.l" #line 424 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */ { /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
} }
#line 2231 "Zend/zend_ini_scanner.c" #line 2238 "Zend/zend_ini_scanner.c"
yy186: yy186:
YYDEBUG(186, *YYCURSOR); YYDEBUG(186, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -2240,13 +2247,13 @@ yy187:
yy188: yy188:
YYDEBUG(188, *YYCURSOR); YYDEBUG(188, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 341 "Zend/zend_ini_scanner.l" #line 348 "Zend/zend_ini_scanner.l"
{ /* End of section */ { /* End of section */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return ']'; return ']';
} }
#line 2250 "Zend/zend_ini_scanner.c" #line 2257 "Zend/zend_ini_scanner.c"
yy189: yy189:
YYDEBUG(189, *YYCURSOR); YYDEBUG(189, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -2567,7 +2574,7 @@ yy214:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(217, *YYCURSOR); YYDEBUG(217, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 332 "Zend/zend_ini_scanner.l" #line 339 "Zend/zend_ini_scanner.l"
{ /* Raw string */ { /* Raw string */
/* Eat leading and trailing single quotes */ /* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@ -2576,18 +2583,18 @@ yy214:
} }
RETURN_TOKEN(TC_RAW, yytext, yyleng); RETURN_TOKEN(TC_RAW, yytext, yyleng);
} }
#line 2580 "Zend/zend_ini_scanner.c" #line 2587 "Zend/zend_ini_scanner.c"
yy218: yy218:
YYDEBUG(218, *YYCURSOR); YYDEBUG(218, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
YYDEBUG(219, *YYCURSOR); YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 362 "Zend/zend_ini_scanner.l" #line 369 "Zend/zend_ini_scanner.l"
{ /* Variable start */ { /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC); yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY; return TC_DOLLAR_CURLY;
} }
#line 2591 "Zend/zend_ini_scanner.c" #line 2598 "Zend/zend_ini_scanner.c"
yy220: yy220:
YYDEBUG(220, *YYCURSOR); YYDEBUG(220, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -2766,12 +2773,12 @@ yy225:
yy226: yy226:
YYDEBUG(226, *YYCURSOR); YYDEBUG(226, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 482 "Zend/zend_ini_scanner.l" #line 489 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */ { /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
} }
#line 2775 "Zend/zend_ini_scanner.c" #line 2782 "Zend/zend_ini_scanner.c"
yy227: yy227:
YYDEBUG(227, *YYCURSOR); YYDEBUG(227, *YYCURSOR);
yyaccept = 0; yyaccept = 0;
@ -2780,11 +2787,11 @@ yy227:
yy228: yy228:
YYDEBUG(228, *YYCURSOR); YYDEBUG(228, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 439 "Zend/zend_ini_scanner.l" #line 446 "Zend/zend_ini_scanner.l"
{ /* Get everything else as option/offset value */ { /* Get everything else as option/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng); RETURN_TOKEN(TC_STRING, yytext, yyleng);
} }
#line 2788 "Zend/zend_ini_scanner.c" #line 2795 "Zend/zend_ini_scanner.c"
yy229: yy229:
YYDEBUG(229, *YYCURSOR); YYDEBUG(229, *YYCURSOR);
yyaccept = 1; yyaccept = 1;
@ -2793,24 +2800,24 @@ yy229:
yy230: yy230:
YYDEBUG(230, *YYCURSOR); YYDEBUG(230, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 462 "Zend/zend_ini_scanner.l" #line 469 "Zend/zend_ini_scanner.l"
{ {
RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
} }
#line 2801 "Zend/zend_ini_scanner.c" #line 2808 "Zend/zend_ini_scanner.c"
yy231: yy231:
YYDEBUG(231, *YYCURSOR); YYDEBUG(231, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
yy232: yy232:
YYDEBUG(232, *YYCURSOR); YYDEBUG(232, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 411 "Zend/zend_ini_scanner.l" #line 418 "Zend/zend_ini_scanner.l"
{ /* End of option value */ { /* End of option value */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 2814 "Zend/zend_ini_scanner.c" #line 2821 "Zend/zend_ini_scanner.c"
yy233: yy233:
YYDEBUG(233, *YYCURSOR); YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -2824,23 +2831,23 @@ yy234:
yy235: yy235:
YYDEBUG(235, *YYCURSOR); YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 429 "Zend/zend_ini_scanner.l" #line 436 "Zend/zend_ini_scanner.l"
{ /* Boolean operators */ { /* Boolean operators */
return yytext[0]; return yytext[0];
} }
#line 2832 "Zend/zend_ini_scanner.c" #line 2839 "Zend/zend_ini_scanner.c"
yy236: yy236:
YYDEBUG(236, *YYCURSOR); YYDEBUG(236, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
yy237: yy237:
YYDEBUG(237, *YYCURSOR); YYDEBUG(237, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 447 "Zend/zend_ini_scanner.l" #line 454 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */ { /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"'; return '"';
} }
#line 2844 "Zend/zend_ini_scanner.c" #line 2851 "Zend/zend_ini_scanner.c"
yy238: yy238:
YYDEBUG(238, *YYCURSOR); YYDEBUG(238, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -2927,11 +2934,11 @@ yy242:
yy243: yy243:
YYDEBUG(243, *YYCURSOR); YYDEBUG(243, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 421 "Zend/zend_ini_scanner.l" #line 428 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */ { /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng); RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
} }
#line 2935 "Zend/zend_ini_scanner.c" #line 2942 "Zend/zend_ini_scanner.c"
yy244: yy244:
YYDEBUG(244, *YYCURSOR); YYDEBUG(244, *YYCURSOR);
yyaccept = 2; yyaccept = 2;
@ -2942,13 +2949,13 @@ yy245:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(246, *YYCURSOR); YYDEBUG(246, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 433 "Zend/zend_ini_scanner.l" #line 440 "Zend/zend_ini_scanner.l"
{ /* Make = used in option value to trigger error */ { /* Make = used in option value to trigger error */
yyless(0); yyless(0);
BEGIN(INITIAL); BEGIN(INITIAL);
return END_OF_LINE; return END_OF_LINE;
} }
#line 2952 "Zend/zend_ini_scanner.c" #line 2959 "Zend/zend_ini_scanner.c"
yy247: yy247:
YYDEBUG(247, *YYCURSOR); YYDEBUG(247, *YYCURSOR);
yyaccept = 4; yyaccept = 4;
@ -2984,11 +2991,11 @@ yy247:
yy248: yy248:
YYDEBUG(248, *YYCURSOR); YYDEBUG(248, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 417 "Zend/zend_ini_scanner.l" #line 424 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */ { /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
} }
#line 2992 "Zend/zend_ini_scanner.c" #line 2999 "Zend/zend_ini_scanner.c"
yy249: yy249:
YYDEBUG(249, *YYCURSOR); YYDEBUG(249, *YYCURSOR);
yyaccept = 4; yyaccept = 4;
@ -3489,11 +3496,11 @@ yy264:
yy265: yy265:
YYDEBUG(265, *YYCURSOR); YYDEBUG(265, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 376 "Zend/zend_ini_scanner.l" #line 383 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */ { /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1); RETURN_TOKEN(BOOL_TRUE, "1", 1);
} }
#line 3497 "Zend/zend_ini_scanner.c" #line 3504 "Zend/zend_ini_scanner.c"
yy266: yy266:
YYDEBUG(266, *YYCURSOR); YYDEBUG(266, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -3693,11 +3700,11 @@ yy271:
yy272: yy272:
YYDEBUG(272, *YYCURSOR); YYDEBUG(272, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 380 "Zend/zend_ini_scanner.l" #line 387 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/ { /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0); RETURN_TOKEN(BOOL_FALSE, "", 0);
} }
#line 3701 "Zend/zend_ini_scanner.c" #line 3708 "Zend/zend_ini_scanner.c"
yy273: yy273:
YYDEBUG(273, *YYCURSOR); YYDEBUG(273, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -4073,13 +4080,13 @@ yy284:
yy285: yy285:
YYDEBUG(285, *YYCURSOR); YYDEBUG(285, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 476 "Zend/zend_ini_scanner.l" #line 483 "Zend/zend_ini_scanner.l"
{ /* Comment */ { /* Comment */
BEGIN(INITIAL); BEGIN(INITIAL);
SCNG(lineno)++; SCNG(lineno)++;
return END_OF_LINE; return END_OF_LINE;
} }
#line 4083 "Zend/zend_ini_scanner.c" #line 4090 "Zend/zend_ini_scanner.c"
yy286: yy286:
YYDEBUG(286, *YYCURSOR); YYDEBUG(286, *YYCURSOR);
yych = *++YYCURSOR; yych = *++YYCURSOR;
@ -4291,7 +4298,7 @@ yy295:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(298, *YYCURSOR); YYDEBUG(298, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 332 "Zend/zend_ini_scanner.l" #line 339 "Zend/zend_ini_scanner.l"
{ /* Raw string */ { /* Raw string */
/* Eat leading and trailing single quotes */ /* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@ -4300,18 +4307,18 @@ yy295:
} }
RETURN_TOKEN(TC_RAW, yytext, yyleng); RETURN_TOKEN(TC_RAW, yytext, yyleng);
} }
#line 4304 "Zend/zend_ini_scanner.c" #line 4311 "Zend/zend_ini_scanner.c"
yy299: yy299:
YYDEBUG(299, *YYCURSOR); YYDEBUG(299, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
YYDEBUG(300, *YYCURSOR); YYDEBUG(300, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 362 "Zend/zend_ini_scanner.l" #line 369 "Zend/zend_ini_scanner.l"
{ /* Variable start */ { /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC); yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY; return TC_DOLLAR_CURLY;
} }
#line 4315 "Zend/zend_ini_scanner.c" #line 4322 "Zend/zend_ini_scanner.c"
yy301: yy301:
YYDEBUG(301, *YYCURSOR); YYDEBUG(301, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -4417,11 +4424,11 @@ yy310:
++YYCURSOR; ++YYCURSOR;
YYDEBUG(311, *YYCURSOR); YYDEBUG(311, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 487 "Zend/zend_ini_scanner.l" #line 494 "Zend/zend_ini_scanner.l"
{ {
return 0; return 0;
} }
#line 4425 "Zend/zend_ini_scanner.c" #line 4432 "Zend/zend_ini_scanner.c"
yy312: yy312:
YYDEBUG(312, *YYCURSOR); YYDEBUG(312, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -4430,22 +4437,22 @@ yy312:
yy313: yy313:
YYDEBUG(313, *YYCURSOR); YYDEBUG(313, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 367 "Zend/zend_ini_scanner.l" #line 374 "Zend/zend_ini_scanner.l"
{ /* Variable name */ { /* Variable name */
RETURN_TOKEN(TC_VARNAME, yytext, yyleng); RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
} }
#line 4438 "Zend/zend_ini_scanner.c" #line 4445 "Zend/zend_ini_scanner.c"
yy314: yy314:
YYDEBUG(314, *YYCURSOR); YYDEBUG(314, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
YYDEBUG(315, *YYCURSOR); YYDEBUG(315, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text); yyleng = YYCURSOR - SCNG(yy_text);
#line 371 "Zend/zend_ini_scanner.l" #line 378 "Zend/zend_ini_scanner.l"
{ /* Variable end */ { /* Variable end */
yy_pop_state(TSRMLS_C); yy_pop_state(TSRMLS_C);
return '}'; return '}';
} }
#line 4449 "Zend/zend_ini_scanner.c" #line 4456 "Zend/zend_ini_scanner.c"
yy316: yy316:
YYDEBUG(316, *YYCURSOR); YYDEBUG(316, *YYCURSOR);
++YYCURSOR; ++YYCURSOR;
@ -4459,6 +4466,6 @@ yy317:
goto yy313; goto yy313;
} }
} }
#line 491 "Zend/zend_ini_scanner.l" #line 498 "Zend/zend_ini_scanner.l"
} }

View file

@ -22,6 +22,11 @@
/* $Id$ */ /* $Id$ */
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
#if 0 #if 0
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
@ -50,6 +55,14 @@
#define yyless(x) YYCURSOR = yytext + x #define yyless(x) YYCURSOR = yytext + x
/* #define yymore() goto yymore_restart */ /* #define yymore() goto yymore_restart */
/* perform sanity check. If this message is triggered you should
increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
/*!max:re2c */
#if ZEND_MMAP_AHEAD < YYMAXFILL
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
#endif
/* How it works (for the core ini directives): /* How it works (for the core ini directives):
* =========================================== * ===========================================
* *
@ -80,12 +93,6 @@
* *
*/ */
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
/* Globals Macros */ /* Globals Macros */
#define SCNG INI_SCNG #define SCNG INI_SCNG
#ifdef ZTS #ifdef ZTS

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:41:39 2008 */ /* Generated by re2c 0.13.4.dev on Fri Apr 4 15:52:51 2008 */
#line 3 "Zend/zend_ini_scanner_defs.h" #line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE { enum YYCONDTYPE {

File diff suppressed because it is too large Load diff

View file

@ -66,6 +66,13 @@
#define yyless(x) YYCURSOR = yytext + x #define yyless(x) YYCURSOR = yytext + x
#define yymore() goto yymore_restart #define yymore() goto yymore_restart
/* perform sanity check. If this message is triggered you should
increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
/*!max:re2c */
#if ZEND_MMAP_AHEAD < YYMAXFILL
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
#endif
#ifdef HAVE_STDARG_H #ifdef HAVE_STDARG_H
# include <stdarg.h> # include <stdarg.h>
#endif #endif
@ -356,9 +363,9 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC) ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
{ {
/* enforce two trailing NULLs for flex... */ /* enforce two trailing NULLs for flex... */
STR_REALLOC(str->value.str.val, str->value.str.len+2); str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
str->value.str.val[str->value.str.len+1]=0; memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
SCNG(yy_in)=NULL; SCNG(yy_in)=NULL;

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:45 2008 */ /* Generated by re2c 0.13.4.dev on Fri Apr 4 15:52:47 2008 */
#line 3 "Zend/zend_language_scanner_defs.h" #line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE { enum YYCONDTYPE {

View file

@ -31,7 +31,7 @@ typedef size_t (*zend_stream_fsizer_t)(void* handle TSRMLS_DC);
typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len TSRMLS_DC); typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len TSRMLS_DC);
typedef void (*zend_stream_closer_t)(void* handle TSRMLS_DC); typedef void (*zend_stream_closer_t)(void* handle TSRMLS_DC);
#define ZEND_MMAP_AHEAD 32 #define ZEND_MMAP_AHEAD 16
typedef enum { typedef enum {
ZEND_HANDLE_FILENAME, ZEND_HANDLE_FILENAME,