[前][次][番号順一覧][スレッド一覧]

ruby-changes:57870

From: aycabta <ko1@a...>
Date: Mon, 23 Sep 2019 17:28:09 +0900 (JST)
Subject: [ruby-changes:57870] 934507472c (master): Retrieve key-buffer that was supposed to lose

https://git.ruby-lang.org/ruby.git/commit/?id=934507472c

From 934507472c92ccada3f30be183fea5066427efda Mon Sep 17 00:00:00 2001
From: aycabta <aycabta@g...>
Date: Mon, 23 Sep 2019 17:26:38 +0900
Subject: Retrieve key-buffer that was supposed to lose


diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb
index 9d9f79f..b12dc2f 100644
--- a/lib/reline/ansi.rb
+++ b/lib/reline/ansi.rb
@@ -38,6 +38,15 @@ class Reline::ANSI https://github.com/ruby/ruby/blob/trunk/lib/reline/ansi.rb#L38
     @@buf.unshift(c)
   end
 
+  def self.retrieve_keybuffer
+      result = select([@@input], [], [], 0.1)
+      return if result.nil?
+      str = @@input.read_nonblock(1024)
+      str.bytes.each do |c|
+        @@buf.push(c)
+      end
+  end
+
   def self.get_screen_size
     @@input.winsize
   rescue Errno::ENOTTY
@@ -112,6 +121,7 @@ class Reline::ANSI https://github.com/ruby/ruby/blob/trunk/lib/reline/ansi.rb#L121
   end
 
   def self.prep
+    retrieve_keybuffer
     int_handle = Signal.trap('INT', 'IGNORE')
     otio = `stty -g`.chomp
     setting = ' -echo -icrnl cbreak'
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]