diff options
author | aycabta <aycabta@gmail.com> | 2021-12-21 00:16:32 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2021-12-21 00:49:03 +0900 |
commit | 37aea9d7984d9bf884df121ab0b44168ae1ac0c5 (patch) | |
tree | 85853836e8de5b17ab69682d5fe098ff539ea649 /lib/reline.rb | |
parent | c3a3f65b4575898ae2ae457bc4f56d1e6bdb169f (diff) |
[ruby/reline] Finalize when exception occurred
https://github.com/ruby/reline/commit/1f8a3aee43
Co-authored-by: Alex Gittemeier <me@a.lexg.dev>
Diffstat (limited to 'lib/reline.rb')
-rw-r--r-- | lib/reline.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/reline.rb b/lib/reline.rb index 88f1df3995..a9fc49b416 100644 --- a/lib/reline.rb +++ b/lib/reline.rb @@ -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 |