diff --git a/lib/reline.rb b/lib/reline.rb index bcb3af58bf..3303fb4dd4 100644 --- a/lib/reline.rb +++ b/lib/reline.rb @@ -336,7 +336,7 @@ def readline(prompt = '', add_hist = false) @ambiguous_width = 2 if Reline::IOGate == Reline::GeneralIO or STDOUT.is_a?(File) return if ambiguous_width Reline::IOGate.move_cursor_column(0) - print "\u{25bd}" + output.write "\u{25bd}" @ambiguous_width = Reline::IOGate.cursor_pos.x Reline::IOGate.move_cursor_column(0) Reline::IOGate.erase_after_cursor diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb index 9959529425..3ef02d6e7a 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -124,12 +124,12 @@ def self.cursor_pos end def self.move_cursor_column(x) - print "\e[#{x + 1}G" + @@output.write "\e[#{x + 1}G" end def self.move_cursor_up(x) if x > 0 - print "\e[#{x}A" if x > 0 + @@output.write "\e[#{x}A" if x > 0 elsif x < 0 move_cursor_down(-x) end @@ -137,24 +137,24 @@ def self.move_cursor_up(x) def self.move_cursor_down(x) if x > 0 - print "\e[#{x}B" if x > 0 + @@output.write "\e[#{x}B" if x > 0 elsif x < 0 move_cursor_up(-x) end end def self.erase_after_cursor - print "\e[K" + @@output.write "\e[K" end def self.scroll_down(x) return if x.zero? - print "\e[#{x}S" + @@output.write "\e[#{x}S" end def self.clear_screen - print "\e[2J" - print "\e[1;1H" + @@output.write "\e[2J" + @@output.write "\e[1;1H" end @@old_winch_handler = nil diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index c68847d1d4..478d1d73f3 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -319,7 +319,7 @@ def rerender @rerender_all = true @menu_info.list.sort!.each do |item| Reline::IOGate.move_cursor_column(0) - @output.print item + @output.write item @output.flush scroll_down(1) end @@ -516,7 +516,7 @@ def rerender end next end - @output.print line + @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 diff --git a/lib/reline/windows.rb b/lib/reline/windows.rb index 22a009ea66..c229c8536f 100644 --- a/lib/reline/windows.rb +++ b/lib/reline/windows.rb @@ -250,8 +250,8 @@ def self.scroll_down(val) def self.clear_screen # TODO: Use FillConsoleOutputCharacter and FillConsoleOutputAttribute - print "\e[2J" - print "\e[1;1H" + write "\e[2J" + write "\e[1;1H" end def self.set_screen_size(rows, columns)