cvs: /php4 configuration-parser.y php4.dsw php4dll.dsp /php4/ext/standard basic_functions.c basic_functions.h

From: Date: Sat, 04 Mar 2000 02:59:45 +0000
Subject: cvs: /php4 configuration-parser.y php4.dsw php4dll.dsp /php4/ext/standard basic_functions.c basic_functions.h
Groups: php.version4 
Request: Send a blank email to php-version4+get-11502@lists.php.net to get a copy of this message
zeev Fri Mar 3 18:59:45 2000 EDT Modified files: /php4 configuration-parser.y php4.dsw php4dll.dsp /php4/ext/standard basic_functions.c basic_functions.h Log: @- Added parse_ini_file(). Currently implemented in non thread safe version @ of PHP, and currently lacks section support (Zeev) - Bring the non thread safe .dsp's uptodate Index: php4/configuration-parser.y diff -u php4/configuration-parser.y:1.37 php4/configuration-parser.y:1.38 --- php4/configuration-parser.y:1.37 Sat Feb 26 14:14:49 2000 +++ php4/configuration-parser.y Fri Mar 3 18:59:14 2000 @@ -19,7 +19,7 @@ -/* $Id: configuration-parser.y,v 1.37 2000/02/26 22:14:49 zeev Exp $ */ +/* $Id: configuration-parser.y,v 1.38 2000/03/04 02:59:14 zeev Exp $ */ #define DEBUG_CFG_PARSER 0 #include "php.h" @@ -40,8 +40,9 @@ #define YYSTYPE zval -#define PARSING_MODE_CFG 0 -#define PARSING_MODE_BROWSCAP 1 +#define PARSING_MODE_CFG 0 +#define PARSING_MODE_BROWSCAP 1 +#define PARSING_MODE_STANDALONE 2 static HashTable configuration_hash; extern HashTable browser_hash; @@ -263,6 +264,34 @@ } +PHP_FUNCTION(parse_ini_file) +{ +#if ZTS + php_error(E_WARNING, "parse_ini_file() is not supported in multithreaded PHP"); + RETURN_FALSE; +#else + zval **filename; + + if (ARG_COUNT(ht)!=1 || zend_get_parameters_ex(1, &filename)==FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_string_ex(filename); + cfgin = fopen((*filename)->value.str.val, "r"); + if (!cfgin) { + php_error(E_WARNING,"Cannot open '%s' for reading", (*filename)->value.str.val); + return FAILURE; + } + array_init(return_value); + init_cfg_scanner(); + active_hash_table = return_value->value.ht; + parsing_mode = PARSING_MODE_STANDALONE; + currently_parsed_filename = (*filename)->value.str.val; + yyparse(); + fclose(cfgin); +#endif +} + + int php_shutdown_config(void) { zend_hash_destroy(&configuration_hash); @@ -405,24 +434,38 @@ printf("'%s' = '%s'\n",$1.value.str.val,$3.value.str.val); #endif $3.type = IS_STRING; - if (parsing_mode==PARSING_MODE_CFG) { - zend_hash_update(active_hash_table, $1.value.str.val, $1.value.str.len+1, &$3, sizeof(zval), NULL); - if (active_hash_table == &configuration_hash) { - php_alter_ini_entry($1.value.str.val, $1.value.str.len+1, $3.value.str.val, $3.value.str.len+1, PHP_INI_SYSTEM, PHP_INI_STAGE_STARTUP); - } - } else if (parsing_mode==PARSING_MODE_BROWSCAP) { - if (current_section) { - zval *new_property; - - new_property = (zval *) malloc(sizeof(zval)); - INIT_PZVAL(new_property); - new_property->value.str.val = $3.value.str.val; - new_property->value.str.len = $3.value.str.len; - new_property->type = IS_STRING; - zend_str_tolower(new_property->value.str.val, new_property->value.str.len); - zend_hash_update(current_section->value.obj.properties, $1.value.str.val, $1.value.str.len+1, &new_property, sizeof(zval *), NULL); - } - } + switch (parsing_mode) { + case PARSING_MODE_CFG: + zend_hash_update(active_hash_table, $1.value.str.val, $1.value.str.len+1, &$3, sizeof(zval), NULL); + if (active_hash_table == &configuration_hash) { + php_alter_ini_entry($1.value.str.val, $1.value.str.len+1, $3.value.str.val, $3.value.str.len+1, PHP_INI_SYSTEM, PHP_INI_STAGE_STARTUP); + } + break; + case PARSING_MODE_BROWSCAP: + if (current_section) { + zval *new_property; + + new_property = (zval *) malloc(sizeof(zval)); + INIT_PZVAL(new_property); + new_property->value.str.val = $3.value.str.val; + new_property->value.str.len = $3.value.str.len; + new_property->type = IS_STRING; + zend_str_tolower(new_property->value.str.val, new_property->value.str.len); + zend_hash_update(current_section->value.obj.properties, $1.value.str.val, $1.value.str.len+1, &new_property, sizeof(zval *), NULL); + } + break; + case PARSING_MODE_STANDALONE: { + zval *entry; + + MAKE_STD_ZVAL(entry); + entry->value.str.val = estrndup($3.value.str.val, $3.value.str.len); + entry->value.str.len = $3.value.str.len; + entry->type = IS_STRING; + zend_hash_update(active_hash_table, $1.value.str.val, $1.value.str.len+1, &entry, sizeof(zval *), NULL); + pvalue_config_destructor(&$3); + } + break; + } free($1.value.str.val); } | TC_STRING { free($1.value.str.val); } Index: php4/php4.dsw diff -u php4/php4.dsw:1.7 php4/php4.dsw:1.8 --- php4/php4.dsw:1.7 Sun Dec 19 13:29:06 1999 +++ php4/php4.dsw Fri Mar 3 18:59:14 2000 @@ -15,6 +15,18 @@ ############################################################################### +Project: "libmysql"=.\ext\mysql\libmysql\libmysql.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + Project: "php4"=.\php4.dsp - Package Owner=<4> Package=<5> @@ -40,6 +52,9 @@ {{{ Begin Project Dependency Project_Dep_Name Zend + End Project Dependency + Begin Project Dependency + Project_Dep_Name libmysql End Project Dependency }}} Index: php4/php4dll.dsp diff -u php4/php4dll.dsp:1.34 php4/php4dll.dsp:1.35 --- php4/php4dll.dsp:1.34 Wed Feb 16 08:46:01 2000 +++ php4/php4dll.dsp Fri Mar 3 18:59:14 2000 @@ -54,7 +54,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"libcmt" /nodefaultlib:"libc" /nodefaultlib:"libcmtd" /out:"Debug/php4nts.dll" /pdbtype:sept /libpath:"TSRM\Debug" /libpath:"Zend\Debug" /libpath:"..\bindlib_w32\Debug" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib libmysql.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"libcmt" /nodefaultlib:"libc" /nodefaultlib:"libcmtd" /out:"Debug/php4nts.dll" /pdbtype:sept /libpath:"TSRM\Debug" /libpath:"Zend\Debug" /libpath:"..\bindlib_w32\Debug" /libpath:"ext\mysql\libmysql\Debug_TS" !ELSEIF "$(CFG)" == "php4dll - Win32 Release" @@ -80,7 +80,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib /nologo /dll /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/php4nts.dll" /libpath:"TSRM\Release" /libpath:"Zend\Release" /libpath:"..\bindlib_w32\Release" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib libmysql.lib /nologo /dll /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/php4nts.dll" /libpath:"TSRM\Release" /libpath:"Zend\Release" /libpath:"..\bindlib_w32\Release" /libpath:"ext\mysql\libmysql\Release_TS" !ELSEIF "$(CFG)" == "php4dll - Win32 Release_inline" @@ -107,7 +107,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib /nologo /dll /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/php4nts.dll" /libpath:"TSRM\Release" /libpath:"Zend\Release" /libpath:"..\bindlib_w32\Release" -# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib /nologo /dll /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/php4nts.dll" /libpath:"TSRM\Release" /libpath:"Zend\Release" /libpath:"..\bindlib_w32\Release" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib wsock32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Zend.lib resolv.lib libmysql.lib /nologo /dll /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/php4nts.dll" /libpath:"TSRM\Release" /libpath:"Zend\Release" /libpath:"..\bindlib_w32\Release" !ENDIF @@ -183,6 +183,10 @@ # End Source File # Begin Source File +SOURCE=.\php_ticks.c +# End Source File +# Begin Source File + SOURCE=.\php_variables.c # End Source File # Begin Source File @@ -279,6 +283,10 @@ # End Source File # Begin Source File +SOURCE=.\php_ticks.h +# End Source File +# Begin Source File + SOURCE=.\php_variables.h # End Source File # Begin Source File @@ -443,6 +451,11 @@ # End Source File # Begin Source File +SOURCE=.\ext\mysql\php_mysql.c +# ADD CPP /I "ext\mysql\libmysql" +# End Source File +# Begin Source File + SOURCE=.\ext\odbc\php_odbc.c # End Source File # Begin Source File @@ -591,6 +604,10 @@ # Begin Source File SOURCE=.\ext\standard\php_mail.h +# End Source File +# Begin Source File + +SOURCE=.\ext\mysql\php_mysql.h # End Source File # Begin Source File Index: php4/ext/standard/basic_functions.c diff -u php4/ext/standard/basic_functions.c:1.168 php4/ext/standard/basic_functions.c:1.169 --- php4/ext/standard/basic_functions.c:1.168 Sat Feb 26 07:36:23 2000 +++ php4/ext/standard/basic_functions.c Fri Mar 3 18:59:14 2000 @@ -305,7 +305,9 @@ PHP_FE(get_loaded_extensions, NULL) PHP_FE(extension_loaded, NULL) PHP_FE(get_extension_funcs, NULL) - + + PHP_FE(parse_ini_file, NULL) + {NULL, NULL, NULL} }; Index: php4/ext/standard/basic_functions.h diff -u php4/ext/standard/basic_functions.h:1.47 php4/ext/standard/basic_functions.h:1.48 --- php4/ext/standard/basic_functions.h:1.47 Sat Feb 26 06:53:18 2000 +++ php4/ext/standard/basic_functions.h Fri Mar 3 18:59:14 2000 @@ -29,7 +29,7 @@ */ -/* $Id: basic_functions.h,v 1.47 2000/02/26 14:53:18 zeev Exp $ */ +/* $Id: basic_functions.h,v 1.48 2000/03/04 02:59:14 zeev Exp $ */ #ifndef _BASIC_FUNCTIONS_H #define _BASIC_FUNCTIONS_H @@ -106,6 +106,9 @@ PHP_FUNCTION(get_loaded_extensions); PHP_FUNCTION(extension_loaded); PHP_FUNCTION(get_extension_funcs); + +/* From the INI parser */ +PHP_FUNCTION(parse_ini_file); #ifdef PHP_WIN32 typedef unsigned int php_stat_len;

« previous php.version4 (#11502) next »