aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--win32/win32.c22
2 files changed, 26 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3b840a7aad..79ccea8c89 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Feb 10 12:06:31 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (init_stdhandle): assign standard file handles.
+
Wed Feb 9 16:33:05 2005 NAKAMURA Usaku <usa@ruby-lang.org>
* ext/socket/socket.c (wait_connectable): fixed wrong condition.
diff --git a/win32/win32.c b/win32/win32.c
index 9de71d7a25..92d00166bd 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -409,6 +409,8 @@ static void init_env(void)
NTLoginName[len] = '\0';
}
+static void init_stdhandle();
+
//
// Initialization stuff
//
@@ -431,6 +433,8 @@ NtInitialize(int *argc, char ***argv)
init_env();
+ init_stdhandle();
+
// Initialize Winsock
StartSockets();
}
@@ -1647,11 +1651,29 @@ rb_w32_open_osfhandle(long osfhandle, int flags)
}
return fh; /* return handle */
}
+
+static void
+init_stdhandle()
+{
+ if (fileno(stdin) < 0) {
+ stdin->_file = 0;
+ }
+ if (fileno(stdout) < 0) {
+ stdout->_file = 1;
+ }
+ if (fileno(stderr) < 0) {
+ stderr->_file = 2;
+ }
+}
#else
#define _set_osfhnd(fh, osfh) (void)((fh), (osfh))
#define _set_osflags(fh, flags) (void)((fh), (flags))
+static void
+init_stdhandle()
+{
+}
#endif
#ifdef __BORLANDC__