summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-02-27 01:50:27 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-02-27 01:50:27 +0000
commit80429eed638c36baa3574704b1b567aa7acb4fa6 (patch)
tree387905f8803dc1cbf07736ac403351c38caeaeeb /process.c
parent2c3cc479a9b7d55e48d50d3c1712f28855faea12 (diff)
* io.c, process.c, time.c, ext: use rb_sys_fail_str instead of
rb_sys_fail. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r--process.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/process.c b/process.c
index 027e4e6ed4..ba7bee19f0 100644
--- a/process.c
+++ b/process.c
@@ -1798,6 +1798,7 @@ rb_exec_fillarg(VALUE prog, int argc, VALUE *argv, VALUE env, VALUE opthash, str
e->argc = argc;
e->argv = argv;
e->prog = prog ? RSTRING_PTR(prog) : 0;
+ e->progname = prog;
}
VALUE
@@ -1875,7 +1876,7 @@ rb_f_exec(int argc, VALUE *argv)
rb_exec_err(&earg, errmsg, sizeof(errmsg));
if (errmsg[0])
rb_sys_fail(errmsg);
- rb_sys_fail(earg.prog);
+ rb_sys_fail_str(earg.progname);
return Qnil; /* dummy */
}
@@ -2326,6 +2327,7 @@ rb_run_exec_options_err(const struct rb_exec_arg *e, struct rb_exec_arg *s, char
s->prog = NULL;
s->options = soptions = hide_obj(rb_ary_new());
s->redirect_fds = Qnil;
+ s->progname = Qnil;
}
#ifdef HAVE_SETPGID
@@ -3345,8 +3347,8 @@ rb_f_spawn(int argc, VALUE *argv)
pid = rb_spawn_process(&earg, rb_exec_arg_prepare(&earg, argc, argv, TRUE), errmsg, sizeof(errmsg));
if (pid == -1) {
const char *prog = errmsg;
- if (!prog[0] && !(prog = earg.prog) && earg.argc) {
- prog = RSTRING_PTR(earg.argv[0]);
+ if (!prog[0]) {
+ rb_sys_fail_str(earg.progname);
}
rb_sys_fail(prog);
}