mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
add sanity checks for ZEND_MMAP_AHEAD and reduce the value from 32 to 16 (lowest safe value)
This commit is contained in:
parent
c3474b9116
commit
bfcdbbcd33
7 changed files with 537 additions and 509 deletions
|
@ -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"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue