mirror of
https://github.com/php/php-src.git
synced 2026-04-19 14:01:01 +02:00
Merge branch 'PHP-5.5'
Conflicts: Zend/zend_ini_scanner.c
This commit is contained in:
@@ -67,6 +67,9 @@ static void zend_ini_do_op(char type, zval *result, zval *op1, zval *op2)
|
||||
case '&':
|
||||
i_result = i_op1 & i_op2;
|
||||
break;
|
||||
case '^':
|
||||
i_result = i_op1 ^ i_op2;
|
||||
break;
|
||||
case '~':
|
||||
i_result = ~i_op1;
|
||||
break;
|
||||
@@ -264,7 +267,7 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s
|
||||
%token BOOL_FALSE
|
||||
%token END_OF_LINE
|
||||
%token '=' ':' ',' '.' '"' '\'' '^' '+' '-' '/' '*' '%' '$' '~' '<' '>' '?' '@' '{' '}'
|
||||
%left '|' '&'
|
||||
%left '|' '&' '^'
|
||||
%right '~' '!'
|
||||
|
||||
%%
|
||||
@@ -348,6 +351,7 @@ expr:
|
||||
var_string_list { $$ = $1; }
|
||||
| expr '|' expr { zend_ini_do_op('|', &$$, &$1, &$3); }
|
||||
| expr '&' expr { zend_ini_do_op('&', &$$, &$1, &$3); }
|
||||
| expr '^' expr { zend_ini_do_op('^', &$$, &$1, &$3); }
|
||||
| '~' expr { zend_ini_do_op('~', &$$, &$2, NULL); }
|
||||
| '!' expr { zend_ini_do_op('!', &$$, &$2, NULL); }
|
||||
| '(' expr ')' { $$ = $2; }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -340,9 +340,9 @@ NEWLINE ("\r"|"\n"|"\r\n")
|
||||
TABS_AND_SPACES [ \t]
|
||||
WHITESPACE [ \t]+
|
||||
CONSTANT [a-zA-Z_][a-zA-Z0-9_]*
|
||||
LABEL [^=\n\r\t;|&$~(){}!"\[]+
|
||||
TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}]
|
||||
OPERATORS [&|~()!]
|
||||
LABEL [^=\n\r\t;&|^$~(){}!"\[]+
|
||||
TOKENS [:,.\[\]"'()&|^+-/*=%$!~<>?@{}]
|
||||
OPERATORS [&|^~()!]
|
||||
DOLLAR_CURLY "${"
|
||||
|
||||
SECTION_RAW_CHARS [^\]\n\r]
|
||||
@@ -350,7 +350,7 @@ SINGLE_QUOTED_CHARS [^']
|
||||
RAW_VALUE_CHARS [^\n\r;\000]
|
||||
|
||||
LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR})))
|
||||
VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR})
|
||||
VALUE_CHARS ([^$= \t\n\r;&|^~()!"'\000]|{LITERAL_DOLLAR})
|
||||
SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
|
||||
|
||||
<!*> := yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
10
tests/func/011.phpt
Normal file
10
tests/func/011.phpt
Normal file
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Test bitwise AND, OR, XOR, NOT and logical NOT in INI via error_reporting
|
||||
--INI--
|
||||
error_reporting = E_ALL & E_NOTICE | E_STRICT ^ E_DEPRECATED & ~E_WARNING | !E_ERROR
|
||||
--FILE--
|
||||
<?php
|
||||
echo ini_get('error_reporting');
|
||||
?>
|
||||
--EXPECT--
|
||||
10248
|
||||
10
tests/func/bug64523.phpt
Normal file
10
tests/func/bug64523.phpt
Normal file
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #64523: XOR not parsed in INI
|
||||
--INI--
|
||||
error_reporting = E_ALL ^ E_NOTICE ^ E_STRICT ^ E_DEPRECATED
|
||||
--FILE--
|
||||
<?php
|
||||
echo ini_get('error_reporting');
|
||||
?>
|
||||
--EXPECTF--
|
||||
22519
|
||||
Reference in New Issue
Block a user