* process.c(rb_spawn): fix SEGV at "p system('command line here')"
(may happen only in bccwin32) [ruby-dev:23380] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
51ab50efd3
commit
1f4513af45
@ -1,3 +1,8 @@
|
||||
Wed Apr 21 10:18:06 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
||||
|
||||
* process.c(rb_spawn): fix SEGV at "p system('command line here')"
|
||||
(may happen only in bccwin32) [ruby-dev:23380]
|
||||
|
||||
Mon Apr 19 20:58:44 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
||||
|
||||
* dir.c: Updated RDocs.
|
||||
|
@ -1547,7 +1547,7 @@ rb_spawn(argc, argv)
|
||||
earg.argv = argv;
|
||||
earg.prog = prog ? RSTRING(prog)->ptr : 0;
|
||||
status = rb_fork(&status, (int (*)_((void*)))rb_exec, &earg);
|
||||
if (prog) argv[0] = prog;
|
||||
if (prog && argc) argv[0] = prog;
|
||||
#elif defined HAVE_SPAWNV
|
||||
if (!argc) {
|
||||
status = proc_spawn(RSTRING(prog)->ptr);
|
||||
@ -1555,9 +1555,9 @@ rb_spawn(argc, argv)
|
||||
else {
|
||||
status = proc_spawn_n(argc, argv, prog);
|
||||
}
|
||||
if (prog) argv[0] = prog;
|
||||
if (prog && argc) argv[0] = prog;
|
||||
#else
|
||||
if (prog) argv[0] = prog;
|
||||
if (prog && argc) argv[0] = prog;
|
||||
prog = rb_ary_join(rb_ary_new4(argc, argv), rb_str_new2(" "));
|
||||
status = system(StringValuePtr(prog));
|
||||
# if defined(__human68k__) || defined(__DJGPP__)
|
||||
|
Loading…
x
Reference in New Issue
Block a user