diff options
-rw-r--r-- | ext/standard/basic_functions.c | 1 | ||||
-rw-r--r-- | ext/standard/info.c | 52 | ||||
-rw-r--r-- | ext/standard/info.h | 1 |
3 files changed, 36 insertions, 18 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 3061d0fabd..924ae50bba 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -126,6 +126,7 @@ function_entry basic_functions[] = { PHP_FE(php_logo_guid, NULL) PHP_FE(zend_logo_guid, NULL) PHP_FE(php_sapi_name, NULL) + PHP_FE(php_uname, NULL) PHP_FE(strnatcmp, NULL) PHP_FE(strnatcasecmp, NULL) diff --git a/ext/standard/info.c b/ext/standard/info.c index 3e6942c083..c3b5fcec90 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -121,20 +121,37 @@ void php_info_print_style(void) } -PHPAPI void php_print_info(int flag) +PHPAPI char *php_get_uname() { - char **env,*tmp1,*tmp2; char *php_uname; - int expose_php = INI_INT("expose_php"); - time_t the_time; - struct tm *ta, tmbuf; #ifdef PHP_WIN32 char php_windows_uname[256]; DWORD dwBuild=0; DWORD dwVersion = GetVersion(); DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); DWORD dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion))); + + /* Get build numbers for Windows NT or Win95 */ + if (dwVersion < 0x80000000){ + dwBuild = (DWORD)(HIWORD(dwVersion)); + snprintf(php_windows_uname,255,"%s %d.%d build %d","Windows NT",dwWindowsMajorVersion,dwWindowsMinorVersion,dwBuild); + } else { + snprintf(php_windows_uname,255,"%s %d.%d","Windows 95/98",dwWindowsMajorVersion,dwWindowsMinorVersion); + } + php_uname = php_windows_uname; +#else + php_uname=PHP_UNAME; #endif + return estrdup(php_uname); +} + +PHPAPI void php_print_info(int flag) +{ + char **env,*tmp1,*tmp2; + char *php_uname; + int expose_php = INI_INT("expose_php"); + time_t the_time; + struct tm *ta, tmbuf; ELS_FETCH(); SLS_FETCH(); @@ -146,18 +163,7 @@ PHPAPI void php_print_info(int flag) if (flag & PHP_INFO_GENERAL) { char *zend_version = get_zend_version(); -#ifdef PHP_WIN32 - /* Get build numbers for Windows NT or Win95 */ - if (dwVersion < 0x80000000){ - dwBuild = (DWORD)(HIWORD(dwVersion)); - snprintf(php_windows_uname,255,"%s %d.%d build %d","Windows NT",dwWindowsMajorVersion,dwWindowsMinorVersion,dwBuild); - } else { - snprintf(php_windows_uname,255,"%s %d.%d","Windows 95/98",dwWindowsMajorVersion,dwWindowsMinorVersion); - } - php_uname = php_windows_uname; -#else - php_uname=PHP_UNAME; -#endif + php_uname = php_get_uname(); php_info_print_style(); @@ -219,6 +225,7 @@ PHPAPI void php_print_info(int flag) zend_html_puts(zend_version, strlen(zend_version)); php_printf("</BR>\n"); php_info_print_box_end(); + efree(php_uname); } if ((flag & PHP_INFO_CREDITS) && expose_php) { @@ -642,7 +649,7 @@ PHP_FUNCTION(zend_logo_guid) RETURN_STRINGL(ZEND_LOGO_GUID, sizeof(ZEND_LOGO_GUID)-1, 1); } -/* {{{ proto string sapi_module_name(void) +/* {{{ proto string php_sapi_name(void) Return the current SAPI module name */ PHP_FUNCTION(php_sapi_name) { @@ -655,6 +662,15 @@ PHP_FUNCTION(php_sapi_name) /* }}} */ +/* {{{ proto string php_uname(void) + Return information about the system PHP was built on */ +PHP_FUNCTION(php_uname) +{ + RETURN_STRING(php_get_uname(), 0); +} + +/* }}} */ + /* * Local variables: * tab-width: 4 diff --git a/ext/standard/info.h b/ext/standard/info.h index 6936b58dba..72beafcfdc 100644 --- a/ext/standard/info.h +++ b/ext/standard/info.h @@ -55,6 +55,7 @@ PHP_FUNCTION(php_logo_guid); PHP_FUNCTION(zend_logo_guid); PHP_FUNCTION(php_egg_logo_guid); PHP_FUNCTION(php_sapi_name); +PHP_FUNCTION(php_uname); PHPAPI void php_print_info(int flag); PHPAPI void php_print_credits(int flag); PHPAPI void php_print_style(void); |