diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-20 18:21:39 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-20 18:21:39 +0000 |
commit | d154b1c346448b432245d19147502bbffb796cb5 (patch) | |
tree | 6d2260c3c4503514ced4afdbcf9548b98a8c1950 | |
parent | 7da723cfbb81a7e40228db33b65fbf4eecd574ad (diff) | |
download | ruby-d154b1c346448b432245d19147502bbffb796cb5.tar.gz |
* process.c (rb_f_system): returns nil on execution failure.
[ruby-core:13715]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | process.c | 9 |
2 files changed, 10 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Wed Nov 21 03:12:50 2007 Yukihiro Matsumoto <matz@ruby-lang.org> + + * process.c (rb_f_system): returns nil on execution failure. + [ruby-core:13715] + Wed Nov 21 01:04:12 2007 Yukihiro Matsumoto <matz@ruby-lang.org> * object.c (nil_plus): remove unused function. [ruby-core:13737] @@ -1758,10 +1758,11 @@ rb_spawn(int argc, VALUE *argv) * call-seq: * system(cmd [, arg, ...]) => true or false * - * Executes _cmd_ in a subshell, returning +true+ if the command ran - * successfully, +false+ otherwise. An error status is available in + * Executes _cmd_ in a subshell, returning +true+ if the command + * gives zero exit status, +false+ for non zero exit status. Returns + * +nil+ if command execution fails. An error status is available in * <code>$?</code>. The arguments are processed in the same way as - * for <code>Kernel::exec</code>, and raises same exceptions as it. + * for <code>Kernel::exec</code>. * * system("echo *") * system("echo", "*") @@ -1795,7 +1796,7 @@ rb_f_system(int argc, VALUE *argv) signal(SIGCHLD, chfunc); #endif if (status < 0) { - rb_sys_fail(RSTRING_PTR(argv[0])); + return Qnil; } status = NUM2INT(rb_last_status_get()); if (status == EXIT_SUCCESS) return Qtrue; |