version patch

Andreas Mohr andi at rhlx01.fht-esslingen.de
Tue Apr 15 08:06:58 CDT 2003


Hi all,

- print out Windows version values, in human-readable format, when
  using +ver (somehow I've always been missing that)
- update my (c), since I care about that code :-)


Index: misc/version.c
===================================================================
RCS file: /home/wine/wine/misc/version.c,v
retrieving revision 1.65
diff -u -r1.65 version.c
--- misc/version.c	30 Mar 2003 03:08:13 -0000	1.65
+++ misc/version.c	15 Apr 2003 13:01:45 -0000
@@ -4,7 +4,7 @@
  * Copyright 1997 Alexandre Julliard
  * Copyright 1997 Marcus Meissner
  * Copyright 1998 Patrik Stridvall
- * Copyright 1998 Andreas Mohr
+ * Copyright 2003 Andreas Mohr
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -58,6 +58,7 @@
 
 typedef struct
 {
+    char             human_readable[32];
     LONG             getVersion16;
     LONG             getVersion32;
     OSVERSIONINFOEXA getVersionEx;
@@ -70,9 +71,13 @@
 {
     /* WIN20 FIXME: verify values */
     {
+	"Windows 2.0",
 	MAKELONG( 0x0002, 0x0303 ), /* assume DOS 3.3 */
 	MAKELONG( 0x0002, 0x8000 ),
 	{
+	    /* yes, sizeof(OSVERSIONINFOA) is correct here
+	     * (in case of OSVERSIONINFOEXA application request,
+	     * we adapt it dynamically). */
             sizeof(OSVERSIONINFOA), 2, 0, 0,
             VER_PLATFORM_WIN32s, "Win32s 1.3",
 	    0, 0, 0, 0, 0
@@ -80,6 +85,7 @@
     },
     /* WIN30 FIXME: verify values */
     {
+	"Windows 3.0",
 	MAKELONG( 0x0003, 0x0500 ), /* assume DOS 5.00 */
 	MAKELONG( 0x0003, 0x8000 ),
 	{
@@ -90,6 +96,7 @@
     },
     /* WIN31 */
     {
+	"Windows 3.1",
 	MAKELONG( 0x0a03, 0x0616 ), /* DOS 6.22 */
 	MAKELONG( 0x0a03, 0x8000 ),
 	{
@@ -100,6 +107,7 @@
     },
     /* WIN95 */
     {
+	"Windows 95",
         0x07005F03,
         0xC0000004,
         {
@@ -119,6 +127,7 @@
     },
     /* WIN98 (second edition) */
     {
+	"Windows 98",
         0x070A5F03,
         0xC0000A04,
         {
@@ -132,6 +141,7 @@
     },
     /* WINME */
     {
+	"Windows ME",
         0x08005F03,
         0xC0005A04,
         {
@@ -142,6 +152,7 @@
     },
     /* NT351 */
     {
+	"Windows NT 3.51",
         0x05000A03,
         0x04213303,
         {
@@ -152,6 +163,7 @@
     },
     /* NT40 */
     {
+	"Windows NT 4.0",
         0x05000A03,
         0x05650004,
         {
@@ -162,16 +174,18 @@
     },
     /* NT2K */
     {
+	"Windows 2000",
         0x05005F03,
         0x08930005,
         {
             sizeof(OSVERSIONINFOA), 5, 0, 0x893,
             VER_PLATFORM_WIN32_NT, "Service Pack 2",
-	    2, 0, 0, VER_NT_WORKSTATION, 30 /* FIXME: Great, a reserved field with a value! */
+	    2, 0, 0, VER_NT_WORKSTATION, 30 /* FIXME: Great, a reserved field with a value! Is this correct? */
         }
     },
     /* WINXP */
     {
+	"Windows XP",
         0x05005F03, /* Assuming DOS 5 like the other NT */
         0x0A280105,
         {
@@ -583,6 +597,7 @@
 LONG WINAPI GetVersion16(void)
 {
     WINDOWS_VERSION ver = VERSION_GetVersion();
+    TRACE("<-- %s (%s)\n", VersionData[ver].human_readable, VersionData[ver].getVersionEx.szCSDVersion);
     return VersionData[ver].getVersion16;
 }
 
@@ -593,6 +608,7 @@
 LONG WINAPI GetVersion(void)
 {
     WINDOWS_VERSION ver = VERSION_GetVersion();
+    TRACE("<-- %s (%s)\n", VersionData[ver].human_readable, VersionData[ver].getVersionEx.szCSDVersion);
     return VersionData[ver].getVersion32;
 }
 
@@ -614,6 +630,7 @@
     v->dwBuildNumber  = VersionData[ver].getVersionEx.dwBuildNumber;
     v->dwPlatformId   = VersionData[ver].getVersionEx.dwPlatformId;
     strcpy( v->szCSDVersion, VersionData[ver].getVersionEx.szCSDVersion );
+    TRACE("<-- %s (%s)\n", VersionData[ver].human_readable, VersionData[ver].getVersionEx.szCSDVersion);
     return TRUE;
 }
 
@@ -647,6 +664,7 @@
 	vex->wSuiteMask = VersionData[ver].getVersionEx.wSuiteMask;
 	vex->wProductType = VersionData[ver].getVersionEx.wProductType;
     }
+    TRACE("<-- %s (%s)\n", VersionData[ver].human_readable, VersionData[ver].getVersionEx.szCSDVersion);
     return TRUE;
 }
 
@@ -681,6 +699,7 @@
 	vex->wSuiteMask = VersionData[ver].getVersionEx.wSuiteMask;
 	vex->wProductType = VersionData[ver].getVersionEx.wProductType;
     }
+    TRACE("<-- %s (%s)\n", VersionData[ver].human_readable, VersionData[ver].getVersionEx.szCSDVersion);
     return TRUE;
 }
 

-- 
Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany



More information about the wine-patches mailing list