diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | ext/mysql/mysql.c | 85 | ||||
-rw-r--r-- | ext/mysql/mysql.dsp | 20 | ||||
-rw-r--r-- | ext/standard/dl.c | 4 | ||||
-rw-r--r-- | main/main.c | 26 | ||||
-rw-r--r-- | main/php_ini.c | 15 | ||||
-rw-r--r-- | main/php_ini.h | 5 | ||||
-rw-r--r-- | php.ini-dist | 2 | ||||
-rw-r--r-- | php4ts.dsw | 7 | ||||
-rw-r--r-- | win32/php_modules.dsw | 29 |
10 files changed, 127 insertions, 68 deletions
@@ -2,6 +2,8 @@ PHP 4.0 CHANGE LOG ChangeLog ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ?? 1999, Version 4.0 Beta 3 +- Fixed thread-safety issues in the MySQL module (Zeev) +- Fixed thread-safe support for dynamic modules (Zeev) - Fixed Sybase CT build process (Zeev) August 9 1999, Version 4.0 Beta 2 diff --git a/ext/mysql/mysql.c b/ext/mysql/mysql.c index 3cd420696f..5367f878b5 100644 --- a/ext/mysql/mysql.c +++ b/ext/mysql/mysql.c @@ -246,14 +246,36 @@ static PHP_INI_MH(OnMySQLPort) } +static PHP_INI_DISP(display_link_numbers) +{ + char *value; + + if (type==PHP_INI_DISPLAY_ORIG && ini_entry->modified) { + value = ini_entry->orig_value; + } else if (ini_entry->value) { + value = ini_entry->value; + } else { + value = NULL; + } + + if (value) { + if (atoi(value)==-1) { + PUTS("Unlimited"); + } else { + php_printf("%s", value); + } + } +} + + PHP_INI_BEGIN() - STD_PHP_INI_ENTRY("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, php_mysql_globals, mysql_globals) - PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort) + STD_PHP_INI_BOOLEAN("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY_EX("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_mysql_globals, mysql_globals, display_link_numbers) + STD_PHP_INI_ENTRY_EX("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_mysql_globals, mysql_globals, display_link_numbers) + STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, php_mysql_globals, mysql_globals) + PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort) PHP_INI_END() @@ -267,6 +289,8 @@ static void php_mysql_init_globals(php_mysql_globals *mysql_globals) PHP_MINIT_FUNCTION(mysql) { + ELS_FETCH(); + #ifdef ZTS mysql_globals_id = ts_allocate_id(sizeof(php_mysql_globals), php_mysql_init_globals, NULL); #else @@ -306,41 +330,24 @@ PHP_RINIT_FUNCTION(mysql) PHP_MINFO_FUNCTION(mysql) { - char maxp[16],maxl[16]; + char buf[32]; MySLS_FETCH(); - - if (MySG(max_persistent)==-1) { - strcpy(maxp,"Unlimited"); - } else { - snprintf(maxp,15,"%ld",MySG(max_persistent)); - maxp[15]=0; - } - if (MySG(max_links)==-1) { - strcpy(maxl,"Unlimited"); - } else { - snprintf(maxl,15,"%ld",MySG(max_links)); - maxl[15]=0; - } - php_printf("<table cellpadding=5>" - "<tr><td>Allow persistent links:</td><td>%s</td></tr>\n" - "<tr><td>Persistent links:</td><td>%d/%s</td></tr>\n" - "<tr><td>Total links:</td><td>%d/%s</td></tr>\n" - "<tr><td>Client API version:</td><td>%s</td></tr>\n" -#if !(WIN32|WINNT) - "<tr><td valign=\"top\">Compilation definitions:</td><td>" - "<tt>MYSQL_INCLUDE=%s<br>\n" - "MYSQL_LFLAGS=%s<br>\n" - "MYSQL_LIBS=%s<br></tt></td></tr>" -#endif - "</table>\n", - (MySG(allow_persistent)?"Yes":"No"), - MySG(num_persistent),maxp, - MySG(num_links),maxl, - mysql_get_client_info() + + DISPLAY_INI_ENTRIES(); + + php_printf("<table border=5 width=\"600\">"); + php_info_print_table_header(2, "Key", "Value"); + sprintf(buf, "%d", MySG(num_persistent)); + php_info_print_table_row(2, "Active Persistent Links", buf); + sprintf(buf, "%d", MySG(num_links)); + php_info_print_table_row(2, "Active Links", buf); + php_info_print_table_row(2, "Client API version", mysql_get_client_info()); #if !(WIN32|WINNT) - ,PHP_MYSQL_INCLUDE,PHP_MYSQL_LFLAGS,PHP_MYSQL_LIBS + php_info_print_table_row(2, "MYSQL_INCLUDE", PHP_MYSQL_INCLUDE); + php_info_print_table_row(2, "MYSQL_LFLAGS", PHP_MYSQL_LFLAGS); + php_info_print_table_row(2, "MYSQL_LIBS", PHP_MYSQL_LIBS); #endif - ); + php_printf("</table>\n"); } diff --git a/ext/mysql/mysql.dsp b/ext/mysql/mysql.dsp index 0305861375..acb2685de7 100644 --- a/ext/mysql/mysql.dsp +++ b/ext/mysql/mysql.dsp @@ -45,7 +45,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "NDEBUG"
@@ -55,7 +55,7 @@ BSC32=bscmake.exe # 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 winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /machine:I386 /out:"Release/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release"
+# ADD 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 libmySQL.lib php4nts.lib /nologo /dll /machine:I386 /out:"Release/php_mysql.dll" /libpath:"..\..\..\MySQL\libmysql\Release" /libpath:"..\..\Release"
!ELSEIF "$(CFG)" == "mysql - Win32 Debug"
@@ -70,8 +70,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D ZEND_DEBUG=1 /FR /YX /FD /GZ /c
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D ZEND_DEBUG=1 /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "_DEBUG"
@@ -81,7 +81,7 @@ BSC32=bscmake.exe # 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 winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /debug /machine:I386 /out:"Debug/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug"
+# ADD 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 libmySQL.lib php4nts.lib /nologo /dll /debug /machine:I386 /out:"Debug/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\libmysql\Debug" /libpath:"..\..\Debug"
!ELSEIF "$(CFG)" == "mysql - Win32 Debug_TS"
@@ -96,8 +96,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug_TS"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /FR /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D ZEND_DEBUG=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /FR /YX /FD /GZ /c
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /FR /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "_DEBUG" /D ZEND_DEBUG=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "_DEBUG"
@@ -107,7 +107,7 @@ BSC32=bscmake.exe # 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 winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /debug /machine:I386 /out:"Debug_TS/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug_TS"
+# ADD 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 libmySQL.lib php4ts.lib /nologo /dll /debug /machine:I386 /out:"Debug_TS/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\libmysql\Debug" /libpath:"..\..\Debug_TS"
!ELSEIF "$(CFG)" == "mysql - Win32 Release_TS"
@@ -123,7 +123,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "NDEBUG"
@@ -133,7 +133,7 @@ BSC32=bscmake.exe # 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 winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release_TS"
+# ADD 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 libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\libmysql\Release" /libpath:"..\..\Release_TS"
!ENDIF
diff --git a/ext/standard/dl.c b/ext/standard/dl.c index 945650f5aa..6d3db207b0 100644 --- a/ext/standard/dl.c +++ b/ext/standard/dl.c @@ -87,7 +87,9 @@ void php3_dl(pval *file,int type,pval *return_value) php3_module_entry *(*get_module)(void); PLS_FETCH(); - if (cfg_get_string("extension_dir",&PG(extension_dir))==SUCCESS && PG(extension_dir)){ + if (cfg_get_string("extension_dir",&PG(extension_dir))==SUCCESS + && PG(extension_dir) + && PG(extension_dir)[0]){ int extension_dir_len = strlen(PG(extension_dir)); if (PG(extension_dir)[extension_dir_len-1]=='/' || PG(extension_dir)[extension_dir_len-1]=='\\') { diff --git a/main/main.c b/main/main.c index 15fa76ac65..63f0519f21 100644 --- a/main/main.c +++ b/main/main.c @@ -96,9 +96,6 @@ void *gLock; /*mutex variable */ /* True globals (no need for thread safety) */ HashTable configuration_hash; PHPAPI char *php3_ini_path = NULL; -#ifdef ZTS -php_core_globals *main_core_globals=NULL; -#endif #define SAFE_FILENAME(f) ((f)?(f):"-") @@ -755,20 +752,17 @@ static void php3_config_ini_shutdown() } -#ifdef ZTS -static void core_globals_ctor(php_core_globals *core_globals) +static int zend_body_write_wrapper(const char *str, uint str_length) { - if (main_core_globals) { - *core_globals = *main_core_globals; - } + return zend_body_write(str, str_length); } -#endif - -static int zend_body_write_wrapper(const char *str, uint str_length) +#ifdef ZTS +static void php_new_thread_end_handler(THREAD_T thread_id) { - return zend_body_write(str, str_length); + php_ini_refresh_caches(); } +#endif int php_module_startup(sapi_module_struct *sf) @@ -810,10 +804,11 @@ int php_module_startup(sapi_module_struct *sf) zuf.get_ini_entry = php_get_ini_entry_for_zend; zend_startup(&zuf, NULL); + tsrm_set_new_thread_end_handler(php_new_thread_end_handler); + #ifdef ZTS - core_globals_id = ts_allocate_id(sizeof(php_core_globals), core_globals_ctor, NULL); + core_globals_id = ts_allocate_id(sizeof(php_core_globals), NULL, NULL); core_globals = ts_resource(core_globals_id); - main_core_globals = core_globals; #endif PG(header_is_being_sent) = 0; @@ -835,11 +830,12 @@ int php_module_startup(sapi_module_struct *sf) le_index_ptr = _register_list_destructors(NULL, NULL, 0); FREE_MUTEX(gLock); + php_ini_mstartup(); + if (php3_config_ini_startup() == FAILURE) { return FAILURE; } - php_ini_mstartup(); REGISTER_INI_ENTRIES(); zuv.short_tags = (unsigned char) PG(short_tags); diff --git a/main/php_ini.c b/main/php_ini.c index 4c25faf5b8..bd73ef6b58 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -125,6 +125,21 @@ PHPAPI void php_unregister_ini_entries(int module_number) } +static int php_ini_refresh_cache(php_ini_entry *p) +{ + if (p->on_modify) { + p->on_modify(p, p->value, p->value_length, p->mh_arg1, p->mh_arg2, p->mh_arg3); + } + return 0; +} + + +PHPAPI void php_ini_refresh_caches() +{ + zend_hash_apply(&known_directives, (int (*)(void *)) php_ini_refresh_cache); +} + + PHPAPI int php_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type) { php_ini_entry *ini_entry; diff --git a/main/php_ini.h b/main/php_ini.h index 4ccd84c46e..4dfd0b40bd 100644 --- a/main/php_ini.h +++ b/main/php_ini.h @@ -57,6 +57,7 @@ int php_ini_rshutdown(); PHPAPI int php_register_ini_entries(php_ini_entry *ini_entry, int module_number); PHPAPI void php_unregister_ini_entries(int module_number); +PHPAPI void php_ini_refresh_caches(); PHPAPI int php_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type); PHPAPI int php_restore_ini_entry(char *name, uint name_length); PHPAPI void display_ini_entries(zend_module_entry *module); @@ -100,11 +101,15 @@ PHPAPI PHP_INI_DISP(php_ini_color_displayer_cb); #ifdef ZTS #define STD_PHP_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id) +#define STD_PHP_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, displayer) \ + PHP_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, displayer) #define STD_PHP_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, NULL, php_ini_boolean_displayer_cb) #else #define STD_PHP_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr) +#define STD_PHP_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, display) \ + PHP_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, displayer) #define STD_PHP_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, NULL, php_ini_boolean_displayer_cb) #endif diff --git a/php.ini-dist b/php.ini-dist index 9cf6139ef6..5f54386575 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -51,7 +51,7 @@ highlight.html = #000000 ; Misc allow_builtin_links = Off ; Sets whether phpinfo() will generate built-in links that display the PHP ; and Zend logos, and tells PHP whether to honor them or not. - ; It is no securty threat in any way, but it make sit possible + ; It is no security threat in any way, but it makes it possible ; to determine whether you use PHP on your server or not. diff --git a/php4ts.dsw b/php4ts.dsw index 5bf76329bf..cc2e72b1a8 100644 --- a/php4ts.dsw +++ b/php4ts.dsw @@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ###############################################################################
-Project: "TSRM"=..\TSRM\TSRM.dsp - Package Owner=<4>
+Project: "TSRM"=.\TSRM\TSRM.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -15,7 +15,7 @@ Package=<4> ###############################################################################
-Project: "libzendts"=..\libzend\libzendts.dsp - Package Owner=<4>
+Project: "libzendts"=.\libzend\libzendts.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -23,6 +23,9 @@ Package=<5> Package=<4>
{{{
+ Begin Project Dependency
+ Project_Dep_Name TSRM
+ End Project Dependency
}}}
###############################################################################
diff --git a/win32/php_modules.dsw b/win32/php_modules.dsw new file mode 100644 index 0000000000..8cf96a86c1 --- /dev/null +++ b/win32/php_modules.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "mysql"=.\ext\mysql\mysql.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
|