summaryrefslogtreecommitdiff
path: root/lib/irb.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-12 09:13:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-12 09:13:45 +0000
commit707c5ffab5e2ae5105c7d9823411332b160f33df (patch)
tree07d86a1c94adae8d5b15592862bef54da3d3f253 /lib/irb.rb
parent4969fb6282b2cfdc30c57a5a47aec40ba26c5b00 (diff)
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.rb13
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