Ruby  2.0.0p353(2013-11-22revision43784)
Data Structures | Macros | Enumerations | Functions | Variables
ruby.c File Reference
#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "internal.h"
#include "eval_intern.h"
#include "dln.h"
#include <stdio.h>
#include <sys/types.h>
#include <ctype.h>
#include "ruby/util.h"
Include dependency graph for ruby.c:

Go to the source code of this file.

Data Structures

struct  cmdline_options
 
struct  load_file_arg
 

Macros

#define MAXPATHLEN   1024
 
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
 
#define DEFAULT_RUBYGEMS_ENABLED   "enabled"
 
#define DISABLE_BIT(bit)   (1U << disable_##bit)
 
#define DUMP_BIT(bit)   (1U << dump_##bit)
 
#define src_encoding_index   GET_VM()->src_encoding_index
 
#define forbid_setid(s)   forbid_setid((s), opt)
 
#define M(shortopt, longopt, desc)
 
#define SHOW(m)
 
#define rubylib_mangled_path   rb_str_new
 
#define RUBY_RELATIVE(path, len)   rubylib_mangled_path((path), (len))
 
#define PREFIX_PATH()   RUBY_RELATIVE(exec_prefix, sizeof(exec_prefix)-1)
 
#define NAME_MATCH_P(name, str, len)   ((len) < (int)sizeof(name) && strncmp((str), (name), (len)) == 0)
 
#define UNSET_WHEN(name, bit, str, len)
 
#define SET_WHEN(name, bit, str, len)
 
#define UNSET_WHEN_DISABLE(bit)   UNSET_WHEN(#bit, DISABLE_BIT(bit), str, len)
 
#define SET_WHEN_DISABLE(bit)   SET_WHEN(#bit, DISABLE_BIT(bit), str, len)
 
#define SET_WHEN_DUMP(bit)   SET_WHEN(#bit, DUMP_BIT(bit), str, len)
 
#define set_internal_encoding_once(opt, e, elen)   set_option_encoding_once("default_internal", &(opt)->intern.enc.name, (e), (elen))
 
#define set_external_encoding_once(opt, e, elen)   set_option_encoding_once("default_external", &(opt)->ext.enc.name, (e), (elen))
 
#define set_source_encoding_once(opt, e, elen)   set_option_encoding_once("source", &(opt)->src.enc.name, (e), (elen))
 
#define is_option_end(c, allow_hyphen)   (!(c) || ((allow_hyphen) && (c) == '-') || (c) == '=')
 
#define check_envopt(name, allow_envopt)
 
#define need_argument(name, s)
 
#define is_option_with_arg(name, allow_hyphen, allow_envopt)
 
#define set_encoding_part(type)
 
#define rb_progname   (GET_VM()->progname)
 
#define rb_define_readonly_boolean(name, val)   rb_define_virtual_variable((name), (val) ? true_value : false_value, 0)
 
#define PREPARE_PARSE_MAIN(expr)
 

Enumerations

enum  disable_flag_bits { disable_gems, disable_rubyopt, disable_flag_count }
 
enum  dump_flag_bits {
  dump_version, dump_version_v, dump_copyright, dump_usage,
  dump_help, dump_yydebug, dump_syntax, dump_parsetree,
  dump_parsetree_with_comment, dump_insns, dump_flag_count
}
 

Functions

char * getenv ()
 
static void init_ids (struct cmdline_options *)
 
static struct cmdline_optionscmdline_options_init (struct cmdline_options *opt)
 
static NODEload_file (VALUE, VALUE, int, struct cmdline_options *)
 
static void forbid_setid (const char *, struct cmdline_options *)
 
static void usage (const char *name, int help)
 
static void push_include (const char *path, VALUE(*filter)(VALUE))
 
void ruby_push_include (const char *path, VALUE(*filter)(VALUE))
 
static VALUE identical_path (VALUE path)
 
static VALUE locale_path (VALUE path)
 
void ruby_incpush (const char *path)
 
static VALUE expand_include_path (VALUE path)
 
void ruby_incpush_expand (const char *path)
 
void ruby_init_loadpath_safe (int safe_level)
 
void ruby_init_loadpath (void)
 
static void add_modules (VALUE *req_list, const char *mod)
 
static void require_libraries (VALUE *req_list)
 
