1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/reline] Finalize when exception occurred

https://github.com/ruby/reline/commit/1f8a3aee43

Co-authored-by: Alex Gittemeier <me@a.lexg.dev>
This commit is contained in:
aycabta 2021-12-21 00:16:32 +09:00 committed by git
parent c3a3f65b45
commit 37aea9d798
2 changed files with 7 additions and 2 deletions

View file

@ -290,7 +290,6 @@ module Reline
may_req_ambiguous_char_width
line_editor.reset(prompt, encoding: Reline::IOGate.encoding)
line_editor.set_signal_handlers
if multiline
line_editor.multiline_on
if block_given?
@ -320,6 +319,7 @@ module Reline
line_editor.rerender
begin
line_editor.set_signal_handlers
prev_pasting_state = false
loop do
prev_pasting_state = Reline::IOGate.in_pasting?
@ -348,6 +348,11 @@ module Reline
line_editor.finalize
Reline::IOGate.deprep(otio)
raise e
rescue Exception
# Including Interrupt
line_editor.finalize
Reline::IOGate.deprep(otio)
raise
end
line_editor.finalize

View file

@ -235,7 +235,7 @@ class Reline::LineEditor
when 'EXIT'
exit
else
@old_trap.call
@old_trap.call if @old_trap.respond_to?(:call)
end
}
begin