aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--process.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 487dd3a479..ab15aa2e60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jul 18 14:38:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * process.c (rb_f_system): call rb_sys_fail(0) if rb_last_status
+ is nil. [ruby-talk:202361]
+
Tue Jul 18 14:03:02 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/webrick/httpserver.rb (WEBrick::HTTPServer::unmount): remove
diff --git a/process.c b/process.c
index 5b4672b0e0..1989f017d9 100644
--- a/process.c
+++ b/process.c
@@ -1592,6 +1592,7 @@ rb_f_system(int argc, VALUE *argv)
if (status == -1) rb_sys_fail(RSTRING(argv[0])->ptr);
#if defined(HAVE_FORK) || defined(HAVE_SPAWNV)
rb_syswait(status);
+ if (NIL_P(rb_last_status)) rb_sys_fail(0);
status = NUM2INT(rb_last_status);
#endif
if (status == EXIT_SUCCESS) return Qtrue;