static rb_env_ttoplevel_context (VALUE toplevel_binding)
 
static void process_sflag (int *sflag)
 
static long proc_options (long argc, char **argv, struct cmdline_options *opt, int envopt)
 
static void moreswitches (const char *s, struct cmdline_options *opt, int envopt)
 
static void enable_option (const char *str, int len, void *arg)
 
static void disable_option (const char *str, int len, void *arg)
 
static void dump_option (const char *str, int len, void *arg)
 
static void set_option_encoding_once (const char *type, VALUE *name, const char *e, long elen)
 
static void ruby_init_prelude (void)
 
static int opt_enc_index (VALUE enc_name)
 
static VALUE false_value (void)
 
static VALUE true_value (void)
 
static VALUE uscore_get (void)
 
static VALUE rb_f_sub (int argc, VALUE *argv)
 
static VALUE rb_f_gsub (int argc, VALUE *argv)
 
static VALUE rb_f_chop (void)
 
static VALUE rb_f_chomp (int argc, VALUE *argv)
 
void Init_enc (void)
 
static VALUE process_options (int argc, char **argv, struct cmdline_options *opt)
 
static VALUE load_file_internal (VALUE arg)
 
static VALUE restore_lineno (VALUE lineno)
 
void * rb_load_file (const char *fname)
 
static void set_arg0 (VALUE val, ID id)
 
void ruby_script (const char *name)
 Sets the current script name to this value. More...
 
void ruby_set_script_name (VALUE name)
 Sets the current script name to this value. More...
 
static void verbose_setter (VALUE val, ID id, void *data)
 
static VALUE opt_W_getter (ID id, void *data)
 
void ruby_prog_init (void)
 Defines built-in variables. More...
 
void ruby_set_argv (int argc, char **argv)
 
void * ruby_process_options (int argc, char **argv)
 
static void fill_standard_fds (void)
 
void ruby_sysinit (int *argc, char ***argv)
 Initializes the process for ruby(1). More...
 

Variables

struct {
   int   argc
 
   char **   argv
 
origarg
 
VALUE rb_argv0
 

Macro Definition Documentation

#define check_envopt (   name,
  allow_envopt 
)
Value:
(((allow_envopt) || !envopt) ? (void)0 : \
rb_raise(rb_eRuntimeError, "invalid switch in RUBYOPT: --" name))
void rb_raise(VALUE exc, const char *fmt,...)
Definition: error.c:1780
VALUE rb_eRuntimeError
Definition: error.c:510
const char * name
Definition: nkf.c:208
#define DEFAULT_RUBYGEMS_ENABLED   "enabled"

Definition at line 60 of file ruby.c.

Referenced by usage().

#define DISABLE_BIT (   bit)    (1U << disable_##bit)

Definition at line 63 of file ruby.c.

Referenced by cmdline_options_init(), and process_options().

#define DUMP_BIT (   bit)    (1U << dump_##bit)

Definition at line 70 of file ruby.c.

Referenced by proc_options(), and process_options().

#define forbid_setid (   s)    forbid_setid((s), opt)

Definition at line 127 of file ruby.c.

Referenced by load_file_internal(), proc_options(), and process_options().

#define is_option_end (   c,
  allow_hyphen 
)    (!(c) || ((allow_hyphen) && (c) == '-') || (c) == '=')
#define is_option_with_arg (   name,
  allow_hyphen,
  allow_envopt 
)
Value:
(strncmp((name), s, n = sizeof(name) - 1) == 0 && is_option_end(s[n], (allow_hyphen)) ? \
(check_envopt(name, (allow_envopt)), s += n, need_argument(name, s), 1) : 0)
#define check_envopt(name, allow_envopt)
#define is_option_end(c, allow_hyphen)
#define need_argument(name, s)
const char * name
Definition: nkf.c:208

Referenced by proc_options().

#define M (   shortopt,
  longopt,
  desc 
)
Value:
{ \
shortopt " " longopt " " desc, \
(unsigned short)sizeof(shortopt), \
(unsigned short)sizeof(longopt), \
}

Referenced by usage().

#define MAXPATHLEN   1024

Definition at line 46 of file ruby.c.

Referenced by process_options(), and ruby_init_loadpath_safe().

