зеркало из https://github.com/github/ruby.git
[ruby/reline] Use IO#write instead of IO#print
IO#print always adds a string of $\ automatically. https://github.com/ruby/reline/commit/a93119c847
This commit is contained in:
Родитель
78282d4655
Коммит
2efb38e766
|
@ -336,7 +336,7 @@ module Reline
|
|||
@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
|
||||
|
|
|
@ -124,12 +124,12 @@ class Reline::ANSI
|
|||
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 @@ class Reline::ANSI
|
|||
|
||||
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
|
||||
|
|
|
@ -319,7 +319,7 @@ class Reline::LineEditor
|
|||
@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 @@ class Reline::LineEditor
|
|||
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
|
||||
|
|
|
@ -250,8 +250,8 @@ class Reline::Windows
|
|||
|
||||
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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче