From 377639053dfdf8037a1b3d3211071c6af1916e35 Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Tue, 25 Jul 2023 10:39:53 +0100 Subject: [ruby/reline] Avoid using CSI # S for scroll down (https://github.com/ruby/reline/pull/577) https://github.com/ruby/reline/commit/b67ee4e791 --- lib/reline/ansi.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb index 1570a99c55..d1a0e5b138 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -335,9 +335,12 @@ class Reline::ANSI @@output.write "\e[K" end + # This only works when the cursor is at the bottom of the scroll range + # For more details, see https://github.com/ruby/reline/pull/577#issuecomment-1646679623 def self.scroll_down(x) return if x.zero? - @@output.write "\e[#{x}S" + # We use `\n` instead of CSI + S because CSI + S would cause https://github.com/ruby/reline/issues/576 + @@output.write "\n" * x end def self.clear_screen -- cgit v1.2.3