summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/reline/ansi.rb2
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb11
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb
index f8e82c199d..d590d00ad1 100644
--- a/lib/reline/ansi.rb
+++ b/lib/reline/ansi.rb
@@ -91,6 +91,8 @@ class Reline::ANSI
rescue Errno::EIO
# Maybe the I/O has been closed.
nil
+ rescue Errno::ENOTTY
+ nil
end
@@in_bracketed_paste_mode = false
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index 2ae078f15f..d6c21675e0 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -775,6 +775,17 @@ begin
EOC
end
+ def test_with_newline
+ omit if Reline::IOGate.win?
+ cmd = %Q{ruby -e 'print(%Q{abc def \\e\\r})' | ruby -I#{@pwd}/lib -rreline -e 'p Reline.readline(%{> })'}
+ start_terminal(50, 50, ['bash', '-c', cmd])
+ close
+ assert_screen(<<~'EOC')
+ > abc def
+ "abc def "
+ EOC
+ end
+
private def write_inputrc(content)
File.open(@inputrc_file, 'w') do |f|
f.write content