diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-04 01:44:27 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-04 01:44:27 +0000 |
commit | 859869e52285a36255c8bed6bc0bf5dd80ac0010 (patch) | |
tree | 388336840ebab30ad28797da4477fa77ef7b24ad /process.c | |
parent | 436d819bf2f51b7e01aab070f92e8864793c8d16 (diff) | |
download | ruby-859869e52285a36255c8bed6bc0bf5dd80ac0010.tar.gz |
* io.c (pipe_open): follow up changes in r35889.
* process.c (proc_spawn_n): now uses char ** instead of VALUE *.
* process.c (rb_spawn_process): prog is now VALUE of String, not char *.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 19 |
1 files changed, 5 insertions, 14 deletions
@@ -1253,30 +1253,21 @@ proc_spawn_v(char **argv, char *prog) #endif static rb_pid_t -proc_spawn_n(int argc, VALUE *argv, VALUE prog, VALUE options) +proc_spawn_n(int argc, char **argv, VALUE prog, VALUE options) { - char **args; - int i; - VALUE v; rb_pid_t pid = -1; - args = ALLOC_ARGV(argc + 1, v); - for (i = 0; i < argc; i++) { - args[i] = RSTRING_PTR(argv[i]); - } - args[i] = (char*) 0; - if (args[0]) { + if (argv[0]) { #if defined(_WIN32) DWORD flags = 0; if (RTEST(rb_ary_entry(options, EXEC_OPTION_NEW_PGROUP))) { flags = CREATE_NEW_PROCESS_GROUP; } - pid = rb_w32_aspawn_flags(P_NOWAIT, prog ? RSTRING_PTR(prog) : 0, args, flags); + pid = rb_w32_aspawn_flags(P_NOWAIT, prog ? RSTRING_PTR(prog) : 0, argv, flags); #else - pid = proc_spawn_v(args, prog ? RSTRING_PTR(prog) : 0); + pid = proc_spawn_v(argv, prog ? RSTRING_PTR(prog) : 0); #endif } - ALLOCV_END(v); return pid; } @@ -3096,7 +3087,7 @@ rb_spawn_process(struct rb_exec_arg *earg, VALUE prog, char *errmsg, size_t errm if (prog && !earg->use_shell) { char **argv = (char **)RSTRING_PTR(earg->argv_str); - argv[0] = prog; + argv[0] = RSTRING_PTR(prog); } # if defined HAVE_SPAWNV if (earg->use_shell) { |