* wincap.cc (wincapc::init): Drop memset call since it can result in
a race condition. Drop all considerations for pre-Windows 2000 systems since Cygwin won't start on them anyway.
This commit is contained in:
parent
5f3eab86a6
commit
67d71dbf10
|
@ -1,3 +1,9 @@
|
||||||
|
2012-07-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* wincap.cc (wincapc::init): Drop memset call since it can result in
|
||||||
|
a race condition. Drop all considerations for pre-Windows 2000 systems
|
||||||
|
since Cygwin won't start on them anyway.
|
||||||
|
|
||||||
2012-07-23 Christopher Faylor <me.cygwin2012@cgf.cx>
|
2012-07-23 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
Change "set_thread_waiting" to "set_signal_arrived" throughout.
|
Change "set_thread_waiting" to "set_signal_arrived" throughout.
|
||||||
|
|
|
@ -347,71 +347,51 @@ wincapc::init ()
|
||||||
return; // already initialized
|
return; // already initialized
|
||||||
|
|
||||||
GetSystemInfo (&system_info);
|
GetSystemInfo (&system_info);
|
||||||
memset (&version, 0, sizeof version);
|
|
||||||
version.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
|
version.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
|
||||||
if (!GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&version)))
|
GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&version));
|
||||||
api_fatal ("Cygwin requires at least Windows 2000.");
|
|
||||||
|
|
||||||
switch (version.dwPlatformId)
|
switch (version.dwMajorVersion)
|
||||||
{
|
{
|
||||||
case VER_PLATFORM_WIN32_NT:
|
case 5:
|
||||||
switch (version.dwMajorVersion)
|
switch (version.dwMinorVersion)
|
||||||
{
|
{
|
||||||
case 4:
|
case 0:
|
||||||
/* I'd be very surprised if this code is ever hit, but it doesn't
|
if (version.wServicePackMajor < 4)
|
||||||
hurt to keep it. */
|
caps = &wincap_2000;
|
||||||
api_fatal ("Cygwin requires at least Windows 2000.");
|
else
|
||||||
|
caps = &wincap_2000sp4;
|
||||||
break;
|
break;
|
||||||
case 5:
|
|
||||||
switch (version.dwMinorVersion)
|
case 1:
|
||||||
|
caps = &wincap_xp;
|
||||||
|
switch (version.wServicePackMajor)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (version.wServicePackMajor < 4)
|
caps = &wincap_xp;
|
||||||
caps = &wincap_2000;
|
case 1:
|
||||||
else
|
caps = &wincap_xpsp1;
|
||||||
caps = &wincap_2000sp4;
|
default:
|
||||||
break;
|
caps = &wincap_xpsp2;
|
||||||
|
|
||||||
case 1:
|
|
||||||
caps = &wincap_xp;
|
|
||||||
switch (version.wServicePackMajor)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
caps = &wincap_xp;
|
|
||||||
case 1:
|
|
||||||
caps = &wincap_xpsp1;
|
|
||||||
default:
|
|
||||||
caps = &wincap_xpsp2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
caps = &wincap_2003;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
switch (version.dwMinorVersion)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
caps = &wincap_vista;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
caps = &wincap_7;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
caps = &wincap_8;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
caps = &wincap_minimal;
|
caps = &wincap_2003;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VER_PLATFORM_WIN32_WINDOWS:
|
case 6:
|
||||||
/* I'd be very surprised if this code is ever hit, but it doesn't
|
switch (version.dwMinorVersion)
|
||||||
hurt to keep it. */
|
{
|
||||||
api_fatal ("Windows 95/98/Me are not supported.");
|
case 0:
|
||||||
|
caps = &wincap_vista;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
caps = &wincap_7;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
caps = &wincap_8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
caps = &wincap_minimal;
|
caps = &wincap_minimal;
|
||||||
|
|
Loading…
Reference in New Issue