diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-20 11:46:50 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-20 11:46:50 +0000 |
commit | b60713de73dd3de6c610becb07ec30683d98af6b (patch) | |
tree | 9d3c097a7a158d9e44ea8bffdf69dd3b7461d7b6 /internal.h | |
parent | 826f98e688c5608dcb5aeb749d0511cf2724c3a3 (diff) | |
download | ruby-b60713de73dd3de6c610becb07ec30683d98af6b.tar.gz |
* internal.h (struct rb_execarg) moved and renamed from
struct rb_exec_arg in intern.h.
* include/ruby/intern.h (struct rb_exec_arg): refer Data object which
contains struct rb_execarg.
* process.c: use struct rb_execarg instead of struct rb_exec_arg
except functions declared in intern.h.
(rb_exec_arg_addopt): extract a pointer to struct rb_execarg from
struct rb_exec_arg.
(rb_exec_arg_init): ditto.
(rb_exec_arg_fixup): ditto.
(rb_run_exec_options_err): ditto.
(rb_run_exec_options): ditto.
(rb_exec_err): ditto.
(rb_exec): ditto.
* io.c: use struct rb_execarg instead of struct rb_exec_arg.
* ext/pty/pty.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/internal.h b/internal.h index 50e3df35b3..e9a0ba1ed8 100644 --- a/internal.h +++ b/internal.h @@ -159,6 +159,26 @@ st_index_t rb_hash_proc(st_index_t hash, VALUE proc); /* process.c */ +struct rb_execarg { + 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; +}; + /* argv_str contains extra two elements. * The beginning one is for /bin/sh used by exec_with_sh. * The last one for terminating NULL used by execve. @@ -264,14 +284,14 @@ VALUE rb_thread_call_without_gvl( void rb_maygvl_fd_fix_cloexec(int fd); /* process.c */ -int rb_exec_async_signal_safe(const struct rb_exec_arg *e, char *errmsg, size_t errmsg_buflen); +int rb_exec_async_signal_safe(const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen); rb_pid_t rb_fork_async_signal_safe(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALUE fds, char *errmsg, size_t errmsg_buflen); VALUE rb_execarg_new(int argc, VALUE *argv, int accept_shell); -struct rb_exec_arg *rb_execarg_get(VALUE execarg_obj); /* dangerous. needs GC guard. */ -VALUE rb_execarg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e); -int rb_execarg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val); -void rb_execarg_fixup(struct rb_exec_arg *e); -int rb_execarg_run_options(const struct rb_exec_arg *e, struct rb_exec_arg *s, char* errmsg, size_t errmsg_buflen); +struct rb_execarg *rb_execarg_get(VALUE execarg_obj); /* dangerous. needs GC guard. */ +VALUE rb_execarg_init(int argc, VALUE *argv, int accept_shell, struct rb_execarg *e); +int rb_execarg_addopt(struct rb_execarg *e, VALUE key, VALUE val); +void rb_execarg_fixup(struct rb_execarg *e); +int rb_execarg_run_options(const struct rb_execarg *e, struct rb_execarg *s, char* errmsg, size_t errmsg_buflen); #if defined __GNUC__ && __GNUC__ >= 4 #pragma GCC visibility pop |