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"`

Go to the source code of this file.

## Data Structures

struct | cmdline_options
struct | load_file_arg

## Macros

#define | MAXPATHLEN 1024
#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 | 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_copyright, dump_usage, 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_options * | cmdline_options_init (struct cmdline_options *opt)
static NODE * | load_file (VALUE, const char *, int, struct cmdline_options *)
static void | forbid_setid (const char *, struct cmdline_options *)
static void | usage (const char *name)
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 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)
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)
static void | verbose_setter (VALUE val, ID id, void *data)
static VALUE | opt_W_getter (ID id, void *data)
void | ruby_prog_init (void)
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)

## 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))

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

Definition at line 55 of file ruby.c.

Referenced by cmdline_options_init(), and process_options().

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

Definition at line 62 of file ruby.c.

Referenced by proc_options(), and process_options().

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

Definition at line 117 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)

Referenced by proc_options().

#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 612 of file ruby.c.

Referenced by disable_option(), and enable_option().

#define need_argument | ( |  | name,
|  |  | s
| ) |  |

Value:
((*(s)++ ? !*(s) : (!--argc || !((s) = *++argv))) ? \
rb_raise(rb_eRuntimeError, "missing argument for --" name) \
: (void)0)

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

Referenced by ruby_init_loadpath_safe().

#define PREPARE_PARSE_MAIN | ( |  | expr | ) |

Value:
do { \
th->parse_in_eval--; \
th->base_block = &env->block; \
expr; \
th->parse_in_eval++; \
th->base_block = 0; \
} while (0)

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 1131 of file ruby.c.

Referenced by process_options().

#define rb_progname (GET_VM()->progname)

Definition at line 1116 of file ruby.c.

Referenced by load_file_internal(), process_options(), ruby_process_options(), ruby_prog_init(), ruby_script(), and set_arg0().

#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 204 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); \
}

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 687 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 685 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 689 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; \
}

Definition at line 621 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 src_encoding_index GET_VM()->src_encoding_index

Definition at line 99 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; \
}

Definition at line 615 of file ruby.c.

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

Referenced by enable_option().

## Enumeration Type Documentation

enum disable_flag_bits

Enumerator
disable_gems |
disable_rubyopt |
disable_flag_count |

Definition at line 56 of file ruby.c.

enum dump_flag_bits

Enumerator
dump_version |
dump_copyright |
dump_usage |
dump_yydebug |
dump_syntax |
dump_parsetree |
dump_parsetree_with_comment |
dump_insns |
dump_flag_count |

Definition at line 63 of file ruby.c.

## Function Documentation

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

static

Definition at line 464 of file ruby.c.

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

Referenced by proc_options().

static struct cmdline_options* cmdline_options_init | ( | struct cmdline_options * | opt | ) |

static read

Definition at line 102 of file ruby.c.

References cmdline_options::disable, DISABLE_BIT, cmdline_options::enc, cmdline_options::ext, init_ids(), cmdline_options::intern, MEMZERO, cmdline_options::src, and src_encoding_index.

Referenced by rb_load_file(), and ruby_process_options().

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

static

Definition at line 641 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 654 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 628 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 296 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 1120 of file ruby.c.

References Qfalse.

static void fill_standard_fds | ( | void |  | ) |

static

Definition at line 1819 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

Definition at line 1721 of file ruby.c.

References rb_eSecurityError, rb_raise(), cmdline_options::safe_level, and cmdline_options::setids.

char* getenv | ( |  | ) |

static VALUE identical_path | ( | VALUE | path | ) |

static

Definition at line 278 of file ruby.c.

Referenced by ruby_init_loadpath_safe().

static void init_ids | ( | struct cmdline_options * | opt | ) |

static

Definition at line 1705 of file ruby.c.

References getegid(), geteuid(), getgid(), getuid(), cmdline_options::safe_level, and cmdline_options::setids.

Referenced by cmdline_options_init().

static NODE * load_file | ( | VALUE | parser,
|  | const char * | fname,
|  | int | script,
|  | struct cmdline_options * | opt
| ) |  |

static

Definition at line 1660 of file ruby.c.

References load_file_arg::fname, load_file_internal(), load_file_arg::opt, load_file_arg::parser, rb_ensure(), rb_gv_get(), restore_lineno(), and load_file_arg::script.

