diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-12 09:13:45 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-12 09:13:45 +0000 |
commit | 707c5ffab5e2ae5105c7d9823411332b160f33df (patch) | |
tree | 07d86a1c94adae8d5b15592862bef54da3d3f253 /lib/irb.rb | |
parent | 4969fb6282b2cfdc30c57a5a47aec40ba26c5b00 (diff) | |
download | ruby-707c5ffab5e2ae5105c7d9823411332b160f33df.tar.gz |
irb.rb: update `_`
* lib/irb.rb (IRB::Irb#eval_input): update `_` after exception.
[ruby-core:86989] [Bug #14749]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/irb.rb')
-rw-r--r-- | lib/irb.rb | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/irb.rb b/lib/irb.rb index 98bcac016d..a7ab9d7bce 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -439,7 +439,7 @@ module IRB # Evaluates input for this session. def eval_input - last_error = nil + exc = nil @scanner.set_prompt do |ltype, indent, continue, line_no| @@ -490,18 +490,17 @@ module IRB signal_status(:IN_EVAL) do begin line.untaint - @context.evaluate(line, line_no, exception: last_error) + @context.evaluate(line, line_no, exception: exc) output_value if @context.echo? - exc = nil rescue Interrupt => exc rescue SystemExit, SignalException raise rescue Exception => exc + else + exc = nil + next end - if exc - last_error = exc - handle_exception(exc) - end + handle_exception(exc) end end end |