summaryrefslogtreecommitdiffstats
path: root/ruby.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-03 04:55:35 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-03 04:55:35 +0000
commit22d105a4e26b01fcff0ce35a667c8e395cc09805 (patch)
tree73b38f7c4ca353aa285a5fa0935a142c7a73d16f /ruby.c
parentf7a64812e9aa7e38068f386ba1f66601a93b5554 (diff)
downloadruby-22d105a4e26b01fcff0ce35a667c8e395cc09805.tar.gz
ruby-22d105a4e26b01fcff0ce35a667c8e395cc09805.tar.xz
ruby-22d105a4e26b01fcff0ce35a667c8e395cc09805.zip
* eval.c (method_hash): new method. [ruby-talk:93968]
* eval.c (proc_eq): do not compare dyna_vars. * eval.c (proc_hash): new method. * eval.c (rb_yield_0): protect break/return from within orphan (or lambda) Proc object. * parse.y (yylex): should not allow symbol for invalid global variable (e.g. `:$-)`). [ruby-core:02518] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ruby.c b/ruby.c
index bf24defc0..995cd2f3a 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1048,6 +1048,16 @@ verbose_setter(val, id, variable)
ruby_verbose = RTEST(val) ? Qtrue : val;
}
+static VALUE
+opt_W_getter(val, id)
+ VALUE val;
+ ID id;
+{
+ if (ruby_verbose == Qnil) return INT2FIX(0);
+ if (ruby_verbose == Qfalse) return INT2FIX(1);
+ if (ruby_verbose == Qtrue) return INT2FIX(2);
+}
+
void
ruby_prog_init()
{
@@ -1057,6 +1067,7 @@ ruby_prog_init()
rb_define_hooked_variable("$VERBOSE", &ruby_verbose, 0, verbose_setter);
rb_define_hooked_variable("$-v", &ruby_verbose, 0, verbose_setter);
rb_define_hooked_variable("$-w", &ruby_verbose, 0, verbose_setter);
+ rb_define_virtual_variable("$-W", opt_W_getter, 0);
rb_define_variable("$DEBUG", &ruby_debug);
rb_define_variable("$-d", &ruby_debug);
rb_define_readonly_variable("$-p", &do_print);