summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshinao Muramatu <ysno@ac.auone-net.jp>2021-02-17 23:28:47 +0900
committeraycabta <aycabta@gmail.com>2021-02-21 06:43:41 +0900
commit38cefac7ce277d8ea41c600e67a2046da3715ac3 (patch)
tree7a13fed67d31b4a78c02c500c4c492cba414a2ca
parent7aa3bc84039a1b5d9ddfc491ca32753346163dd6 (diff)
[ruby/reline] We still need support new and legacy behavior.
Revert "Support for change in Windows-specific behavior at eol" This reverts commit cad4de6ee841b43f3f0e441626f9415c3eda0f82. https://github.com/ruby/reline/commit/646587fc2c
-rw-r--r--lib/reline/line_editor.rb22
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index 793cad7567..99877329af 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -725,13 +725,17 @@ class Reline::LineEditor
Reline::IOGate.move_cursor_column(0)
if line.nil?
if calculate_width(visual_lines[index - 1], true) == Reline::IOGate.get_screen_size.last
- # Reaches the end of line.
- #
- # When the cursor is at the end of the line and erases characters
- # after the cursor, some terminals delete the character at the
- # cursor position.
- move_cursor_down(1)
- Reline::IOGate.move_cursor_column(0)
+ # reaches the end of line
+ if Reline::IOGate.win?
+ # A newline is automatically inserted if a character is rendered at
+ # eol on command prompt.
+ else
+ # When the cursor is at the end of the line and erases characters
+ # after the cursor, some terminals delete the character at the
+ # cursor position.
+ move_cursor_down(1)
+ Reline::IOGate.move_cursor_column(0)
+ end
else
Reline::IOGate.erase_after_cursor
move_cursor_down(1)
@@ -740,6 +744,10 @@ class Reline::LineEditor
next
end
@output.write line
+ if Reline::IOGate.win? and calculate_width(line, true) == Reline::IOGate.get_screen_size.last
+ # A newline is automatically inserted if a character is rendered at eol on command prompt.
+ @rest_height -= 1 if @rest_height > 0
+ end
@output.flush
if @first_prompt
@first_prompt = false