diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/irb.rb | 5 | ||||
-rw-r--r-- | lib/irb/workspace.rb | 2 |
3 files changed, 13 insertions, 2 deletions
@@ -1,3 +1,11 @@ +Tue Mar 4 21:35:59 2008 Yukihiro Matsumoto <matz@ruby-lang.org> + + * lib/irb.rb (IRB::Irb::eval_input): SyntaxError should not be + considered as IRB bug. [ruby-dev:33991] + + * lib/irb/workspace.rb (IRB::WorkSpace::filter_backtrace): should + filter 'irb.rb' as well for context mode 2 and 3. + Tue Mar 4 19:10:43 2008 Yukihiro Matsumoto <matz@ruby-lang.org> * hash.c (rb_hash_aset): should not copy key string when diff --git a/lib/irb.rb b/lib/irb.rb index 1274a15e9f..d700d004a0 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -156,12 +156,13 @@ module IRB end if exc print exc.class, ": ", exc, "\n" - if exc.backtrace[0] =~ /irb(2)?(\/.*|-.*|\.rb)?:/ && exc.class.to_s !~ /^IRB/ + if exc.backtrace[0] =~ /irb(2)?(\/.*|-.*|\.rb)?:/ && exc.class.to_s !~ /^IRB/ && + !(SyntaxError === exc) irb_bug = true else irb_bug = false end - + messages = [] lasts = [] levels = 0 diff --git a/lib/irb/workspace.rb b/lib/irb/workspace.rb index c27f7052d1..7c95106c39 100644 --- a/lib/irb/workspace.rb +++ b/lib/irb/workspace.rb @@ -93,8 +93,10 @@ EOF end when 2 return nil if bt =~ /irb\/.*\.rb/ + return nil if bt =~ /irb\.rb/ when 3 return nil if bt =~ /irb\/.*\.rb/ + return nil if bt =~ /irb\.rb/ bt.sub!(/:\s*in `irb_binding'/, '') end bt |