* internal.h: rb_exec_arg and related stuff moved from intern.h

* include/ruby/intern.h (rb_proc_exec_n): removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2012-06-05 13:29:54 +00:00
parent 60d5e14b92
commit a79bbdf6b5
3 changed files with 27 additions and 20 deletions

View File

@ -1,3 +1,9 @@
Tue Jun 5 22:28:46 2012 Tanaka Akira <akr@fsij.org>
* internal.h: rb_exec_arg and related stuff moved from intern.h
* include/ruby/intern.h (rb_proc_exec_n): removed.
Tue Jun 5 21:57:22 2012 Tanaka Akira <akr@fsij.org>
* process.c (rb_exec_arg_fixup): allocate a temporary buffer for

View File

@ -588,27 +588,7 @@ 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 {
const char *prog;
VALUE options;
VALUE redirect_fds;
VALUE progname;
int use_shell;
VALUE argv_str;
VALUE argv_buf;
VALUE envp_str;
VALUE envp_buf;
VALUE dup2_tmpbuf;
};
int rb_proc_exec_n(int, VALUE*, const char*);
int rb_proc_exec(const char*);
VALUE 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*);

View File

@ -159,6 +159,19 @@ st_index_t rb_hash_proc(st_index_t hash, VALUE proc);
/* process.c */
struct rb_exec_arg {
const char *prog;
VALUE options;
VALUE redirect_fds;
VALUE progname;
int use_shell;
VALUE argv_str;
VALUE argv_buf;
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.
@ -166,6 +179,14 @@ st_index_t rb_hash_proc(st_index_t hash, VALUE proc);
#define ARGVSTR2ARGC(argv_str) (RSTRING_LEN(argv_str) / sizeof(char *) - 2)
#define ARGVSTR2ARGV(argv_str) ((char **)RSTRING_PTR(argv_str) + 1)
VALUE 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);
/* rational.c */
VALUE rb_lcm(VALUE x, VALUE y);
VALUE rb_rational_reciprocal(VALUE x);