ruby-changes:11174
From: nobu <ko1@a...>
Date: Thu, 5 Mar 2009 13:22:41 +0900 (JST)
Subject: [ruby-changes:11174] Ruby:r22779 (trunk): * win32/win32.c (rb_w32_osid): always define for binary compatibility.
nobu 2009-03-05 13:21:47 +0900 (Thu, 05 Mar 2009) New Revision: 22779 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22779 Log: * win32/win32.c (rb_w32_osid): always define for binary compatibility. Modified files: trunk/ChangeLog trunk/win32/win32.c Index: ChangeLog =================================================================== --- ChangeLog (revision 22778) +++ ChangeLog (revision 22779) @@ -1,3 +1,7 @@ +Thu Mar 5 13:21:43 2009 Nobuyoshi Nakada <nobu@r...> + + * win32/win32.c (rb_w32_osid): always define for binary compatibility. + Thu Mar 5 11:52:16 2009 Nobuyoshi Nakada <nobu@r...> * win32/Makefile.sub (make_insns_rules): rule to make rules for insns. Index: win32/win32.c =================================================================== --- win32/win32.c (revision 22778) +++ win32/win32.c (revision 22779) @@ -196,17 +196,24 @@ static const char *NTLoginName; static OSVERSIONINFO osver; -#ifdef WIN95 +static void +get_version(void) +{ + memset(&osver, 0, sizeof(OSVERSIONINFO)); + osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osver); + Win32System = osver.dwPlatformId; + Win32Version = osver.dwMajorVersion; +} + +#ifdef _M_IX86 static DWORD Win32System = (DWORD)-1; DWORD rb_w32_osid(void) { if (osver.dwPlatformId != Win32System) { - memset(&osver, 0, sizeof(OSVERSIONINFO)); - osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osver); - Win32System = osver.dwPlatformId; + get_version(); } return (Win32System); } @@ -217,16 +224,18 @@ rb_w32_osver(void) { if (osver.dwMajorVersion != Win32Version) { - memset(&osver, 0, sizeof(OSVERSIONINFO)); - osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osver); - Win32Version = osver.dwMajorVersion; + get_version(); } return (Win32Version); } #define IsWinNT() rb_w32_iswinnt() #define IsWin95() rb_w32_iswin95() +#ifdef WIN95 +#define IfWin95(win95, winnt) (IsWin95() ? (win95) : (winnt)) +#else +#define IfWin95(win95, winnt) (winnt) +#endif HANDLE GetCurrentThreadHandle(void) @@ -2330,7 +2339,7 @@ rb_fdset_t else_wr; rb_fdset_t except; int nonsock = 0; - struct timeval limit; + struct timeval limit = {0, 0}; if (nfds < 0 || (timeout && (timeout->tv_sec < 0 || timeout->tv_usec < 0))) { errno = EINVAL; @@ -3334,7 +3343,7 @@ return -1; } - if (IsWin95()) pid = -pid; + (void)IfWin95(pid = -pid, 0); if ((unsigned int)pid == GetCurrentProcessId() && (sig != 0 && sig != SIGKILL)) { if ((ret = raise(sig)) != 0) { @@ -3800,6 +3809,7 @@ { HANDLE h; int ret; +#ifdef WIN95 if (IsWin95()) { int fd = open(path, O_WRONLY), e = 0; if (fd == -1) return -1; @@ -3809,6 +3819,7 @@ if (ret == -1) errno = e; return ret; } +#endif h = CreateFile(path, GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if (h == INVALID_HANDLE_VALUE) { errno = map_errno(GetLastError()); @@ -3824,9 +3835,11 @@ { long h; +#ifdef WIN95 if (IsWin95()) { return chsize(fd, (unsigned long)length); } +#endif h = _get_osfhandle(fd); if (h == -1) return -1; return rb_chsize((HANDLE)h, length); @@ -4126,7 +4139,7 @@ pid = getpid(); - if (IsWin95()) pid = -pid; + (void)IfWin95(pid = -pid, 0); return pid; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/