diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/tracer.rb | 23 |
2 files changed, 15 insertions, 13 deletions
@@ -1,3 +1,8 @@ +Sat Feb 18 00:22:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * lib/tracer.rb: merged a minor clarification patch from Daniel + Berger <Daniel.Berger at qwest.com>. [ruby-core:07376] + Fri Feb 17 11:18:42 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> * util.c (ruby_strtod): Float("1e") should fail. [ruby-core:7330] diff --git a/lib/tracer.rb b/lib/tracer.rb index 3ccf1b5017..893a9d5827 100644 --- a/lib/tracer.rb +++ b/lib/tracer.rb @@ -24,8 +24,6 @@ class Tracer attr :stdout, true end - MY_FILE_NAME = caller(0)[0].scan(/^(.*):[0-9]+$/)[0][0] - EVENT_SYMBOL = { "line" => "-", "call" => ">", @@ -97,6 +95,7 @@ class Tracer SCRIPT_LINES__[file] = list = [] end end + if l = list[line - 1] l else @@ -113,7 +112,7 @@ class Tracer end def trace_func(event, file, line, id, binding, klass, *) - return if file == MY_FILE_NAME + return if file == __FILE__ for p in @filters return unless p.call event, file, line, id, binding, klass @@ -156,15 +155,13 @@ end SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__ -if caller(0).size == 1 - if $0 == Tracer::MY_FILE_NAME - # direct call +if $0 == __FILE__ + # direct call - $0 = ARGV[0] - ARGV.shift - Tracer.on - require $0 - else - Tracer.on - end + $0 = ARGV[0] + ARGV.shift + Tracer.on + require $0 +else + Tracer.on end |