summaryrefslogtreecommitdiff
path: root/lib/reline.rb
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-12-21 00:16:32 +0900
committergit <svn-admin@ruby-lang.org>2021-12-21 00:49:03 +0900
commit37aea9d7984d9bf884df121ab0b44168ae1ac0c5 (patch)
tree85853836e8de5b17ab69682d5fe098ff539ea649 /lib/reline.rb
parentc3a3f65b4575898ae2ae457bc4f56d1e6bdb169f (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.rb7
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