summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--include/ruby/win32.h2
-rw-r--r--io.c2
-rw-r--r--version.h6
-rw-r--r--win32/win32.c15
5 files changed, 19 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 1ab5a3f3cc..1b1e238d9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 28 17:57:49 2012 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * win32/win32.c (is_socket, is_console): add prototypes to fix compile
+ problem with gcc introduced at r32549.
+
Wed Jun 27 08:31:50 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* insns.def (splatarray): make new array if flag is set.
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index b46c202ce3..2badbbcb5c 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -233,7 +233,7 @@ struct msghdr {
extern int rb_w32_cmdvector(const char *, char ***);
extern rb_pid_t rb_w32_pipe_exec(const char *, const char *, int, int *, int *);
extern int flock(int fd, int oper);
-extern int rb_w32_has_cancel_io(void);
+extern int rb_w32_io_cancelable_p(int);
extern int rb_w32_is_socket(int);
extern int WSAAPI rb_w32_accept(int, struct sockaddr *, int *);
extern int WSAAPI rb_w32_bind(int, const struct sockaddr *, int);
diff --git a/io.c b/io.c
index c664450311..bb75ece9e4 100644
--- a/io.c
+++ b/io.c
@@ -193,7 +193,7 @@ rb_update_max_fd(int fd)
#if defined(_WIN32)
#define WAIT_FD_IN_WIN32(fptr) \
- (rb_w32_has_cancel_io() ? 0 : rb_thread_wait_fd((fptr)->fd))
+ (rb_w32_io_cancelable_p((fptr)->fd) ? 0 : rb_thread_wait_fd((fptr)->fd))
#else
#define WAIT_FD_IN_WIN32(fptr)
#endif
diff --git a/version.h b/version.h
index c3ee2beccc..d2ca79460a 100644
--- a/version.h
+++ b/version.h
@@ -1,10 +1,10 @@
#define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 242
+#define RUBY_PATCHLEVEL 243
-#define RUBY_RELEASE_DATE "2012-06-27"
+#define RUBY_RELEASE_DATE "2012-06-28"
#define RUBY_RELEASE_YEAR 2012
#define RUBY_RELEASE_MONTH 6
-#define RUBY_RELEASE_DAY 27
+#define RUBY_RELEASE_DAY 28
#include "ruby/version.h"
diff --git a/win32/win32.c b/win32/win32.c
index 79f8de6e02..253a462f23 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -578,12 +578,6 @@ init_env(void)
typedef BOOL (WINAPI *cancel_io_t)(HANDLE);
static cancel_io_t cancel_io = NULL;
-int
-rb_w32_has_cancel_io(void)
-{
- return cancel_io != NULL;
-}
-
static void
init_func(void)
{
@@ -2088,6 +2082,15 @@ set_pioinfo_extra(void)
#define FDEV 0x40 /* file handle refers to device */
#define FTEXT 0x80 /* file handle is in text mode */
+static int is_socket(SOCKET);
+static int is_console(SOCKET);
+
+int
+rb_w32_io_cancelable_p(int fd)
+{
+ return cancel_io != NULL && (is_socket(TO_SOCKET(fd)) || !is_console(TO_SOCKET(fd)));
+}
+
static int
rb_w32_open_osfhandle(intptr_t osfhandle, int flags)
{