From c3ce319d7d9ea2bbde36aa65baf6fecebc9f101a Mon Sep 17 00:00:00 2001 From: usa Date: Tue, 7 Dec 2004 15:47:59 +0000 Subject: * io.c (pipe_open): win32 bidirectional pipe support. * win32/win32.[ch] (rb_w32_pipe_exec): ditto. * win32/win32.[ch] (socketpair): new function. POSIX socketpair emulation. * win32/win32.c (socketpair_internal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index c95b67d379..665956842a 100644 --- a/io.c +++ b/io.c @@ -2805,7 +2805,7 @@ pipe_open(argc, argv, mode) struct popen_arg arg; volatile int doexec; #elif defined(_WIN32) - int r, w; + int fd; int openmode = rb_io_mode_modenum(mode); char *exename = NULL; #endif @@ -2895,7 +2895,7 @@ pipe_open(argc, argv, mode) else { cmd = StringValueCStr(prog); } - while ((pid = rb_w32_pipe_exec(cmd, exename, openmode, &r, &w)) == -1) { + while ((pid = rb_w32_pipe_exec(cmd, exename, openmode, &fd)) == -1) { /* exec failed */ switch (errno) { case EAGAIN: @@ -2910,14 +2910,13 @@ pipe_open(argc, argv, mode) } } if ((modef & FMODE_READABLE) && (modef & FMODE_WRITABLE)) { - close(w); - fp = rb_fdopen(r, "r+"); + fp = rb_fdopen(fd, "r+"); } else if (modef & FMODE_READABLE) { - fp = rb_fdopen(r, "r"); + fp = rb_fdopen(fd, "r"); } else { - fp = rb_fdopen(w, "w"); + fp = rb_fdopen(fd, "w"); } #else prog = rb_ary_join(rb_ary_new4(argc, argv), rb_str_new2(" ")); -- cgit v1.2.3