Referenced by process_options(), and rb_load_file().

static VALUE load_file_internal | ( | VALUE | arg | ) |

static

Definition at line 1496 of file ruby.c.

References CONST_ID, cmdline_options::enc, cmdline_options::ext, FALSE, load_file_arg::fname, forbid_setid, INT2FIX, cmdline_options::intern, moreswitches(), NIL_P, O_BINARY, load_file_arg::opt, opt_enc_index(), p, load_file_arg::parser, Qnil, rb_ascii8bit_encoding(), rb_define_global_const(), rb_eLoadError, rb_enc_associate(), rb_enc_from_encoding(), rb_enc_from_index(), rb_funcall(), rb_io_close(), rb_io_fdopen(), rb_io_getbyte(), rb_io_gets(), rb_io_ungetbyte(), rb_load_fail(), rb_locale_encoding(), rb_parser_compile_file(), rb_parser_compile_string(), rb_parser_encoding(), rb_parser_end_seen_p(), rb_progname, rb_raise(), rb_stdin, rb_str_new(), rb_str_new2(), rb_str_new_cstr(), rb_update_max_fd(), rb_usascii_encoding(), rb_vm_set_progname(), cmdline_options::req_list, require_libraries(), RSTRING_LEN, RSTRING_PTR, load_file_arg::script, cmdline_options::script_name, cmdline_options::src, src_encoding_index, STRCASECMP, strrchr(), strstr(), and cmdline_options::xflag.

Referenced by load_file().

static VALUE locale_path | ( | VALUE | path | ) |

static

Definition at line 283 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

Definition at line 566 of file ruby.c.

References argc, argv, i, ISSPACE, len, p, proc_options(), rb_str_cat(), rb_str_resize(), rb_str_tmp_new(), RSTRING_LEN, RSTRING_PTR, and strlen().

Referenced by load_file_internal(), and process_options().

static int opt_enc_index | ( | VALUE | enc_name | ) |

static

Definition at line 1102 of file ruby.c.

References i, rb_enc_dummy_p(), rb_enc_find_index(), rb_enc_from_index(), rb_eRuntimeError, rb_raise(), and RSTRING_PTR.

Referenced by load_file_internal(), and process_options().

static VALUE opt_W_getter | ( | ID | id,
|  | void * | data
| ) |  |

static

Definition at line 1739 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

Definition at line 693 of file ruby.c.

References add_modules(), arg, argc, cmdline_options::disable, disable_option(), 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, dump_option(), cmdline_options::e_script, enable_option(), cmdline_options::enc, enc_name(), cmdline_options::ext, forbid_setid, is_option_with_arg, ISPRINT, p, Qfalse, Qnil, Qtrue, rb_eRuntimeError, rb_fatal(), rb_fs, rb_output_rs, rb_raise(), rb_reg_new(), rb_rs, rb_str_cat2(), rb_str_new(), rb_str_new2(), cmdline_options::req_list, ruby_debug, ruby_each_words(), ruby_incpush_expand(), ruby_set_inplace_mode(), ruby_show_version(), ruby_verbose, cmdline_options::safe_level, scan_oct, cmdline_options::script, set_encoding_part, set_external_encoding_once, set_internal_encoding_once, set_source_encoding_once, cmdline_options::sflag, cmdline_options::src, strlen(), TRUE, usage(), v, cmdline_options::verbose, version(), cmdline_options::xflag, and yydebug.

Referenced by moreswitches(), and process_options().

static VALUE process_options | ( | int | argc,
|  | char ** | argv,
|  | struct cmdline_options * | opt
| ) |  |

static

Definition at line 1229 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, env, rb_binding_t::env, cmdline_options::ext, fbuf, FL_TAINT, FL_UNSET, forbid_setid, GET_THREAD, GET_VM, GetBindingPtr, getenv(), GetEnvPtr, i, 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, 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_realpath_internal(), rb_require(), rb_set_safe_level(), rb_stdio_set_default_encoding(), rb_stdout, rb_str_new_cstr(), rb_vm_set_progname(), cmdline_options::req_list, require_libraries(), RSTRING_PTR, ruby_init_loadpath_safe(), ruby_init_prelude(), ruby_set_argv(), 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

Definition at line 500 of file ruby.c.

