kalle                                    Tue, 12 Oct 2010 17:34:25 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=304351

Log:
* Added version info for Windows XP Starter/Tablet PC/Media Center editions
* Fixed typo: "Unknow" -> "Unknown"
* Removed useless Win9x version info

# I will merge this to 5.3 once I have analyzed a possible bug
# (and hopefully fixed) why Server 2008 is reported as unknown

Changed paths:
    U   php/php-src/trunk/ext/standard/info.c
    U   php/php-src/trunk/ext/standard/winver.h

Modified: php/php-src/trunk/ext/standard/info.c
===================================================================
--- php/php-src/trunk/ext/standard/info.c       2010-10-12 12:16:09 UTC (rev 
304350)
+++ php/php-src/trunk/ext/standard/info.c       2010-10-12 17:34:25 UTC (rev 
304351)
@@ -348,7 +348,7 @@
                                        major = "Windows Server 2008 R2";
                                }
                        } else {
-                               major = "Unknow Windows version";
+                               major = "Unknown Windows version";
                        }

                        pGPI = (PGPI) 
GetProcAddress(GetModuleHandle("kernel32.dll"), "GetProductInfo");
@@ -454,9 +454,17 @@

                if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )     
{
                        major = "Windows XP";
-                       if( osvi.wSuiteMask & VER_SUITE_PERSONAL )
+                       if( osvi.wSuiteMask & VER_SUITE_PERSONAL ) {
                                sub = "Home Edition";
-                       else sub = "Professional";
+                       } else if (GetSystemMetrics(SM_MEDIACENTER)) {
+                               sub = "Media Center Edition";
+                       } else if (GetSystemMetrics(SM_STARTER)) {
+                               sub = "Starter Edition";
+                       } else if (GetSystemMetrics(SM_TABLETPC)) {
+                               sub = "Tablet PC Edition";
+                       } else {
+                               sub = "Professional";
+                       }
                }

                if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) {
@@ -538,11 +546,7 @@
        GetComputerName(ComputerName, &dwSize);

        if (mode == 's') {
-               if (dwVersion < 0x80000000) {
-                       php_uname = "Windows NT";
-               } else {
-                       php_uname = "Windows 9x";
-               }
+               php_uname = "Windows NT";
        } else if (mode == 'r') {
                snprintf(tmp_uname, sizeof(tmp_uname), "%d.%d", 
dwWindowsMajorVersion, dwWindowsMinorVersion);
                php_uname = tmp_uname;
@@ -564,23 +568,16 @@
                php_get_windows_cpu(tmp_uname, sizeof(tmp_uname));
                php_uname = tmp_uname;
        } else { /* assume mode == 'a' */
-               /* Get build numbers for Windows NT or Win95 */
-               if (dwVersion < 0x80000000){
-                       char *winver = php_get_windows_name();
-                       char wincpu[20];
+               char *winver = php_get_windows_name();
+               char wincpu[20];

-                       php_get_windows_cpu(wincpu, sizeof(wincpu));
-                       dwBuild = (DWORD)(HIWORD(dwVersion));
-                       snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d 
build %d (%s) %s",
-                                        "Windows NT", ComputerName,
-                                        dwWindowsMajorVersion, 
dwWindowsMinorVersion, dwBuild, winver?winver:"unknown", wincpu);
-                       if(winver) {
-                               efree(winver);
-                       }
-               } else {
-                       snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d",
-                                        "Windows 9x", ComputerName,
-                                        dwWindowsMajorVersion, 
dwWindowsMinorVersion);
+               php_get_windows_cpu(wincpu, sizeof(wincpu));
+               dwBuild = (DWORD)(HIWORD(dwVersion));
+               snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d build %d 
(%s) %s",
+                                "Windows NT", ComputerName,
+                                dwWindowsMajorVersion, dwWindowsMinorVersion, 
dwBuild, winver?winver:"unknown", wincpu);
+               if(winver) {
+                       efree(winver);
                }
                php_uname = tmp_uname;
        }

Modified: php/php-src/trunk/ext/standard/winver.h
===================================================================
--- php/php-src/trunk/ext/standard/winver.h     2010-10-12 12:16:09 UTC (rev 
304350)
+++ php/php-src/trunk/ext/standard/winver.h     2010-10-12 17:34:25 UTC (rev 
304351)
@@ -1,6 +1,15 @@
 #ifndef _PHP_WINVER_H
 #define _PHP_WINVER_H

+#ifndef SM_TABLETPC
+#define SM_TABLETPC 86
+#endif
+#ifndef SM_MEDIACENTER
+#define SM_MEDIACENTER 87
+#endif
+#ifndef SM_STARTER
+#define SM_STARTER 88
+#endif
 #ifndef SM_SERVERR2
 #define SM_SERVERR2 89
 #endif

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to