cvs: ZendEngine2 / zend_ini_scanner.c zend_ini_scanner.l zend_ini_scanner_defs.h

"Arnaud Le Blanc" <[email protected]>
Newsgroups gmane.comp.php.cvs.zend
Message-ID <cvslbarnaud1219006654@cvsserver>
lbarnaud		Sun Aug 17 20:57:34 2008 UTC

  Modified files:              
    /ZendEngine2	zend_ini_scanner.l zend_ini_scanner.c 
                	zend_ini_scanner_defs.h 
  Log:
  Fixed #45384 (parse_ini_file will result in parse error with no trailing
   newline)

-- 
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lbarnaud-20080817205734.txt (text/plain, 25 KB)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ini_scanner.l?r1=1.54&r2=1.55&diff_format=u
Index: ZendEngine2/zend_ini_scanner.l
diff -u ZendEngine2/zend_ini_scanner.l:1.54 ZendEngine2/zend_ini_scanner.l:1.55
--- ZendEngine2/zend_ini_scanner.l:1.54	Thu Aug  7 12:23:54 2008
+++ ZendEngine2/zend_ini_scanner.l	Sun Aug 17 20:57:34 2008
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_ini_scanner.l,v 1.54 2008/08/07 12:23:54 nlopess Exp $ */
+/* $Id: zend_ini_scanner.l,v 1.55 2008/08/17 20:57:34 lbarnaud Exp $ */
 
 #include <errno.h>
 #include "zend.h"
@@ -37,7 +37,9 @@
 #include "zend_ini_scanner_defs.h"
 
 #define YYCTYPE   unsigned char
-#define YYFILL(n) { if (YYCURSOR >= YYLIMIT) return 0; }
+/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
+ * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
+#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
 #define YYCURSOR  SCNG(yy_cursor)
 #define YYLIMIT   SCNG(yy_limit)
 #define YYMARKER  SCNG(yy_marker)
@@ -58,8 +60,8 @@
 /* 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
+#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
+# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
 #endif
 
 
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ini_scanner.c?r1=1.5&r2=1.6&diff_format=u
Index: ZendEngine2/zend_ini_scanner.c
diff -u ZendEngine2/zend_ini_scanner.c:1.5 ZendEngine2/zend_ini_scanner.c:1.6
--- ZendEngine2/zend_ini_scanner.c:1.5	Thu Aug  7 12:32:48 2008
+++ ZendEngine2/zend_ini_scanner.c	Sun Aug 17 20:57:34 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.6.dev on Thu Aug  7 13:31:43 2008 */
+/* Generated by re2c 0.13.5 on Sun Aug 17 22:48:59 2008 */
 #line 1 "Zend/zend_ini_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -22,7 +22,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_ini_scanner.c,v 1.5 2008/08/07 12:32:48 nlopess Exp $ */
+/* $Id: zend_ini_scanner.c,v 1.6 2008/08/17 20:57:34 lbarnaud Exp $ */
 
 #include <errno.h>
 #include "zend.h"
@@ -39,7 +39,9 @@
 #include "zend_ini_scanner_defs.h"
 
 #define YYCTYPE   unsigned char
-#define YYFILL(n) { if (YYCURSOR >= YYLIMIT) return 0; }
+/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
+ * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
+#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
 #define YYCURSOR  SCNG(yy_cursor)
 #define YYLIMIT   SCNG(yy_limit)
 #define YYMARKER  SCNG(yy_marker)
@@ -60,8 +62,8 @@
 /* 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
+#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
+# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
 #endif
 
 
@@ -303,7 +305,7 @@
 	}
 
 
-#line 307 "Zend/zend_ini_scanner.c"
+#line 309 "Zend/zend_ini_scanner.c"
 {
 	YYCTYPE yych;
 	unsigned int yyaccept = 0;
@@ -480,11 +482,11 @@
 		++YYCURSOR;
 		YYDEBUG(3, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 488 "Zend/zend_ini_scanner.c"
+#line 490 "Zend/zend_ini_scanner.c"
 yy4:
 		YYDEBUG(4, *YYCURSOR);
 		yyaccept = 0;
@@ -493,24 +495,24 @@
 yy5:
 		YYDEBUG(5, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 473 "Zend/zend_ini_scanner.l"
+#line 475 "Zend/zend_ini_scanner.l"
 		{
 	/* eat whitespace */
 	goto restart;
 }