#define NAME_MATCH_P (   name,
  str,
  len 
)    ((len) < (int)sizeof(name) && strncmp((str), (name), (len)) == 0)

Definition at line 685 of file ruby.c.

Referenced by disable_option(), and enable_option().

#define need_argument (   name,
 
)
Value:
((*(s)++ ? !*(s) : (!--argc || !((s) = *++argv))) ? \
rb_raise(rb_eRuntimeError, "missing argument for --" name) \
: (void)0)
void rb_raise(VALUE exc, const char *fmt,...)
Definition: error.c:1780
VALUE rb_eRuntimeError
Definition: error.c:510
int argc
Definition: ruby.c:130
const char * name
Definition: nkf.c:208
char ** argv
Definition: ruby.c:131
#define numberof (   array)    (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 55 of file ruby.c.

Referenced by usage().

#define PREFIX_PATH ( )    RUBY_RELATIVE(exec_prefix, sizeof(exec_prefix)-1)

Referenced by ruby_init_loadpath_safe().

#define PREPARE_PARSE_MAIN (   expr)
Value:
do { \
rb_env_t *env = toplevel_context(toplevel_binding); \
th->parse_in_eval--; \
th->base_block = &env->block; \
expr; \
th->parse_in_eval++; \
th->base_block = 0; \
} while (0)
static rb_env_t * toplevel_context(VALUE toplevel_binding)
Definition: ruby.c:562
#define env

Referenced by process_options().

#define rb_define_readonly_boolean (   name,
  val 
)    rb_define_virtual_variable((name), (val) ? true_value : false_value, 0)

Definition at line 1205 of file ruby.c.

Referenced by process_options().

#define rb_progname   (GET_VM()->progname)
#define RUBY_RELATIVE (   path,
  len 
)    rubylib_mangled_path((path), (len))

Referenced by ruby_init_loadpath_safe().

#define rubylib_mangled_path   rb_str_new

Definition at line 250 of file ruby.c.

Referenced by push_include(), and ruby_init_loadpath_safe().

#define set_encoding_part (   type)
Value:
if (!(p = strchr(s, ':'))) { \
set_##type##_encoding_once(opt, s, 0); \
break; \
} \
else if (p > s) { \
set_##type##_encoding_once(opt, s, p-s); \
}
Win32OLEIDispatch * p
Definition: win32ole.c:786
int type
Definition: tcltklib.c:111
char * strchr(char *, char)

Referenced by proc_options().

#define set_external_encoding_once (   opt,
  e,
  elen 
)    set_option_encoding_once("default_external", &(opt)->ext.enc.name, (e), (elen))

Definition at line 761 of file ruby.c.

Referenced by proc_options().

#define set_internal_encoding_once (   opt,
  e,
  elen 
)    set_option_encoding_once("default_internal", &(opt)->intern.enc.name, (e), (elen))

Definition at line 759 of file ruby.c.

Referenced by proc_options().

#define set_source_encoding_once (   opt,
  e,
  elen 
)    set_option_encoding_once("source", &(opt)->src.enc.name, (e), (elen))

Definition at line 763 of file ruby.c.

Referenced by proc_options().

#define SET_WHEN (   name,
  bit,
  str,
  len 
)
Value:
if (NAME_MATCH_P((name), (str), (len))) { \
*(unsigned int *)arg |= (bit); \
return; \
}
#define NAME_MATCH_P(name, str, len)
Definition: ruby.c:685
const char * name
Definition: nkf.c:208

Definition at line 694 of file ruby.c.

#define SET_WHEN_DISABLE (   bit)    SET_WHEN(#bit, DISABLE_BIT(bit), str, len)

Referenced by disable_option().

#define SET_WHEN_DUMP (   bit)    SET_WHEN(#bit, DUMP_BIT(bit), str, len)

Referenced by dump_option().

#define SHOW (   m)
Value:
do { \
int wrap = help && (m).namelen + (m).secondlen - 2 > w; \
printf(" %.*s%-*.*s%-*s%s\n", (m).namelen-1, (m).str, \
(wrap ? 0 : w - (m).namelen + 1), \
(help ? (m).secondlen-1 : 0), (m).str + (m).namelen, \
(wrap ? w + 3 : 0), (wrap ? "\n" : ""), \
(m).str + (m).namelen + (m).secondlen); \
} while (0)

Referenced by usage().

