From 13edb951b71881b6ef89d1ab10e2e50eadd5d8da Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 7 Jun 2012 11:29:43 +0000 Subject: * include/ruby/intern.h: rb_exec_arg and related stuff moved back from internal.h git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/intern.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'include/ruby') diff --git a/include/ruby/intern.h b/include/ruby/intern.h index bc6f5da5fa..944c8f4131 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -588,7 +588,33 @@ VALUE rb_sym_all_symbols(void); /* process.c */ void rb_last_status_set(int status, rb_pid_t pid); VALUE rb_last_status_get(void); +struct rb_exec_arg { + int use_shell; + union { + struct { + VALUE shell_script; + } sh; + struct { + VALUE command_name; + VALUE command_abspath; /* full path string or nil */ + VALUE argv_str; + VALUE argv_buf; + } cmd; + } invoke; + VALUE options; + VALUE redirect_fds; + VALUE envp_str; + VALUE envp_buf; + VALUE dup2_tmpbuf; +}; int rb_proc_exec(const char*); +void rb_exec_arg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e); +int rb_exec_arg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val); +void rb_exec_arg_fixup(struct rb_exec_arg *e); +int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s); +int rb_run_exec_options_err(const struct rb_exec_arg *e, struct rb_exec_arg *s, char*, size_t); +int rb_exec(const struct rb_exec_arg*); +int rb_exec_err(const struct rb_exec_arg*, char*, size_t); rb_pid_t rb_fork(int*, int (*)(void*), void*, VALUE); rb_pid_t rb_fork_err(int*, int (*)(void*, char*, size_t), void*, VALUE, char*, size_t); VALUE rb_f_exec(int,VALUE*); -- cgit v1.2.3