From 05df7e0d4a09eaacb91388f32ef557d1d5fbe082 Mon Sep 17 00:00:00 2001 From: aycabta Date: Thu, 14 Jan 2021 08:56:58 +0900 Subject: [PATCH] [ruby/reline] Support for change in Windows-specific behavior at eol The behavior of automatically moving the cursor to the next line when displaying a char at the eol on Windows suddenly disappeared. https://github.com/ruby/reline/commit/cad4de6ee8 --- lib/reline/line_editor.rb | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 3a2e6c8f2c5b9d..92ea42fffb6076 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -676,17 +676,13 @@ def just_move_cursor 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 - 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 + # 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) else Reline::IOGate.erase_after_cursor move_cursor_down(1) @@ -695,10 +691,6 @@ def just_move_cursor 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