From 7fecc0048948d6ea348d387a8f0ada99b6572b32 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 17 Jun 2008 14:02:20 +0000 Subject: * ruby.c (opt_W_getter): made a hooked variable. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'ruby.c') diff --git a/ruby.c b/ruby.c index bf80c9527..d1f02e69f 100644 --- a/ruby.c +++ b/ruby.c @@ -1446,14 +1446,16 @@ verbose_setter(VALUE val, ID id, VALUE *variable) } static VALUE -opt_W_getter(VALUE val, ID id) +opt_W_getter(VALUE val, ID id, VALUE *variable) { - if (ruby_verbose == Qnil) + switch (*variable) { + case Qnil: return INT2FIX(0); - if (ruby_verbose == Qfalse) + case Qfalse: return INT2FIX(1); - if (ruby_verbose == Qtrue) + case Qtrue: return INT2FIX(2); + } return Qnil; /* not reached */ } @@ -1463,7 +1465,7 @@ ruby_prog_init(void) 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_hooked_variable("$-W", &ruby_verbose, opt_W_getter, 0); rb_define_variable("$DEBUG", &ruby_debug); rb_define_variable("$-d", &ruby_debug); -- cgit