summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--win32/win32.c10
2 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index e2415320ed..c2977eea27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Nov 13 16:49:16 2001 Usaku Nakamura <usa@ruby-lang.org>
+
+ * win32/win32.c (mypopen): return error status instead of calling
+ rb_sys_fail().
+
+ * win32/win32.c (do_spawn): ditto.
+
Tue Nov 13 12:55:59 2001 Usaku Nakamura <usa@ruby-lang.org>
* win32/win32.c (do_spawn): use CreateChild() instead of calling
diff --git a/win32/win32.c b/win32/win32.c
index 99a703c6b5..d0531a70d0 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -474,7 +474,7 @@ mypopen (char *cmd, char *mode)
fRet = CreatePipe(&hInFile, &hOutFile, &sa, 2048L);
if (!fRet) {
errno = GetLastError();
- rb_sys_fail("mypopen: CreatePipe");
+ return NULL;
}
if (reading) {
@@ -487,7 +487,7 @@ mypopen (char *cmd, char *mode)
if (!child) {
CloseHandle(hInFile);
CloseHandle(hOutFile);
- rb_sys_fail("mypopen: CreateChild");
+ return NULL;
}
if (reading) {
@@ -502,13 +502,13 @@ mypopen (char *cmd, char *mode)
if (fd == -1) {
CloseHandle(reading ? hInFile : hOutFile);
CloseChildHandle(child);
- rb_sys_fail("mypopen: _open_osfhandle");
+ return NULL;
}
if ((fp = (FILE *) fdopen(fd, mode)) == NULL) {
_close(fd);
CloseChildHandle(child);
- rb_sys_fail("mypopen: fdopen");
+ return NULL;
}
child->pipe = fp;
@@ -551,7 +551,7 @@ char *cmd;
{
struct ChildRecord *child = CreateChild(cmd, NULL, NULL, NULL, NULL);
if (!child) {
- rb_sys_fail("do_spawn: CreateChild");
+ return -1;
}
rb_syswait(child->pid);
return NUM2INT(rb_last_status);