From cacbf1ea28db39a95ba515f3f3ee70b0f28b1197 Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Mon, 26 Jun 2000 18:15:49 +0000 Subject: [PATCH] Support boolean NOT in the php.ini processor --- main/configuration-parser.y | 6 +++++- main/configuration-scanner.l | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/main/configuration-parser.y b/main/configuration-parser.y index 0e8b57bced0..f36327f29ca 100644 --- a/main/configuration-parser.y +++ b/main/configuration-parser.y @@ -384,6 +384,9 @@ void do_cfg_op(char type, zval *result, zval *op1, zval *op2) case '~': i_result = ~i_op1; break; + case '!': + i_result = !i_op1; + break; default: i_result = 0; break; @@ -429,7 +432,7 @@ void do_cfg_get_constant(zval *result, zval *name) %token T_ZEND_EXTENSION_DEBUG %token T_ZEND_EXTENSION_DEBUG_TS %left '|' '&' -%right '~' +%right '~' '!' %% @@ -568,6 +571,7 @@ expr: | expr '|' expr { do_cfg_op('|', &$$, &$1, &$3); } | expr '&' expr { do_cfg_op('&', &$$, &$1, &$3); } | '~' expr { do_cfg_op('~', &$$, &$2, NULL); } + | '!' expr { do_cfg_op('!', &$$, &$2, NULL); } | '(' expr ')' { $$ = $2; } ; diff --git a/main/configuration-scanner.l b/main/configuration-scanner.l index a13d074d9bd..4958e7246e7 100644 --- a/main/configuration-scanner.l +++ b/main/configuration-scanner.l @@ -119,12 +119,12 @@ void init_cfg_scanner() return TC_ENCAPSULATED_STRING; } -[&|~()] { +[&|~()!] { return yytext[0]; } -[^=\n\r\t;|&~()"]+ { +[^=\n\r\t;|&~()!"]+ { /* STRING */ register int i;