summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-12-16 10:19:52 +0900
committergit <svn-admin@ruby-lang.org>2021-12-19 11:19:50 +0900
commit7159af3491763aeeaf7accec426ff228d7dbfa3b (patch)
treef4bc196b53a92f21f37bfe6715c526eab2caa704
parentf3e30b26c509c6dd707bc07c4a73fbac2576e9e2 (diff)
[ruby/reline] Clear dialog in pasting
https://github.com/ruby/reline/commit/dabf5313e0
-rw-r--r--lib/reline/line_editor.rb1
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb11
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index 39e2b427bc..4fbed471c3 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -651,6 +651,7 @@ class Reline::LineEditor
private def render_each_dialog(dialog, cursor_column)
if @in_pasting
+ clear_each_dialog(dialog)
dialog.contents = nil
dialog.trap_key = nil
return
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index e369c977f4..0d1100f70c 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -1217,6 +1217,17 @@ begin
EOC
end
+ def test_clear_dialog_in_pasting
+ start_terminal(10, 40, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --autocomplete}, startup_message: 'Multiline REPL.')
+ write("S")
+ write("tring ")
+ close
+ assert_screen(<<~'EOC')
+ Multiline REPL.
+ prompt> String
+ EOC
+ end
+
def write_inputrc(content)
File.open(@inputrc_file, 'w') do |f|
f.write content