Paul Vriens : winecfg: Fix setting version to Vista.
Alexandre Julliard
julliard at winehq.org
Tue Mar 11 10:51:52 CDT 2008
Module: wine
Branch: master
Commit: 863240b77b4886c5868ccf566dc537b33ca2394e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=863240b77b4886c5868ccf566dc537b33ca2394e
Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date: Tue Mar 11 14:25:05 2008 +0100
winecfg: Fix setting version to Vista.
---
programs/winecfg/appdefaults.c | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/programs/winecfg/appdefaults.c b/programs/winecfg/appdefaults.c
index 3fdd8f3..53e912a 100644
--- a/programs/winecfg/appdefaults.c
+++ b/programs/winecfg/appdefaults.c
@@ -70,11 +70,18 @@ static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion";
static int get_registry_version(void)
{
- int i, best = -1, platform, major, minor = 0;
+ int i, best = -1, platform, major, minor, build = 0;
char *p, *ver;
if ((ver = get_reg_key( HKEY_LOCAL_MACHINE, szKeyNT, "CurrentVersion", NULL )))
+ {
+ char *build_str;
+
platform = VER_PLATFORM_WIN32_NT;
+
+ build_str = get_reg_key( HKEY_LOCAL_MACHINE, szKeyNT, "CurrentBuildNumber", NULL );
+ build = atoi(build_str);
+ }
else if ((ver = get_reg_key( HKEY_LOCAL_MACHINE, szKey9x, "VersionNumber", NULL )))
platform = VER_PLATFORM_WIN32_WINDOWS;
else
@@ -82,10 +89,15 @@ static int get_registry_version(void)
if ((p = strchr( ver, '.' )))
{
- char *str = p;
- *str++ = 0;
- if ((p = strchr( str, '.' ))) *p = 0;
- minor = atoi(str);
+ char *minor_str = p;
+ *minor_str++ = 0;
+ if ((p = strchr( minor_str, '.' )))
+ {
+ char *build_str = p;
+ *build_str++ = 0;
+ build = atoi(build_str);
+ }
+ minor = atoi(minor_str);
}
major = atoi(ver);
@@ -94,7 +106,9 @@ static int get_registry_version(void)
if (win_versions[i].dwPlatformId != platform) continue;
if (win_versions[i].dwMajorVersion != major) continue;
best = i;
- if (win_versions[i].dwMinorVersion == minor) return i;
+ if ((win_versions[i].dwMinorVersion == minor) &&
+ (win_versions[i].dwBuildNumber == build))
+ return i;
}
return best;
}
More information about the wine-cvs
mailing list