Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2001-11-12 20:55:52 +0300
committerCorinna Vinschen <corinna@vinschen.de>2001-11-12 20:55:52 +0300
commite4087b7526d2b2e418b0787e0beb6859c0d2cb2b (patch)
tree392de751eee102aa63490acd6dde27311b1d7cde /winsup/utils/cygcheck.cc
parent192b4f62615bde11364f74b3c53afaad2722425b (diff)
* cygcheck.cc (dump_sysinfo): Print more detailed OS information string
using OSVERSIONINFOEX information.
Diffstat (limited to 'winsup/utils/cygcheck.cc')
-rw-r--r--winsup/utils/cygcheck.cc46
1 files changed, 34 insertions, 12 deletions
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index db7132b21..42fa22520 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -771,47 +771,69 @@ dump_sysinfo ()
switch (osversion.dwPlatformId)
{
case VER_PLATFORM_WIN32s:
- osname = (char *) "win32s";
+ osname = (char *) "32s";
break;
case VER_PLATFORM_WIN32_WINDOWS:
switch (osversion.dwMinorVersion)
{
case 0:
if (strchr(osversion.szCSDVersion, 'C'))
- osname = (char *) "Win95OSR2";
+ osname = (char *) "95 OSR2";
else
- osname = (char *) "Win95";
+ osname = (char *) "95";
break;
case 10:
if (strchr(osversion.szCSDVersion, 'A'))
- osname = (char *) "Win98SE";
+ osname = (char *) "98 SE";
else
- osname = (char *) "Win98";
+ osname = (char *) "98";
break;
case 90:
- osname = (char *) "WinME";
+ osname = (char *) "ME";
break;
default:
- osname = (char *) "Win9X";
+ osname = (char *) "9X";
break;
}
break;
case VER_PLATFORM_WIN32_NT:
if (osversion.dwMajorVersion == 5)
{
+ BOOL more_info = FALSE;
+ OSVERSIONINFOEX osversionex;
+ osversionex.dwOSVersionInfoSize = sizeof (osversionex);
+ if (GetVersionEx ((OSVERSIONINFO *)&osversionex))
+ more_info = TRUE;
if (osversion.dwMinorVersion == 0)
- osname = (char *) "Win2000";
+ {
+ if (!more_info)
+ osname = (char *) "2000";
+ else if (osversionex.wProductType == VER_NT_SERVER)
+ osname = (char *) "2000 Server";
+ else
+ osname = (char *) "2000 Professional";
+ }
else
- osname = (char *) "WinXP";
+ {
+ if (!more_info)
+ osname = (char *) "XP";
+ else if (osversionex.wProductType == VER_NT_SERVER)
+ osname = (char *) ".NET Server";
+ else if (osversionex.wSuiteMask & VER_SUITE_PERSONAL)
+ osname = (char *) "XP Home Edition";
+ else
+ osname = (char *) "XP Professional";
+
+ }
}
else
- osname = (char *) "WinNT";
+ osname = (char *) "NT";
break;
default:
- osname = (char *) "uknown-os";
+ osname = (char *) "??";
break;
}
- printf ("%s Ver %d.%d build %d %s\n\n", osname,
+ printf ("Windows %s Ver %d.%d build %d %s\n\n", osname,
(int) osversion.dwMajorVersion, (int) osversion.dwMinorVersion,
(int) osversion.dwBuildNumber, osversion.szCSDVersion);