# HG changeset patch # User Geoff Voelker # Date 930261914 0 # Node ID 5f1b1f5fd7c8b7629488518510313cf3cbfbd11c # Parent 1e6ee49f9474aac5fadf1e66970172cb25d90006 (get_emacs_configuration): Use GetVersionEx to handle NT5.0 correctly. Include build number in configuration. w32heap.c (osinfo_cache): New variable. diff -r 1e6ee49f9474 -r 5f1b1f5fd7c8 src/w32.c --- a/src/w32.c Thu Jun 24 18:04:46 1999 +0000 +++ b/src/w32.c Thu Jun 24 22:05:14 1999 +0000 @@ -789,6 +789,7 @@ get_emacs_configuration (void) { char *arch, *oem, *os; + int build_num; /* Determine the processor type. */ switch (get_processor_type ()) @@ -830,10 +831,37 @@ /* Let oem be "*" until we figure out how to decode the OEM field. */ oem = "*"; - os = (GetVersion () & OS_WIN95) ? "windows95" : "nt"; - - sprintf (configuration_buffer, "%s-%s-%s%d.%d", arch, oem, os, - get_w32_major_version (), get_w32_minor_version ()); + switch (osinfo_cache.dwPlatformId) { + case VER_PLATFORM_WIN32_NT: + os = "nt"; + build_num = osinfo_cache.dwBuildNumber; + break; + case VER_PLATFORM_WIN32_WINDOWS: + if (osinfo_cache.dwMinorVersion == 0) { + os = "windows95"; + } else { + os = "windows98"; + } + build_num = LOWORD (osinfo_cache.dwBuildNumber); + break; + case VER_PLATFORM_WIN32s: + /* Not supported, should not happen. */ + os = "windows32s"; + build_num = LOWORD (osinfo_cache.dwBuildNumber); + break; + default: + os = "unknown"; + build_num = 0; + break; + } + + if (osinfo_cache.dwPlatformId == VER_PLATFORM_WIN32_NT) { + sprintf (configuration_buffer, "%s-%s-%s%d.%d.%d", arch, oem, os, + get_w32_major_version (), get_w32_minor_version (), build_num); + } else { + sprintf (configuration_buffer, "%s-%s-%s.%d", arch, oem, os, build_num); + } + return configuration_buffer; }