References args, argv, FALSE, ISALNUM, p, Qtrue, RARRAY_LEN, RARRAY_PTR, rb_argv, rb_ary_shift(), rb_class_new_instance(), rb_eNameError, rb_exc_raise(), rb_gv_set(), rb_str_cat(), rb_str_cat2(), rb_str_new2(), strchr(), StringValuePtr, TRUE, and v.

Referenced by process_options().

static void push_include | ( | const char * | path,
|  | VALUE(*)(VALUE) | filter
| ) |  |

static

Definition at line 208 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 1219 of file ruby.c.

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

Referenced by process_options().

static VALUE rb_f_chop | ( | void |  | ) |

static

Definition at line 1199 of file ruby.c.

References rb_funcall3(), 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 1179 of file ruby.c.

References rb_funcall3(), 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 1158 of file ruby.c.

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

Referenced by process_options().

void* rb_load_file | ( | const char * | fname | ) |

Definition at line 1671 of file ruby.c.

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

Referenced by rb_load_internal().

static void require_libraries | ( | VALUE * | req_list | ) |

static

Definition at line 476 of file ruby.c.

References rb_thread_struct::base_block, CONST_ID, GET_THREAD, Init_ext(), list, rb_thread_struct::parse_in_eval, RARRAY_LEN, rb_ary_shift(), rb_funcall2(), and rb_vm_top_self().

Referenced by load_file_internal(), and process_options().

static VALUE restore_lineno | ( | VALUE | lineno | ) |

static

Definition at line 1654 of file ruby.c.

References rb_gv_set().

Referenced by load_file().

void ruby_incpush | ( | const char * | path | ) |

Definition at line 290 of file ruby.c.

References locale_path(), and ruby_push_include().

void ruby_incpush_expand | ( | const char * | path | ) |

Definition at line 307 of file ruby.c.

References expand_include_path(), and ruby_push_include().

Referenced by proc_options().

void ruby_init_loadpath | ( | void |  | ) |

Definition at line 333 of file ruby.c.

References ruby_init_loadpath_safe().

void ruby_init_loadpath_safe | ( | int | safe_level | ) |

Definition at line 339 of file ruby.c.

References dln_find_file_r(), expand_include_path(), fbuf, GET_VM, getenv(), identical_path(), MAXPATHLEN, p, PATH_ENV, PREFIX_PATH, Qnil, rb_ary_push(), rb_cObject, rb_const_set(), rb_intern_const, rb_ivar_set(), rb_obj_freeze(), rb_realpath_internal(), rb_str_freeze(), rb_str_new(), rb_str_new_cstr(), rb_str_resize(), RSTRING_PTR, ruby_initial_load_paths, ruby_push_include(), RUBY_RELATIVE, rubylib_mangled_path, STRCASECMP, strlcpy(), strlen(), and strrchr().

Referenced by process_options(), and ruby_init_loadpath().

static void ruby_init_prelude | ( | void |  | ) |

static

Definition at line 1095 of file ruby.c.

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

Referenced by process_options().

void* ruby_process_options | ( | int | argc,
|  | char ** | argv
| ) |  |

Definition at line 1798 of file ruby.c.

References cmdline_options_init(), process_options(), rb_gc_register_mark_object(), rb_progname, rb_str_new4(), and ruby_script().

Referenced by ruby_options().

void ruby_prog_init | ( | void |  | ) |

Definition at line 1754 of file ruby.c.

References opt_W_getter(), rb_argv, rb_define_global_const(), rb_define_hooked_variable(), rb_define_variable(), rb_gvar_readonly_setter(), rb_progname, ruby_debug, ruby_verbose, set_arg0(), and verbose_setter().

Referenced by ruby_init().

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

Definition at line 270 of file ruby.c.

References push_include().

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

void ruby_script | ( | const char * | name | ) |

Definition at line 1696 of file ruby.c.

References rb_external_str_new(), rb_progname, rb_vm_set_progname(), and strlen().

Referenced by ruby_process_options().

void ruby_set_argv | ( | int | argc,
|  | char ** | argv
| ) |  |

Definition at line 1777 of file ruby.c.

References arg, argc, i, OBJ_FREEZE, origarg, rb_argv, rb_ary_clear(), rb_ary_push(), and rb_external_str_new_cstr().

Referenced by process_options().

void ruby_sysinit | ( | int * | argc,
|  | char *** | argv
| ) |  |

