summaryrefslogtreecommitdiff
path: root/Zend/zend_ini_scanner.l
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_ini_scanner.l')
-rw-r--r--Zend/zend_ini_scanner.l94
1 files changed, 44 insertions, 50 deletions
diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l
index 9cf8b4fe0a..8cc7266ebb 100644
--- a/Zend/zend_ini_scanner.l
+++ b/Zend/zend_ini_scanner.l
@@ -29,6 +29,10 @@
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
+#ifdef YYDEBUG
+#undef YYDEBUG
+#endif
+
#if 0
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
#else
@@ -132,11 +136,9 @@ ZEND_API zend_ini_scanner_globals ini_scanner_globals;
/* Eat trailing whitespace */
#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
-#define zend_ini_copy_value(retval, str, len) { \
- Z_STRVAL_P(retval) = zend_strndup(str, len); \
- Z_STRLEN_P(retval) = len; \
- Z_TYPE_P(retval) = IS_STRING; \
-}
+#define zend_ini_copy_value(retval, str, len) \
+ ZVAL_NEW_STR(retval, zend_string_init(str, len, 1))
+
#define RETURN_TOKEN(type, str, len) { \
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED) { \
@@ -151,7 +153,7 @@ static inline int convert_to_number(zval *retval, const char *str, const int str
{
zend_uchar type;
int overflow;
- long lval;
+ zend_long lval;
double dval;
if ((type = is_numeric_string_ex(str, str_len, &lval, &dval, 0, &overflow)) != 0) {
@@ -189,23 +191,22 @@ static void zend_ini_copy_typed_value(zval *retval, const int type, const char *
}
}
-static void _yy_push_state(int new_state TSRMLS_DC)
+static void _yy_push_state(int new_state)
{
- zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
+ zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
YYSETCONDITION(new_state);
}
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
-static void yy_pop_state(TSRMLS_D)
+static void yy_pop_state(void)
{
- int *stack_state;
- zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
+ int *stack_state = zend_stack_top(&SCNG(state_stack));
YYSETCONDITION(*stack_state);
zend_stack_del_top(&SCNG(state_stack));
}
-static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
+static void yy_scan_buffer(char *str, unsigned int len)
{
YYCURSOR = (YYCTYPE*)str;
SCNG(yy_start) = YYCURSOR;
@@ -216,7 +217,7 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
/* {{{ init_ini_scanner()
*/
-static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
+static int init_ini_scanner(int scanner_mode, zend_file_handle *fh)
{
/* Sanity check */
if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) {
@@ -234,7 +235,7 @@ static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
ini_filename = NULL;
}
- zend_stack_init(&SCNG(state_stack));
+ zend_stack_init(&SCNG(state_stack), sizeof(int));
BEGIN(INITIAL);
return SUCCESS;
@@ -243,7 +244,7 @@ static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
/* {{{ shutdown_ini_scanner()
*/
-void shutdown_ini_scanner(TSRMLS_D)
+void shutdown_ini_scanner(void)
{
zend_stack_destroy(&SCNG(state_stack));
if (ini_filename) {
@@ -254,7 +255,7 @@ void shutdown_ini_scanner(TSRMLS_D)
/* {{{ zend_ini_scanner_get_lineno()
*/
-int zend_ini_scanner_get_lineno(TSRMLS_D)
+int zend_ini_scanner_get_lineno(void)
{
return SCNG(lineno);
}
@@ -262,7 +263,7 @@ int zend_ini_scanner_get_lineno(TSRMLS_D)
/* {{{ zend_ini_scanner_get_filename()
*/
-char *zend_ini_scanner_get_filename(TSRMLS_D)
+char *zend_ini_scanner_get_filename(void)
{
return ini_filename ? ini_filename : "Unknown";
}
@@ -270,21 +271,21 @@ char *zend_ini_scanner_get_filename(TSRMLS_D)
/* {{{ zend_ini_open_file_for_scanning()
*/
-int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC)
+int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode)
{
char *buf;
size_t size;
- if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) {
+ if (zend_stream_fixup(fh, &buf, &size) == FAILURE) {
return FAILURE;
}
- if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) {
- zend_file_handle_dtor(fh TSRMLS_CC);
+ if (init_ini_scanner(scanner_mode, fh) == FAILURE) {
+ zend_file_handle_dtor(fh);
return FAILURE;
}
- yy_scan_buffer(buf, size TSRMLS_CC);
+ yy_scan_buffer(buf, (unsigned int)size);
return SUCCESS;
}
@@ -292,15 +293,15 @@ int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRML
/* {{{ zend_ini_prepare_string_for_scanning()
*/
-int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC)
+int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode)
{
- int len = strlen(str);
+ int len = (int)strlen(str);
- if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) {
+ if (init_ini_scanner(scanner_mode, NULL) == FAILURE) {
return FAILURE;
}
- yy_scan_buffer(str, len TSRMLS_CC);
+ yy_scan_buffer(str, len);
return SUCCESS;
}
@@ -308,7 +309,7 @@ int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC)
/* {{{ zend_ini_escape_string()
*/
-static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC)
+static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type)
{
register char *s, *t;
char *end;
@@ -355,7 +356,7 @@ static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_ty
}
/* }}} */
-int ini_lex(zval *ini_lval TSRMLS_DC)
+int ini_lex(zval *ini_lval)
{
restart:
SCNG(yy_text) = YYCURSOR;
@@ -405,9 +406,9 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
<INITIAL>"[" { /* Section start */
/* Enter section data lookup state */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
- yy_push_state(ST_SECTION_RAW TSRMLS_CC);
+ yy_push_state(ST_SECTION_RAW);
} else {
- yy_push_state(ST_SECTION_VALUE TSRMLS_CC);
+ yy_push_state(ST_SECTION_VALUE);
}
return TC_SECTION;
}
@@ -430,12 +431,12 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
<INITIAL>{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */
/* Eat leading whitespace */
EAT_LEADING_WHITESPACE();
-
+
/* Eat trailing whitespace and [ */
EAT_TRAILING_WHITESPACE_EX('[');
/* Enter offset lookup state */
- yy_push_state(ST_OFFSET TSRMLS_CC);
+ yy_push_state(ST_OFFSET);
RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
}
@@ -446,7 +447,7 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
}
<ST_DOUBLE_QUOTES,ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{DOLLAR_CURLY} { /* Variable start */
- yy_push_state(ST_VARNAME TSRMLS_CC);
+ yy_push_state(ST_VARNAME);
return TC_DOLLAR_CURLY;
}
@@ -461,7 +462,7 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
}
<ST_VARNAME>"}" { /* Variable end */
- yy_pop_state(TSRMLS_C);
+ yy_pop_state();
return '}';
}
@@ -489,15 +490,15 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
<INITIAL>{TABS_AND_SPACES}*[=]{TABS_AND_SPACES}* { /* Start option value */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
- yy_push_state(ST_RAW TSRMLS_CC);
+ yy_push_state(ST_RAW);
} else {
- yy_push_state(ST_VALUE TSRMLS_CC);
+ yy_push_state(ST_VALUE);
}
return '=';
}
<ST_RAW>{RAW_VALUE_CHARS} { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
- char *sc = NULL;
+ unsigned char *sc = NULL;
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR) {
case '\n':
@@ -574,12 +575,12 @@ end_raw_value_chars:
}
<ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{TABS_AND_SPACES}*["] { /* Double quoted '"' string start */
- yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
+ yy_push_state(ST_DOUBLE_QUOTES);
return '"';
}
<ST_DOUBLE_QUOTES>["]{TABS_AND_SPACES}* { /* Double quoted '"' string ends */
- yy_pop_state(TSRMLS_C);
+ yy_pop_state();
return '"';
}
@@ -587,7 +588,7 @@ end_raw_value_chars:
if (YYCURSOR > YYLIMIT) {
return 0;
}
-
+
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
case '"':
@@ -608,14 +609,14 @@ end_raw_value_chars:
default:
continue;
}
-
+
YYCURSOR--;
break;
}
yyleng = YYCURSOR - SCNG(yy_text);
-
- zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
+
+ zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
return TC_QUOTED_STRING;
}
@@ -639,13 +640,6 @@ end_raw_value_chars:
return END_OF_LINE;
}
-<INITIAL>{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */
- zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno));
- BEGIN(INITIAL);
- SCNG(lineno)++;
- return END_OF_LINE;
-}
-
<ST_VALUE,ST_RAW>[^] { /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
return END_OF_LINE;