Default to Windows 98 version, introduce new version mode 'auto' to use the DLL linkage heuristics
Mike Hearn
mike at navi.cx
Wed Jun 16 08:26:38 CDT 2004
Mike Hearn <mike at navi.cx>
Default to Windows 98 version, introduce new version mode 'auto'
to use the DLL linkage heuristics.
Index: dlls/ntdll/version.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/version.c,v
retrieving revision 1.3
diff -u -p -r1.3 version.c
--- dlls/ntdll/version.c 17 Nov 2003 20:31:30 -0000 1.3
+++ dlls/ntdll/version.c 16 Jun 2004 13:25:16 -0000
@@ -185,9 +185,9 @@ static const WCHAR special_dlls[][16] =
{'r','p','c','r','t','4','.','d','l','l',0}
};
-/* the current version has not been autodetected but forced via cmdline */
-static BOOL versionForced = FALSE;
-static WINDOWS_VERSION forcedWinVersion; /* init value irrelevant */
+/* has the reported Windows version been determined via DLL heuristics? */
+static BOOL versionForced = TRUE;
+static WINDOWS_VERSION forcedWinVersion = WIN98;
/**********************************************************************
* parse_win_version
@@ -197,7 +197,8 @@ static WINDOWS_VERSION forcedWinVersion;
static BOOL parse_win_version( HKEY hkey )
{
static const WCHAR WindowsW[] = {'W','i','n','d','o','w','s',0};
-
+ static const char *auto_key_name = "auto";
+
UNICODE_STRING valueW;
char tmp[64], buffer[50];
KEY_VALUE_PARTIAL_INFORMATION *info = (KEY_VALUE_PARTIAL_INFORMATION *)tmp;
@@ -210,7 +211,15 @@ static BOOL parse_win_version( HKEY hkey
RtlUnicodeToMultiByteN( buffer, sizeof(buffer)-1, &len, (WCHAR *)info->Data, info->DataLength );
buffer[len] = 0;
-
+
+ if ((len - 1 == strlen(auto_key_name)) && (!strncmp(auto_key_name, buffer, len)))
+ {
+ /* we want to use the automatic version sniffing heuristics */
+ TRACE("using automatic version heuristics\n");
+ versionForced = FALSE;
+ return TRUE;
+ }
+
for (i = 0; i < NB_WINDOWS_VERSIONS; i++)
{
const char *p, *pCurr = WinVersionNames[i];
@@ -221,7 +230,6 @@ static BOOL parse_win_version( HKEY hkey
if ( (!strncmp( pCurr, buffer, len )) && (buffer[len] == 0) )
{
forcedWinVersion = i;
- versionForced = TRUE;
TRACE( "got win version %s\n", WinVersionNames[forcedWinVersion] );
return TRUE;
}
@@ -231,6 +239,7 @@ static BOOL parse_win_version( HKEY hkey
MESSAGE("Invalid Windows version value '%s' specified in config file.\n", buffer );
MESSAGE("Valid versions are:" );
+ MESSAGE(" 'auto',");
for (i = 0; i < NB_WINDOWS_VERSIONS; i++)
{
/* only list the first, "official" alias in case of aliases */
More information about the wine-patches
mailing list