Definition at line 1849 of file ruby.c.

References argc, argv, fill_standard_fds(), origarg, and rb_w32_sysinit().

static void set_arg0 | ( | VALUE | val,
|  | ID | id
| ) |  |

static

Definition at line 1679 of file ruby.c.

References i, origarg, rb_eRuntimeError, rb_external_str_new(), rb_obj_freeze(), rb_progname, rb_raise(), RSTRING_LEN, RSTRING_PTR, setproctitle(), and StringValue.

Referenced by ruby_prog_init().

static void set_option_encoding_once | ( | const char * | type,
|  | VALUE * | name,
|  | const char * | e,
|  | long | elen
| ) |  |

static

Definition at line 670 of file ruby.c.

References INT2FIX, rb_eRuntimeError, rb_funcall(), rb_intern, rb_raise(), rb_str_new(), RSTRING_PTR, and strlen().

static VALUE true_value | ( | void |  | ) |

static

Definition at line 1126 of file ruby.c.

References Qtrue.

static void usage | ( | const char * | name | ) |

static

Definition at line 125 of file ruby.c.

References NULL, and p.

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

static VALUE uscore_get | ( | void |  | ) |

static

Definition at line 1135 of file ruby.c.

References NIL_P, rb_eTypeError, rb_lastline_get(), rb_obj_classname(), rb_raise(), T_STRING, and TYPE.

Referenced by rb_f_chomp(), rb_f_chop(), rb_f_gsub(), and rb_f_sub().

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

static

Definition at line 1732 of file ruby.c.

References Qtrue, and RTEST.

Referenced by ruby_prog_init().

## Variable Documentation

int argc

Definition at line 120 of file ruby.c.

Referenced by alloc_invoke_arguments(), argf_getpartial(), bmcall(), call_cfunc(), callback(), caller_setup_args(), cbsubst_get_subst_arg(), check_funcall(), chfunc(), compat_init_setproctitle(), delete_slaves(), dir_globs(), enum_zip(), enumerator_block_call(), enumerator_initialize(), env_values_at(), establishShell(), exit_initialize(), fdbm_values_at(), fgdbm_values_at(), fiber_switch(), flock_winnt(), free_invoke_arguments(), fsdbm_values_at(), function_call(), gzfile_wrap(), initialize(), inspect_enumerator(), 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(), iseq_specialized_instruction(), lib_merge_tklist(), lib_split_tklist_core(), main(), moreswitches(), new_insn_body(), new_insn_core(), new_insn_send(), 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_cont_call(), rb_exec_fillarg(), rb_f_kill(), rb_f_p(), 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_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_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(), stub_sysinit(), tk_conv_args(), tk_funcall(), vm_call0(), vm_call_method(), vm_callee_setup_arg_complex(), vm_invoke_block(), vm_setup_method(), and vm_yield_setup_block_args().

char** argv

Definition at line 121 of file ruby.c.

Referenced by argf_getpartial(), asn1time_to_time(), BigMath_s_exp(), BigMath_s_log(), call_cfunc(), call_original_exit(), call_trace_proc(), check_funcall(), chfunc(), delete_slaves(), do_spawn(), enumerator_block_call(), establishShell(), fromDefaultEnc_toUTF8(), gzfile_wrap(), inspect_enumerator(), ip_invoke_core(), iseq_build_from_ary_body(), lib_split_tklist_core(), moreswitches(), new_insn_body(), new_insn_core(), open_key_args(), pipe_open(), pipe_open_s(), process_sflag(), rb_apply(), rb_block_call(), rb_check_deadlock(), rb_exec_fillarg(), rb_fiber_start(), rb_funcall(), rb_marshal_dump(), rb_name_error(), rb_proc_exec(), rb_spawn_process(), rb_str_encode(), rb_str_format(), rb_threadptr_signal_exit(), rb_threadptr_signal_raise(), rb_w32_aspawn_flags(), rb_w32_asynchronize(), rb_yield_values(), ruby_sysinit(), set_argv(), stub_sysinit(), tk_funcall(), vm_call_method(), vm_callee_setup_arg_complex(), and vm_method_missing().

struct { ... } origarg

Referenced by process_options(), ruby_set_argv(), ruby_sysinit(), and set_arg0().

VALUE rb_argv0

Definition at line 1117 of file ruby.c.