#define src_encoding_index   GET_VM()->src_encoding_index

Definition at line 109 of file ruby.c.

Referenced by cmdline_options_init(), load_file_internal(), and process_options().

#define UNSET_WHEN (   name,
  bit,
  str,
  len 
)
Value:
if (NAME_MATCH_P((name), (str), (len))) { \
*(unsigned int *)arg &= ~(bit); \
return; \
}
#define NAME_MATCH_P(name, str, len)
Definition: ruby.c:685
const char * name
Definition: nkf.c:208

Definition at line 688 of file ruby.c.

#define UNSET_WHEN_DISABLE (   bit)    UNSET_WHEN(#bit, DISABLE_BIT(bit), str, len)

Referenced by enable_option().

Enumeration Type Documentation

Enumerator
disable_gems 
disable_rubyopt 
disable_flag_count 

Definition at line 64 of file ruby.c.

Enumerator
dump_version 
dump_version_v 
dump_copyright 
dump_usage 
dump_help 
dump_yydebug 
dump_syntax 
dump_parsetree 
dump_parsetree_with_comment 
dump_insns 
dump_flag_count 

Definition at line 71 of file ruby.c.

Function Documentation

static void add_modules ( VALUE req_list,
const char *  mod 
)
static

Definition at line 522 of file ruby.c.

References list, rb_ary_new(), rb_ary_push(), rb_str_new2(), and RBASIC.

Referenced by proc_options().

static struct cmdline_options* cmdline_options_init ( struct cmdline_options opt)
static
static void disable_option ( const char *  str,
int  len,
void *  arg 
)
static

Definition at line 714 of file ruby.c.

References NAME_MATCH_P, rb_warn(), and SET_WHEN_DISABLE.

Referenced by proc_options().

static void dump_option ( const char *  str,
int  len,
void *  arg 
)
static

Definition at line 727 of file ruby.c.

References rb_warn(), SET_WHEN_DUMP, usage(), version(), and yydebug.

Referenced by proc_options().

static void enable_option ( const char *  str,
int  len,
void *  arg 
)
static

Definition at line 701 of file ruby.c.

References NAME_MATCH_P, rb_warn(), and UNSET_WHEN_DISABLE.

Referenced by proc_options().

static VALUE expand_include_path ( VALUE  path)
static

Definition at line 342 of file ruby.c.

References Qnil, rb_file_expand_path(), and RSTRING_PTR.

Referenced by ruby_incpush_expand(), and ruby_init_loadpath_safe().

static VALUE false_value ( void  )
static

Definition at line 1194 of file ruby.c.

References Qfalse.

static void fill_standard_fds ( void  )
static

Definition at line 1919 of file ruby.c.

References dup2(), errno, fstat, and stat.

Referenced by ruby_sysinit().

static void forbid_setid ( const char *  s,
struct cmdline_options opt 
)
static
char* getenv ( )
static VALUE identical_path ( VALUE  path)
static

Definition at line 324 of file ruby.c.

Referenced by ruby_init_loadpath_safe().

void Init_enc ( void  )

Definition at line 7 of file dmyext.c.

Referenced by init_libraries_internal(), and process_options().

static void init_ids ( struct cmdline_options opt)
static
static NODE * load_file ( VALUE  parser,
VALUE  fname,
int  script,
struct cmdline_options opt 
)
static
static VALUE load_file_internal ( VALUE  arg)
static
static VALUE locale_path ( VALUE  path)
static

Definition at line 329 of file ruby.c.

References rb_enc_associate(), and rb_locale_encoding().

Referenced by ruby_incpush().

static void moreswitches ( const char *  s,
struct cmdline_options opt,
int  envopt 
)
static
static int opt_enc_index ( VALUE  enc_name)
static
static VALUE opt_W_getter ( ID  id,
void *  data 
)
static

Definition at line 1836 of file ruby.c.

References INT2FIX, Qfalse, Qnil, and Qtrue.

Referenced by ruby_prog_init().

static long proc_options ( long  argc,
char **  argv,
struct cmdline_options opt,
int  envopt 
)
static
static VALUE process_options ( int  argc,
char **  argv,
struct cmdline_options opt 
)
static

Definition at line 1300 of file ruby.c.

