From 0023e168656ed842821c80edbbca2b08594d7d5b Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 25 Apr 2008 06:35:48 +0000 Subject: * process.c (rb_spawn): rb_exec_initarg() returns new argc and argv in earg. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ process.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6840553966..e7c6b15a6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Apr 25 15:35:36 2008 Nobuyoshi Nakada + + * process.c (rb_spawn): rb_exec_initarg() returns new argc and argv in + earg. + Fri Apr 25 12:37:54 2008 Nobuyoshi Nakada * array.c (flatten): returns an instance of same class. diff --git a/process.c b/process.c index 666743d685..3ffd6d353e 100644 --- a/process.c +++ b/process.c @@ -2557,6 +2557,8 @@ rb_spawn(int argc, VALUE *argv) status = rb_fork(&status, rb_exec_atfork, &earg, earg.redirect_fds); if (prog && earg.argc) earg.argv[0] = prog; #elif defined HAVE_SPAWNV + argc = earg.argc; + argv = earg.argv; if (!argc) { status = proc_spawn(RSTRING_PTR(prog)); } @@ -2565,6 +2567,8 @@ rb_spawn(int argc, VALUE *argv) } if (prog && argc) argv[0] = prog; #else + argc = earg.argc; + argv = earg.argv; if (prog && argc) argv[0] = prog; if (argc) prog = rb_ary_join(rb_ary_new4(argc, argv), rb_str_new2(" ")); status = system(StringValuePtr(prog)); -- cgit v1.2.3