-#line 502 "Zend/zend_ini_scanner.c"
+#line 504 "Zend/zend_ini_scanner.c"
 yy6:
 		YYDEBUG(6, *YYCURSOR);
 		++YYCURSOR;
 yy7:
 		YYDEBUG(7, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 478 "Zend/zend_ini_scanner.l"
+#line 480 "Zend/zend_ini_scanner.l"
 		{
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 514 "Zend/zend_ini_scanner.c"
+#line 516 "Zend/zend_ini_scanner.c"
 yy8:
 		YYDEBUG(8, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -521,11 +523,11 @@
 		++YYCURSOR;
 		YYDEBUG(10, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 432 "Zend/zend_ini_scanner.l"
+#line 434 "Zend/zend_ini_scanner.l"
 		{ /* Disallow these chars outside option values */
 	return yytext[0];
 }
-#line 529 "Zend/zend_ini_scanner.c"
+#line 531 "Zend/zend_ini_scanner.c"
 yy11:
 		YYDEBUG(11, *YYCURSOR);
 		++YYCURSOR;
@@ -534,11 +536,11 @@
 yy12:
 		YYDEBUG(12, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 392 "Zend/zend_ini_scanner.l"
+#line 394 "Zend/zend_ini_scanner.l"
 		{ /* Get option name */
 	RETURN_TOKEN(TC_LABEL, yytext, yyleng);
 }
-#line 542 "Zend/zend_ini_scanner.c"
+#line 544 "Zend/zend_ini_scanner.c"
 yy13:
 		YYDEBUG(13, *YYCURSOR);
 		yyaccept = 1;
@@ -552,7 +554,7 @@
 yy15:
 		YYDEBUG(15, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 396 "Zend/zend_ini_scanner.l"
+#line 398 "Zend/zend_ini_scanner.l"
 		{ /* Start option value */
 	if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
 		yy_push_state(ST_RAW TSRMLS_CC);
@@ -561,7 +563,7 @@
 	}
 	return '=';
 }
-#line 565 "Zend/zend_ini_scanner.c"
+#line 567 "Zend/zend_ini_scanner.c"
 yy16:
 		YYDEBUG(16, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -617,7 +619,7 @@
 		++YYCURSOR;
 		YYDEBUG(22, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 330 "Zend/zend_ini_scanner.l"
+#line 332 "Zend/zend_ini_scanner.l"
 		{ /* Section start */
 	/* Enter section data lookup state */
 	if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
@@ -627,7 +629,7 @@
 	}
 	return TC_SECTION;
 }
-#line 631 "Zend/zend_ini_scanner.c"
+#line 633 "Zend/zend_ini_scanner.c"
 yy23:
 		YYDEBUG(23, *YYCURSOR);
 		++YYCURSOR;
@@ -657,7 +659,7 @@
 		}
 		YYDEBUG(28, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 355 "Zend/zend_ini_scanner.l"
+#line 357 "Zend/zend_ini_scanner.l"
 		{ /* Start of option with offset */
 	/* Eat trailing whitespace and [ */
 	EAT_TRAILING_WHITESPACE_EX('[');
@@ -667,7 +669,7 @@
 
 	RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
 }
-#line 671 "Zend/zend_ini_scanner.c"
+#line 673 "Zend/zend_ini_scanner.c"
 yy29:
 		YYDEBUG(29, *YYCURSOR);
 		++YYCURSOR;
@@ -679,11 +681,11 @@
 yy30:
 		YYDEBUG(30, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 384 "Zend/zend_ini_scanner.l"
+#line 386 "Zend/zend_ini_scanner.l"
 		{ /* TRUE value (when used outside option value/offset this causes parse error!) */
 	RETURN_TOKEN(BOOL_TRUE, "1", 1);
 }
-#line 687 "Zend/zend_ini_scanner.c"
+#line 689 "Zend/zend_ini_scanner.c"
 yy31:
 		YYDEBUG(31, *YYCURSOR);
 		++YYCURSOR;
@@ -721,11 +723,11 @@
 yy37:
 		YYDEBUG(37, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 388 "Zend/zend_ini_scanner.l"
+#line 390 "Zend/zend_ini_scanner.l"
 		{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
 	RETURN_TOKEN(BOOL_FALSE, "", 0);
 }
-#line 729 "Zend/zend_ini_scanner.c"
+#line 731 "Zend/zend_ini_scanner.c"
 yy38:
 		YYDEBUG(38, *YYCURSOR);
 		++YYCURSOR;
@@ -820,13 +822,13 @@
 yy52:
 		YYDEBUG(52, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 483 "Zend/zend_ini_scanner.l"
+#line 485 "Zend/zend_ini_scanner.l"
 		{ /* Comment */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 830 "Zend/zend_ini_scanner.c"
+#line 832 "Zend/zend_ini_scanner.c"
 yy53:
 		YYDEBUG(53, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -920,12 +922,12 @@
 yy61:
 		YYDEBUG(61, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 459 "Zend/zend_ini_scanner.l"
+#line 461 "Zend/zend_ini_scanner.l"
 		{ /* Escape double quoted string contents */
 	zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
 	return TC_QUOTED_STRING;
 }
-#line 929 "Zend/zend_ini_scanner.c"
+#line 931 "Zend/zend_ini_scanner.c"
 yy62:
 		YYDEBUG(62, *YYCURSOR);
 		++YYCURSOR;
@@ -934,12 +936,12 @@
 yy63:
 		YYDEBUG(63, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 464 "Zend/zend_ini_scanner.l"
+#line 466 "Zend/zend_ini_scanner.l"
 		{ /* Double quoted '"' string ends */
 	yy_pop_state(TSRMLS_C);
 	return '"';
 }
-#line 943 "Zend/zend_ini_scanner.c"
+#line 945 "Zend/zend_ini_scanner.c"
 yy64:
 		YYDEBUG(64, *YYCURSOR);
 		++YYCURSOR;
@@ -954,11 +956,11 @@
 yy65:
 		YYDEBUG(65, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 962 "Zend/zend_ini_scanner.c"
+#line 964 "Zend/zend_ini_scanner.c"
 yy66:
 		YYDEBUG(66, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1043,12 +1045,12 @@
 		++YYCURSOR;
 		YYDEBUG(79, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 370 "Zend/zend_ini_scanner.l"
+#line 372 "Zend/zend_ini_scanner.l"
 		{ /* Variable start */
 	yy_push_state(ST_VARNAME TSRMLS_CC);
 	return TC_DOLLAR_CURLY;
 }
-#line 1052 "Zend/zend_ini_scanner.c"
+#line 1054 "Zend/zend_ini_scanner.c"
 yy80:
 		YYDEBUG(80, *YYCURSOR);
 		++YYCURSOR;
@@ -1147,11 +1149,11 @@
 yy85:
 		YYDEBUG(85, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 450 "Zend/zend_ini_scanner.l"
+#line 452 "Zend/zend_ini_scanner.l"
 		{ /* Get rest as section/offset value */
 	RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 1155 "Zend/zend_ini_scanner.c"
+#line 1157 "Zend/zend_ini_scanner.c"
 yy86:
 		YYDEBUG(86, *YYCURSOR);
 		yyaccept = 0;
@@ -1168,23 +1170,23 @@
 yy88:
 		YYDEBUG(88, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 1176 "Zend/zend_ini_scanner.c"
+#line 1178 "Zend/zend_ini_scanner.c"
 yy89:
 		YYDEBUG(89, *YYCURSOR);
 		++YYCURSOR;
 yy90:
 		YYDEBUG(90, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 454 "Zend/zend_ini_scanner.l"
+#line 456 "Zend/zend_ini_scanner.l"
 		{ /* Double quoted '"' string start */
 	yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
 	return '"';
 }
-#line 1188 "Zend/zend_ini_scanner.c"
+#line 1190 "Zend/zend_ini_scanner.c"
 yy91:
 		YYDEBUG(91, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1246,11 +1248,11 @@
 yy96:
 		YYDEBUG(96, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 428 "Zend/zend_ini_scanner.l"
+#line 430 "Zend/zend_ini_scanner.l"
 		{ /* Get number option value as string */
 	RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 1254 "Zend/zend_ini_scanner.c"
+#line 1256 "Zend/zend_ini_scanner.c"
 yy97:
 		YYDEBUG(97, *YYCURSOR);
 		yyaccept = 3;
@@ -1276,11 +1278,11 @@
 yy98:
 		YYDEBUG(98, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 424 "Zend/zend_ini_scanner.l"
+#line 426 "Zend/zend_ini_scanner.l"
 		{ /* Get constant option value */
 	RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 1284 "Zend/zend_ini_scanner.c"
+#line 1286 "Zend/zend_ini_scanner.c"
 yy99:
 		YYDEBUG(99, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1291,12 +1293,12 @@
 yy101:
 		YYDEBUG(101, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 365 "Zend/zend_ini_scanner.l"
+#line 367 "Zend/zend_ini_scanner.l"
 		{ /* End of section or an option offset */
 	BEGIN(INITIAL);
 	return ']';
 }
-#line 1300 "Zend/zend_ini_scanner.c"
+#line 1302 "Zend/zend_ini_scanner.c"
 yy102:
 		YYDEBUG(102, *YYCURSOR);
 		yyaccept = 0;
@@ -1586,7 +1588,7 @@
 		++YYCURSOR;
 		YYDEBUG(126, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 340 "Zend/zend_ini_scanner.l"
+#line 342 "Zend/zend_ini_scanner.l"
 		{ /* Raw string */
 	/* Eat leading and trailing single quotes */
 	if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -1595,18 +1597,18 @@
 	}
 	RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1599 "Zend/zend_ini_scanner.c"
+#line 1601 "Zend/zend_ini_scanner.c"
 yy127:
 		YYDEBUG(127, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(128, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 370 "Zend/zend_ini_scanner.l"
+#line 372 "Zend/zend_ini_scanner.l"
 		{ /* Variable start */
 	yy_push_state(ST_VARNAME TSRMLS_CC);
 	return TC_DOLLAR_CURLY;
 }
-#line 1610 "Zend/zend_ini_scanner.c"
+#line 1612 "Zend/zend_ini_scanner.c"
 yy129:
 		YYDEBUG(129, *YYCURSOR);
 		yyaccept = 0;
@@ -1713,7 +1715,7 @@
 yy136:
 		YYDEBUG(136, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 405 "Zend/zend_ini_scanner.l"
+#line 407 "Zend/zend_ini_scanner.l"
 		{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
 	/* Eat leading and trailing double quotes */
 	if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
@@ -1722,7 +1724,7 @@
 	}
 	RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1726 "Zend/zend_ini_scanner.c"
+#line 1728 "Zend/zend_ini_scanner.c"
 yy137:
 		YYDEBUG(137, *YYCURSOR);
 		yyaccept = 0;
@@ -1744,13 +1746,13 @@
 yy139:
 		YYDEBUG(139, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 418 "Zend/zend_ini_scanner.l"
+#line 420 "Zend/zend_ini_scanner.l"
 		{ /* End of option value */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 1754 "Zend/zend_ini_scanner.c"
+#line 1756 "Zend/zend_ini_scanner.c"
 yy140:
 		YYDEBUG(140, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1764,12 +1766,12 @@
 yy142:
 		YYDEBUG(142, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 489 "Zend/zend_ini_scanner.l"
+#line 491 "Zend/zend_ini_scanner.l"
 		{ /* End of option value (if EOF is reached before EOL) */
 	BEGIN(INITIAL);
 	return END_OF_LINE;
 }
-#line 1773 "Zend/zend_ini_scanner.c"
+#line 1775 "Zend/zend_ini_scanner.c"
 yy143:
 		YYDEBUG(143, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1791,13 +1793,13 @@
 yy147:
 		YYDEBUG(147, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 483 "Zend/zend_ini_scanner.l"
+#line 485 "Zend/zend_ini_scanner.l"
 		{ /* Comment */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 1801 "Zend/zend_ini_scanner.c"
+#line 1803 "Zend/zend_ini_scanner.c"
 yy148:
 		YYDEBUG(148, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1899,21 +1901,21 @@
 yy158:
 		YYDEBUG(158, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 414 "Zend/zend_ini_scanner.l"
+#line 416 "Zend/zend_ini_scanner.l"
 		{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
 	RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1907 "Zend/zend_ini_scanner.c"
+#line 1909 "Zend/zend_ini_scanner.c"
 yy159:
 		YYDEBUG(159, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(160, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 1917 "Zend/zend_ini_scanner.c"
+#line 1919 "Zend/zend_ini_scanner.c"
 yy161:
 		YYDEBUG(161, *YYCURSOR);
 		++YYCURSOR;
@@ -1922,13 +1924,13 @@
 yy162:
 		YYDEBUG(162, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 349 "Zend/zend_ini_scanner.l"
+#line 351 "Zend/zend_ini_scanner.l"
 		{ /* End of section */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return ']';
 }
-#line 1932 "Zend/zend_ini_scanner.c"
+#line 1934 "Zend/zend_ini_scanner.c"
 yy163:
 		YYDEBUG(163, *YYCURSOR);
 		++YYCURSOR;
@@ -2049,11 +2051,11 @@
 yy172:
 		YYDEBUG(172, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 450 "Zend/zend_ini_scanner.l"
+#line 452 "Zend/zend_ini_scanner.l"
 		{ /* Get rest as section/offset value */
 	RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2057 "Zend/zend_ini_scanner.c"
+#line 2059 "Zend/zend_ini_scanner.c"
 yy173:
 		YYDEBUG(173, *YYCURSOR);
 		yyaccept = 0;
@@ -2072,23 +2074,23 @@
 yy175:
 		YYDEBUG(175, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 2080 "Zend/zend_ini_scanner.c"
+#line 2082 "Zend/zend_ini_scanner.c"
 yy176:
 		YYDEBUG(176, *YYCURSOR);
 		++YYCURSOR;
 yy177:
 		YYDEBUG(177, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 454 "Zend/zend_ini_scanner.l"
+#line 456 "Zend/zend_ini_scanner.l"
 		{ /* Double quoted '"' string start */
 	yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
 	return '"';
 }
-#line 2092 "Zend/zend_ini_scanner.c"
+#line 2094 "Zend/zend_ini_scanner.c"
 yy178:
 		YYDEBUG(178, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2150,11 +2152,11 @@
 yy183:
 		YYDEBUG(183, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 428 "Zend/zend_ini_scanner.l"
+#line 430 "Zend/zend_ini_scanner.l"
 		{ /* Get number option value as string */
 	RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 2158 "Zend/zend_ini_scanner.c"
+#line 2160 "Zend/zend_ini_scanner.c"
 yy184:
 		YYDEBUG(184, *YYCURSOR);
 		yyaccept = 3;
@@ -2180,11 +2182,11 @@
 yy185:
 		YYDEBUG(185, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 424 "Zend/zend_ini_scanner.l"
+#line 426 "Zend/zend_ini_scanner.l"
 		{ /* Get constant option value */
 	RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 2188 "Zend/zend_ini_scanner.c"
+#line 2190 "Zend/zend_ini_scanner.c"
 yy186:
 		YYDEBUG(186, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2197,13 +2199,13 @@
 yy188:
 		YYDEBUG(188, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 349 "Zend/zend_ini_scanner.l"
+#line 351 "Zend/zend_ini_scanner.l"
 		{ /* End of section */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return ']';
 }
-#line 2207 "Zend/zend_ini_scanner.c"
+#line 2209 "Zend/zend_ini_scanner.c"
 yy189:
 		YYDEBUG(189, *YYCURSOR);
 		++YYCURSOR;
@@ -2515,7 +2517,7 @@
 		++YYCURSOR;
 		YYDEBUG(217, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 340 "Zend/zend_ini_scanner.l"
+#line 342 "Zend/zend_ini_scanner.l"
 		{ /* Raw string */
 	/* Eat leading and trailing single quotes */
 	if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -2524,18 +2526,18 @@
 	}
 	RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 2528 "Zend/zend_ini_scanner.c"
+#line 2530 "Zend/zend_ini_scanner.c"
 yy218:
 		YYDEBUG(218, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(219, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 370 "Zend/zend_ini_scanner.l"
+#line 372 "Zend/zend_ini_scanner.l"
 		{ /* Variable start */
 	yy_push_state(ST_VARNAME TSRMLS_CC);
 	return TC_DOLLAR_CURLY;
 }
-#line 2539 "Zend/zend_ini_scanner.c"
+#line 2541 "Zend/zend_ini_scanner.c"
 yy220:
 		YYDEBUG(220, *YYCURSOR);
 		yyaccept = 0;
@@ -2714,12 +2716,12 @@
 yy226:
 		YYDEBUG(226, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 489 "Zend/zend_ini_scanner.l"
+#line 491 "Zend/zend_ini_scanner.l"
 		{ /* End of option value (if EOF is reached before EOL) */
 	BEGIN(INITIAL);
 	return END_OF_LINE;
 }
-#line 2723 "Zend/zend_ini_scanner.c"
+#line 2725 "Zend/zend_ini_scanner.c"
 yy227:
 		YYDEBUG(227, *YYCURSOR);
 		yyaccept = 0;
@@ -2728,11 +2730,11 @@
 yy228:
 		YYDEBUG(228, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 446 "Zend/zend_ini_scanner.l"
+#line 448 "Zend/zend_ini_scanner.l"
 		{ /* Get everything else as option/offset value */
 	RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2736 "Zend/zend_ini_scanner.c"
+#line 2738 "Zend/zend_ini_scanner.c"
 yy229:
 		YYDEBUG(229, *YYCURSOR);
 		yyaccept = 1;
@@ -2741,24 +2743,24 @@
 yy230:
 		YYDEBUG(230, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 469 "Zend/zend_ini_scanner.l"
+#line 471 "Zend/zend_ini_scanner.l"
 		{
 	RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
 }
-#line 2749 "Zend/zend_ini_scanner.c"
+#line 2751 "Zend/zend_ini_scanner.c"
 yy231:
 		YYDEBUG(231, *YYCURSOR);
 		++YYCURSOR;
 yy232:
 		YYDEBUG(232, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 418 "Zend/zend_ini_scanner.l"
+#line 420 "Zend/zend_ini_scanner.l"
 		{ /* End of option value */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 2762 "Zend/zend_ini_scanner.c"
+#line 2764 "Zend/zend_ini_scanner.c"
 yy233:
 		YYDEBUG(233, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2772,23 +2774,23 @@
 yy235:
 		YYDEBUG(235, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 436 "Zend/zend_ini_scanner.l"
+#line 438 "Zend/zend_ini_scanner.l"
 		{ /* Boolean operators */
 	return yytext[0];
 }
-#line 2780 "Zend/zend_ini_scanner.c"
+#line 2782 "Zend/zend_ini_scanner.c"
 yy236:
 		YYDEBUG(236, *YYCURSOR);
 		++YYCURSOR;
 yy237:
 		YYDEBUG(237, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 454 "Zend/zend_ini_scanner.l"
+#line 456 "Zend/zend_ini_scanner.l"
 		{ /* Double quoted '"' string start */
 	yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
 	return '"';
 }
-#line 2792 "Zend/zend_ini_scanner.c"
+#line 2794 "Zend/zend_ini_scanner.c"
 yy238:
 		YYDEBUG(238, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2864,11 +2866,11 @@
 yy243:
 		YYDEBUG(243, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 428 "Zend/zend_ini_scanner.l"
+#line 430 "Zend/zend_ini_scanner.l"
 		{ /* Get number option value as string */
 	RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 2872 "Zend/zend_ini_scanner.c"
+#line 2874 "Zend/zend_ini_scanner.c"
 yy244:
 		YYDEBUG(244, *YYCURSOR);
 		yyaccept = 2;
@@ -2879,13 +2881,13 @@
 		++YYCURSOR;
 		YYDEBUG(246, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 440 "Zend/zend_ini_scanner.l"
+#line 442 "Zend/zend_ini_scanner.l"
 		{ /* Make = used in option value to trigger error */
 	yyless(0);
 	BEGIN(INITIAL);
 	return END_OF_LINE;
 }
-#line 2889 "Zend/zend_ini_scanner.c"
+#line 2891 "Zend/zend_ini_scanner.c"
 yy247:
 		YYDEBUG(247, *YYCURSOR);
 		yyaccept = 4;
@@ -2921,11 +2923,11 @@
 yy248:
 		YYDEBUG(248, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 424 "Zend/zend_ini_scanner.l"
+#line 426 "Zend/zend_ini_scanner.l"
 		{ /* Get constant option value */
 	RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 2929 "Zend/zend_ini_scanner.c"
+#line 2931 "Zend/zend_ini_scanner.c"
 yy249:
 		YYDEBUG(249, *YYCURSOR);
 		yyaccept = 4;
@@ -3417,11 +3419,11 @@
 yy265:
 		YYDEBUG(265, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 384 "Zend/zend_ini_scanner.l"
+#line 386 "Zend/zend_ini_scanner.l"
 		{ /* TRUE value (when used outside option value/offset this causes parse error!) */
 	RETURN_TOKEN(BOOL_TRUE, "1", 1);
 }
-#line 3425 "Zend/zend_ini_scanner.c"
+#line 3427 "Zend/zend_ini_scanner.c"
 yy266:
 		YYDEBUG(266, *YYCURSOR);
 		++YYCURSOR;
@@ -3621,11 +3623,11 @@
 yy272:
 		YYDEBUG(272, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 388 "Zend/zend_ini_scanner.l"
+#line 390 "Zend/zend_ini_scanner.l"
 		{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
 	RETURN_TOKEN(BOOL_FALSE, "", 0);
 }
-#line 3629 "Zend/zend_ini_scanner.c"
+#line 3631 "Zend/zend_ini_scanner.c"
 yy273:
 		YYDEBUG(273, *YYCURSOR);
 		++YYCURSOR;
@@ -4001,13 +4003,13 @@
 yy285:
 		YYDEBUG(285, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 483 "Zend/zend_ini_scanner.l"
+#line 485 "Zend/zend_ini_scanner.l"
 		{ /* Comment */
 	BEGIN(INITIAL);
 	SCNG(lineno)++;
 	return END_OF_LINE;
 }
-#line 4011 "Zend/zend_ini_scanner.c"
+#line 4013 "Zend/zend_ini_scanner.c"
 yy286:
 		YYDEBUG(286, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4219,7 +4221,7 @@
 		++YYCURSOR;
 		YYDEBUG(298, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 340 "Zend/zend_ini_scanner.l"
+#line 342 "Zend/zend_ini_scanner.l"
 		{ /* Raw string */
 	/* Eat leading and trailing single quotes */
 	if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -4228,18 +4230,18 @@
 	}
 	RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 4232 "Zend/zend_ini_scanner.c"
+#line 4234 "Zend/zend_ini_scanner.c"
 yy299:
 		YYDEBUG(299, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(300, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 370 "Zend/zend_ini_scanner.l"
+#line 372 "Zend/zend_ini_scanner.l"
 		{ /* Variable start */
 	yy_push_state(ST_VARNAME TSRMLS_CC);
 	return TC_DOLLAR_CURLY;
 }
-#line 4243 "Zend/zend_ini_scanner.c"
+#line 4245 "Zend/zend_ini_scanner.c"
 yy301:
 		YYDEBUG(301, *YYCURSOR);
 		++YYCURSOR;
@@ -4345,11 +4347,11 @@
 		++YYCURSOR;
 		YYDEBUG(311, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 494 "Zend/zend_ini_scanner.l"
+#line 496 "Zend/zend_ini_scanner.l"
 		{
 	return 0;
 }
-#line 4353 "Zend/zend_ini_scanner.c"
+#line 4355 "Zend/zend_ini_scanner.c"
 yy312:
 		YYDEBUG(312, *YYCURSOR);
 		++YYCURSOR;
@@ -4358,22 +4360,22 @@
 yy313:
 		YYDEBUG(313, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 375 "Zend/zend_ini_scanner.l"
+#line 377 "Zend/zend_ini_scanner.l"
 		{ /* Variable name */
 	RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
 }
-#line 4366 "Zend/zend_ini_scanner.c"
+#line 4368 "Zend/zend_ini_scanner.c"
 yy314:
 		YYDEBUG(314, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(315, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 379 "Zend/zend_ini_scanner.l"
+#line 381 "Zend/zend_ini_scanner.l"
 		{ /* Variable end */
 	yy_pop_state(TSRMLS_C);
 	return '}';
 }
-#line 4377 "Zend/zend_ini_scanner.c"
+#line 4379 "Zend/zend_ini_scanner.c"
 yy316:
 		YYDEBUG(316, *YYCURSOR);
 		++YYCURSOR;
@@ -4387,6 +4389,6 @@
 		goto yy313;
 	}
 }
-#line 498 "Zend/zend_ini_scanner.l"
+#line 500 "Zend/zend_ini_scanner.l"
 
 }
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ini_scanner_defs.h?r1=1.4&r2=1.5&diff_format=u
Index: ZendEngine2/zend_ini_scanner_defs.h
diff -u ZendEngine2/zend_ini_scanner_defs.h:1.4 ZendEngine2/zend_ini_scanner_defs.h:1.5
--- ZendEngine2/zend_ini_scanner_defs.h:1.4	Thu Aug  7 12:32:48 2008
+++ ZendEngine2/zend_ini_scanner_defs.h	Sun Aug 17 20:57:34 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.6.dev on Thu Aug  7 13:31:43 2008 */
+/* Generated by re2c 0.13.5 on Sun Aug 17 22:48:59 2008 */
 #line 3 "Zend/zend_ini_scanner_defs.h"
 
 enum YYCONDTYPE {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.