diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/win32.c | 28 | ||||
-rw-r--r-- | win32/win32.h | 15 |
2 files changed, 21 insertions, 22 deletions
diff --git a/win32/win32.c b/win32/win32.c index 07130a46a9..d9ab68a902 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -44,12 +44,6 @@ #undef close #undef setsockopt -#ifdef _M_IX86 -# define WIN95 1 -#else -# undef WIN95 -#endif - #if defined __BORLANDC__ || defined _WIN32_WCE # define _filbuf _fgetc # define _flsbuf _fputc @@ -204,10 +198,10 @@ map_errno(DWORD winerr) static char *NTLoginName; #ifdef WIN95 -DWORD Win32System = (DWORD)-1; +static DWORD Win32System = (DWORD)-1; -static DWORD -IdOS(void) +DWORD +rb_w32_osid(void) { static OSVERSIONINFO osver; @@ -219,21 +213,11 @@ IdOS(void) } return (Win32System); } - -static int -IsWin95(void) { - return (IdOS() == VER_PLATFORM_WIN32_WINDOWS); -} - -static int -IsWinNT(void) { - return (IdOS() == VER_PLATFORM_WIN32_NT); -} -#else -# define IsWinNT() TRUE -# define IsWin95() FALSE #endif +#define IsWinNT() rb_w32_iswinnt() +#define IsWin95() rb_w32_iswin95() + /* main thread constants */ static struct { HANDLE handle; diff --git a/win32/win32.h b/win32/win32.h index f3efa17940..05e61885aa 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -68,6 +68,21 @@ extern "C++" { } #endif +#ifdef _M_IX86 +# define WIN95 1 +#else +# undef WIN95 +#endif + +#ifdef WIN95 +extern DWORD rb_w32_osid(void); +#define rb_w32_iswinnt() (rb_w32_osid() == VER_PLATFORM_WIN32_NT) +#define rb_w32_iswin95() (rb_w32_osid() == VER_PLATFORM_WIN32_WINDOWS) +#else +#define rb_w32_iswinnt() TRUE +#define rb_w32_iswin95() FALSE +#endif + #define WNOHANG -1 #undef getc |