References cmdline_options::disable, DISABLE_BIT, dln_find_file_r(), cmdline_options::do_line, cmdline_options::do_loop, cmdline_options::do_print, cmdline_options::do_search, cmdline_options::do_split, cmdline_options::dump, DUMP_BIT, cmdline_options::e_script, cmdline_options::enc, cmdline_options::ext, fbuf, FL_TAINT, FL_UNSET, forbid_setid, GET_THREAD(), GET_VM, getenv(), i, Init_enc(), cmdline_options::intern, load_file(), MAXPATHLEN, moreswitches(), OBJ_TAINT, opt_enc_index(), origarg, PATH_ENV, PREPARE_PARSE_MAIN, proc_options(), process_sflag(), Qfalse, Qnil, Qtrue, Qundef, RARRAY_LEN, RARRAY_PTR, rb_argv, rb_cObject, rb_const_get(), rb_default_internal_encoding(), rb_define_global_function(), rb_define_module(), rb_define_readonly_boolean, rb_enc_associate(), rb_enc_find_index(), rb_enc_from_encoding(), rb_enc_from_index(), rb_enc_set_default_external(), rb_enc_set_default_internal(), rb_f_chomp(), rb_f_chop(), rb_f_gsub(), rb_f_sub(), rb_gc_set_params(), rb_intern, rb_io_flush(), rb_io_write(), rb_iseq_disasm(), rb_iseq_new_main(), rb_locale_encoding(), rb_obj_freeze(), rb_parser_append_print(), rb_parser_compile_string(), rb_parser_dump_tree(), rb_parser_new(), rb_parser_set_yydebug(), rb_parser_while_loop(), rb_progname, rb_require(), rb_set_safe_level(), rb_stdio_set_default_encoding(), rb_stdout, rb_str_dup(), rb_str_new_cstr(), rb_warning(), cmdline_options::req_list, require_libraries(), RSTRING_PTR, ruby_init_loadpath_safe(), ruby_init_prelude(), ruby_set_argv(), ruby_set_script_name(), ruby_show_copyright(), ruby_show_version(), cmdline_options::safe_level, cmdline_options::script, cmdline_options::script_name, cmdline_options::sflag, cmdline_options::src, src_encoding_index, usage(), cmdline_options::verbose, version(), cmdline_options::xflag, and yydebug.

Referenced by ruby_process_options().

