felipe Thu, 24 Jun 2010 22:32:42 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=300737
Log: - Fixed bug #52138 (Constants are parsed into the ini file for section names) Bug: http://bugs.php.net/52138 (error getting bug information) Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/Zend/zend_ini_parser.y A php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.data A php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.phpt U php/php-src/trunk/Zend/zend_ini_parser.y A php/php-src/trunk/ext/standard/tests/general_functions/bug52138.data A php/php-src/trunk/ext/standard/tests/general_functions/bug52138.phpt Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2010-06-24 22:07:28 UTC (rev 300736) +++ php/php-src/branches/PHP_5_3/NEWS 2010-06-24 22:32:42 UTC (rev 300737) @@ -5,6 +5,8 @@ - Fixed the mail.log ini setting when no filename was given. (Johannes) - Fixed bug #52162 (custom request header variables with numbers are removed). (Sriram Natarajan) +- Fixed bug #52138 (Constants are parsed into the ini file for section names). + (Felipe) - Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array). (Andrey) Modified: php/php-src/branches/PHP_5_3/Zend/zend_ini_parser.y =================================================================== --- php/php-src/branches/PHP_5_3/Zend/zend_ini_parser.y 2010-06-24 22:07:28 UTC (rev 300736) +++ php/php-src/branches/PHP_5_3/Zend/zend_ini_parser.y 2010-06-24 22:32:42 UTC (rev 300737) @@ -304,7 +304,7 @@ ; section_string_or_value: - var_string_list { $$ = $1; } + var_string_list_section { $$ = $1; } | /* empty */ { zend_ini_init_string(&$$); } ; @@ -326,6 +326,15 @@ | /* empty */ { zend_ini_init_string(&$$); } ; +var_string_list_section: + cfg_var_ref { $$ = $1; } + | constant_literal { $$ = $1; } + | '"' encapsed_list '"' { $$ = $2; } + | var_string_list_section cfg_var_ref { zend_ini_add_string(&$$, &$1, &$2); free(Z_STRVAL($2)); } + | var_string_list_section constant_literal { zend_ini_add_string(&$$, &$1, &$2); free(Z_STRVAL($2)); } + | var_string_list_section '"' encapsed_list '"' { zend_ini_add_string(&$$, &$1, &$3); free(Z_STRVAL($3)); } +; + var_string_list: cfg_var_ref { $$ = $1; } | constant_string { $$ = $1; } @@ -348,6 +357,14 @@ TC_DOLLAR_CURLY TC_VARNAME '}' { zend_ini_get_var(&$$, &$2 TSRMLS_CC); free(Z_STRVAL($2)); } ; +constant_literal: + TC_CONSTANT { $$ = $1; } + | TC_RAW { $$ = $1; /*printf("TC_RAW: '%s'\n", Z_STRVAL($1));*/ } + | TC_NUMBER { $$ = $1; /*printf("TC_NUMBER: '%s'\n", Z_STRVAL($1));*/ } + | TC_STRING { $$ = $1; /*printf("TC_STRING: '%s'\n", Z_STRVAL($1));*/ } + | TC_WHITESPACE { $$ = $1; /*printf("TC_WHITESPACE: '%s'\n", Z_STRVAL($1));*/ } +; + constant_string: TC_CONSTANT { zend_ini_get_constant(&$$, &$1 TSRMLS_CC); } | TC_RAW { $$ = $1; /*printf("TC_RAW: '%s'\n", Z_STRVAL($1));*/ } Added: php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.data =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.data (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.data 2010-06-24 22:32:42 UTC (rev 300737) @@ -0,0 +1,11 @@ +[MYCONST] +MYCONST = MYCONST + +[M_PI] +FOO=M_PI " test" + +[foo::bar] +A=1 +B=A "A" A + +[MYCONST M_PI] Added: php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.phpt 2010-06-24 22:32:42 UTC (rev 300737) @@ -0,0 +1,37 @@ +--TEST-- +Bug #52138 (Constants are parsed into the ini file for section names) +--FILE-- +<?php + +define('MYCONST', 1); +define('A', 'B'); + +$ini_file = dirname(__FILE__)."/bug52138.data"; + +$ret = parse_ini_file($ini_file, true); +var_dump($ret); + +?> +--EXPECTF-- +array(4) { + ["MYCONST"]=> + array(1) { + ["MYCONST"]=> + string(1) "1" + } + ["M_PI"]=> + array(1) { + ["FOO"]=> + string(%d) "3.%d test" + } + ["foo::bar"]=> + array(2) { + ["A"]=> + string(1) "1" + ["B"]=> + string(3) "BAB" + } + ["MYCONST M_PI"]=> + array(0) { + } +} Property changes on: php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/bug52138.phpt ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Added: svn:eol-style + native Modified: php/php-src/trunk/Zend/zend_ini_parser.y =================================================================== --- php/php-src/trunk/Zend/zend_ini_parser.y 2010-06-24 22:07:28 UTC (rev 300736) +++ php/php-src/trunk/Zend/zend_ini_parser.y 2010-06-24 22:32:42 UTC (rev 300737) @@ -304,7 +304,7 @@ ; section_string_or_value: - var_string_list { $$ = $1; } + var_string_list_section { $$ = $1; } | /* empty */ { zend_ini_init_string(&$$); } ; @@ -326,6 +326,15 @@ | /* empty */ { zend_ini_init_string(&$$); } ; +var_string_list_section: + cfg_var_ref { $$ = $1; } + | constant_literal { $$ = $1; } + | '"' encapsed_list '"' { $$ = $2; } + | var_string_list_section cfg_var_ref { zend_ini_add_string(&$$, &$1, &$2); free(Z_STRVAL($2)); } + | var_string_list_section constant_literal { zend_ini_add_string(&$$, &$1, &$2); free(Z_STRVAL($2)); } + | var_string_list_section '"' encapsed_list '"' { zend_ini_add_string(&$$, &$1, &$3); free(Z_STRVAL($3)); } +; + var_string_list: cfg_var_ref { $$ = $1; } | constant_string { $$ = $1; } @@ -348,6 +357,14 @@ TC_DOLLAR_CURLY TC_VARNAME '}' { zend_ini_get_var(&$$, &$2 TSRMLS_CC); free(Z_STRVAL($2)); } ; +constant_literal: + TC_CONSTANT { $$ = $1; } + | TC_RAW { $$ = $1; /*printf("TC_RAW: '%s'\n", Z_STRVAL($1));*/ } + | TC_NUMBER { $$ = $1; /*printf("TC_NUMBER: '%s'\n", Z_STRVAL($1));*/ } + | TC_STRING { $$ = $1; /*printf("TC_STRING: '%s'\n", Z_STRVAL($1));*/ } + | TC_WHITESPACE { $$ = $1; /*printf("TC_WHITESPACE: '%s'\n", Z_STRVAL($1));*/ } +; + constant_string: TC_CONSTANT { zend_ini_get_constant(&$$, &$1 TSRMLS_CC); } | TC_RAW { $$ = $1; /*printf("TC_RAW: '%s'\n", Z_STRVAL($1));*/ } Added: php/php-src/trunk/ext/standard/tests/general_functions/bug52138.data =================================================================== --- php/php-src/trunk/ext/standard/tests/general_functions/bug52138.data (rev 0) +++ php/php-src/trunk/ext/standard/tests/general_functions/bug52138.data 2010-06-24 22:32:42 UTC (rev 300737) @@ -0,0 +1,11 @@ +[MYCONST] +MYCONST = MYCONST + +[M_PI] +FOO=M_PI " test" + +[foo::bar] +A=1 +B=A "A" A + +[MYCONST M_PI] Added: php/php-src/trunk/ext/standard/tests/general_functions/bug52138.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/general_functions/bug52138.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/general_functions/bug52138.phpt 2010-06-24 22:32:42 UTC (rev 300737) @@ -0,0 +1,37 @@ +--TEST-- +Bug #52138 (Constants are parsed into the ini file for section names) +--FILE-- +<?php + +define('MYCONST', 1); +define('A', 'B'); + +$ini_file = dirname(__FILE__)."/bug52138.data"; + +$ret = parse_ini_file($ini_file, true); +var_dump($ret); + +?> +--EXPECTF-- +array(4) { + ["MYCONST"]=> + array(1) { + ["MYCONST"]=> + string(1) "1" + } + ["M_PI"]=> + array(1) { + ["FOO"]=> + string(%d) "3.%d test" + } + ["foo::bar"]=> + array(2) { + ["A"]=> + string(1) "1" + ["B"]=> + string(3) "BAB" + } + ["MYCONST M_PI"]=> + array(0) { + } +} Property changes on: php/php-src/trunk/ext/standard/tests/general_functions/bug52138.phpt ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Added: svn:eol-style + native
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php