From ddd92202619a69cc03e5a4af119c73ee41eb5944 Mon Sep 17 00:00:00 2001 From: "David G. Holm" Date: Thu, 20 May 1999 03:03:07 +0000 Subject: [PATCH] See ChangeLog entry 19990519-22:00 EST David G. Holm --- harbour/ChangeLog | 5 +++++ harbour/source/rtl/environ.c | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 48b69b32b3..9f96c7b190 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,8 @@ +19990519-22:00 EST David G. Holm + * source/rtl/environ.c + - Do Windows version check even when #if defined(_Windows). + - Don't attach version numbers if the major OS version number is unknown. + 19990519-21:40 EST David G. Holm * makefile.b31 - Modified to support changes to source/compiler/fixflex.c diff --git a/harbour/source/rtl/environ.c b/harbour/source/rtl/environ.c index f1cb0f1937..6164fe566e 100644 --- a/harbour/source/rtl/environ.c +++ b/harbour/source/rtl/environ.c @@ -29,7 +29,7 @@ HARBOUR OS() { - int hb_osmajor, hb_osminor, hb_osletter; + int hb_osmajor = -1, hb_osminor = -1, hb_osletter = -1; char * hb_os = 0; char version [128]; #ifdef __IBMCPP__ @@ -54,7 +54,15 @@ HARBOUR OS() #if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) #if defined(_Windows) - hb_os = "Windows"; + hb_os = "Windows 95/98"; + _AX = 0x160A; + geninterrupt(0x2F); + if(_AX == 0) + { + hb_osmajor = _BX / 256; + hb_osminor = _BX % 256; + hb_osletter = 0; + } #else /* detect OS/2 */ if(_osmajor >= 10) @@ -158,6 +166,7 @@ HARBOUR OS() #endif /* __IBMCPP__ */ if (!hb_os) strcpy (version, "Unknown"); + else if (hb_osmajor == -1) strcpy (version, hb_os); else sprintf (version, "%s %d.%02d%c", hb_os, hb_osmajor, hb_osminor, hb_osletter); _retc (version); }