static void process_sflag ( int *  sflag)
static
static void push_include ( const char *  path,
VALUE(*)(VALUE filter 
)
static

Definition at line 254 of file ruby.c.

References CharNext, GET_VM, p, PATH_SEP_CHAR, rb_ary_push(), and rubylib_mangled_path.

Referenced by ruby_push_include().

static VALUE rb_f_chomp ( int  argc,
VALUE argv 
)
static

Definition at line 1289 of file ruby.c.

References rb_funcall_passing_block(), rb_intern, rb_lastline_set(), and uscore_get().

Referenced by process_options().

static VALUE rb_f_chop ( void  )
static

Definition at line 1269 of file ruby.c.

References rb_funcall_passing_block(), rb_intern, rb_lastline_set(), and uscore_get().

Referenced by process_options().

static VALUE rb_f_gsub ( int  argc,
VALUE argv 
)
static

Definition at line 1251 of file ruby.c.

References rb_funcall_passing_block(), rb_intern, rb_lastline_set(), and uscore_get().

Referenced by process_options().

static VALUE rb_f_sub ( int  argc,
VALUE argv 
)
static

Definition at line 1232 of file ruby.c.

References rb_funcall_passing_block(), rb_intern, rb_lastline_set(), and uscore_get().

Referenced by process_options().

void* rb_load_file ( const char *  fname)

Definition at line 1751 of file ruby.c.

References cmdline_options_init(), load_file(), rb_parser_new(), and rb_str_new_cstr().

Referenced by rb_load_internal().

static void require_libraries ( VALUE req_list)
static
static VALUE restore_lineno ( VALUE  lineno)
static

Definition at line 1734 of file ruby.c.

References rb_gv_set().

Referenced by load_file().

void ruby_incpush_expand ( const char *  path)

Definition at line 353 of file ruby.c.

References expand_include_path(), and ruby_push_include().

Referenced by proc_options().

void ruby_init_loadpath_safe ( int  safe_level)
static void ruby_init_prelude ( void  )
static

Definition at line 1169 of file ruby.c.

References Init_prelude(), rb_cObject, rb_const_remove(), and rb_intern_const.

Referenced by process_options().

void ruby_push_include ( const char *  path,
VALUE(*)(VALUE filter 
)

Definition at line 316 of file ruby.c.

References push_include().

Referenced by ruby_incpush(), ruby_incpush_expand(), and ruby_init_loadpath_safe().

static void set_arg0 ( VALUE  val,
ID  id 
)
static
static void set_option_encoding_once ( const char *  type,
VALUE name,
const char *  e,
long  elen 
)
static
static rb_env_t* toplevel_context ( VALUE  toplevel_binding)
static

Definition at line 562 of file ruby.c.

References env, rb_binding_t::env, GetBindingPtr, and GetEnvPtr.

static VALUE true_value ( void  )
static

Definition at line 1200 of file ruby.c.

References Qtrue.

static void usage ( const char *  name,
int  help 
)
static

Definition at line 135 of file ruby.c.

References DEFAULT_RUBYGEMS_ENABLED, i, M, numberof, and SHOW.

Referenced by dump_option(), proc_options(), and process_options().

static VALUE uscore_get ( void  )
static
static void verbose_setter ( VALUE  val,
ID  id,
void *  data 
)
static

Definition at line 1829 of file ruby.c.

References Qtrue, RTEST, and val.

Referenced by ruby_prog_init().

Variable Documentation

int argc

Definition at line 130 of file ruby.c.

Referenced by alloc_invoke_arguments(), argf_getpartial(), ary_ensure_room_for_unshift(), call_cfunc_m1(), callback(), cbsubst_get_subst_arg(), check_funcall_missing(), compat_init_setproctitle(), delete_slaves(), dir_globs(), enum_zip(), enumerator_initialize(), env_values_at(), exit_initialize(), fdbm_values_at(), fgdbm_values_at(), fiber_switch(), flock_winnt(), free_invoke_arguments(), fsdbm_values_at(), function_call(), gzfile_wrap(), initialize(), invoke_block_from_c(), invoke_tcl_proc(), ip_invoke_core(), ip_invoke_with_position(), ip_ruby_cmd(), iseq_build_from_ary_body(), iseq_compile_each(), lazy_to_enum(), lazy_zip(), lib_merge_tklist(), lib_split_tklist_core(), m_core_hash_merge_ptr(), main(), moreswitches(), new_callinfo(), new_insn_body(), new_insn_core(), obj_to_enum(), open_key_args(), pipe_open(), pipe_open_s(), proc_options(), rb_add_method_cfunc(), rb_apply(), rb_ary_zip(), rb_block_call(), rb_check_argv(), rb_check_block_call(), rb_check_funcall_with_hook(), rb_cont_call(), rb_exec_fillarg(), rb_f_kill(), rb_f_p(), rb_f_p_internal(), rb_fiber_start(), rb_get_values_at(), rb_hash_s_create(), rb_hash_values_at(), rb_io_print(), rb_io_puts(), rb_io_s_foreach(), rb_io_s_popen(), rb_iseq_disasm(), rb_marshal_dump(), rb_mod_attr_accessor(), rb_mod_attr_reader(), rb_mod_attr_writer(), rb_mod_include(), rb_mod_modfunc(), rb_mod_prepend(), rb_mod_remove_method(), rb_mod_undef_method(), rb_obj_extend(), rb_proc_exec_n(), rb_reg_s_union(), rb_scan_args(), rb_spawn_process(), rb_str_count(), rb_str_delete_bang(), rb_str_encode(), rb_str_end_with(), rb_str_format(), rb_str_slice_bang(), rb_str_squeeze_bang(), rb_str_start_with(), rb_w32_asynchronize(), ruby_set_argv(), ruby_sysinit(), set_const_visibility(), set_method_visibility(), setup_args(), setup_method_cfunc_struct(), stub_sysinit(), tk_conv_args(), tk_funcall(), tracepoint_new_s(), vm_call0(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), vm_callee_setup_arg_complex(), vm_callee_setup_keyword_arg(), vm_yield_setup_args(), and vm_yield_setup_block_args().

char** argv
struct { ... } origarg
VALUE rb_argv0

Definition at line 1191 of file ruby.c.