private static void checkExecRedirectDefault(Ruby runtime, IRubyObject key, IRubyObject val, ExecArg eargp) { IRubyObject tmp; IRubyObject param; tmp = val; val = TypeConverter.ioCheckIO(runtime, tmp); if (!val.isNil()) { val = checkExecRedirectFd(runtime, val, false); param = val; eargp.fd_dup2 = checkExecRedirect1(runtime, eargp.fd_dup2, key, param); } throw runtime.newArgumentError("wrong exec redirect action"); }
private static void checkExecRedirectDefault(Ruby runtime, IRubyObject key, IRubyObject val, ExecArg eargp) { IRubyObject tmp; IRubyObject param; tmp = val; val = TypeConverter.ioCheckIO(runtime, tmp); if (!val.isNil()) { val = checkExecRedirectFd(runtime, val, false); param = val; eargp.fd_dup2 = checkExecRedirect1(runtime, eargp.fd_dup2, key, param); } throw runtime.newArgumentError("wrong exec redirect action"); }
static RubyArray checkExecRedirect1(Ruby runtime, RubyArray ary, IRubyObject key, IRubyObject param) { if (ary == null) { ary = runtime.newArray(); } if (!(key instanceof RubyArray)) { IRubyObject fd = checkExecRedirectFd(runtime, key, !param.isNil()); ary.push(runtime.newArray(fd, param)); } else { int i, n=0; for (i = 0 ; i < ((RubyArray)key).size(); i++) { IRubyObject v = ((RubyArray)key).eltOk(i); IRubyObject fd = checkExecRedirectFd(runtime, v, !param.isNil()); ary.push(runtime.newArray(fd, param)); n++; } } return ary; }
static RubyArray checkExecRedirect1(Ruby runtime, RubyArray ary, IRubyObject key, IRubyObject param) { if (ary == null) { ary = runtime.newArray(); } if (!(key instanceof RubyArray)) { IRubyObject fd = checkExecRedirectFd(runtime, key, !param.isNil()); ary.push(runtime.newArray(fd, param)); } else { int i, n=0; for (i = 0 ; i < ((RubyArray)key).size(); i++) { IRubyObject v = ((RubyArray)key).eltOk(i); IRubyObject fd = checkExecRedirectFd(runtime, v, !param.isNil()); ary.push(runtime.newArray(fd, param)); n++; } } return ary; }
val = checkExecRedirectFd(runtime, val, false); if (((RubyArray)val).size() == 2 && path instanceof RubySymbol && path.toString().equals("child")) { param = checkExecRedirectFd(runtime, ((RubyArray)val).eltOk(1), false); eargp.fd_dup2_child = checkExecRedirect1(runtime, eargp.fd_dup2_child, key, param); path = RubyFile.get_path(context, path); if (key instanceof RubyIO) key = checkExecRedirectFd(runtime, key, true); if (key instanceof RubyFixnum && (((RubyFixnum)key).getIntValue() == 1 || ((RubyFixnum)key).getIntValue() == 2)) flags = runtime.newFixnum(OpenFlags.O_WRONLY.intValue()|OpenFlags.O_CREAT.intValue()|OpenFlags.O_TRUNC.intValue());
val = checkExecRedirectFd(runtime, val, false); if (((RubyArray)val).size() == 2 && path instanceof RubySymbol && path.toString().equals("child")) { param = checkExecRedirectFd(runtime, ((RubyArray)val).eltOk(1), false); eargp.fd_dup2_child = checkExecRedirect1(runtime, eargp.fd_dup2_child, key, param); path = RubyFile.get_path(context, path); if (key instanceof RubyIO) key = checkExecRedirectFd(runtime, key, true); if (key instanceof RubyFixnum && (((RubyFixnum)key).getIntValue() == 1 || ((RubyFixnum)key).getIntValue() == 2)) flags = runtime.newFixnum(OpenFlags.O_WRONLY.intValue()|OpenFlags.O_CREAT.intValue()|OpenFlags.O_TRUNC.intValue());