summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2019-10-18 02:15:53 +0900
committeraycabta <aycabta@gmail.com>2019-10-18 02:54:20 +0900
commit13b106a19c9c819fb0c887beb4787ab894cdba6c (patch)
treea2d1c988edfc7217dad1633a46c927cef2d5fe0f /lib
parent0162e7e6471b639dfeeded29943e9e27c9519826 (diff)
Ignore the input method key sequence from getwch() correctly
The function getwch() returns some key sequences which start from 0 or 0xE0 with a following key code. Alt+` that is on/off key for input methods gives 0 and 41 so Reline was always ignoring 0 and following keys but numeric keypad keys give 0 and following actual keys. This commit changes the behavior to be ignoring only the 0 and 41 sequence.
Diffstat (limited to 'lib')
-rw-r--r--lib/reline/windows.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/reline/windows.rb b/lib/reline/windows.rb
index 01e1a5a5ef..18bbbfabc0 100644
--- a/lib/reline/windows.rb
+++ b/lib/reline/windows.rb
@@ -9,6 +9,7 @@ class Reline::Windows
[224, 83] => :key_delete, # Del
[224, 71] => :ed_move_to_beg, # Home
[224, 79] => :ed_move_to_end, # End
+ [ 0, 41] => :ed_unassigned, # input method on/off
}.each_key(&:freeze).freeze
if defined? JRUBY_VERSION
@@ -118,8 +119,8 @@ class Reline::Windows
else
case input
when 0x00
- getwch
alt = false
+ @@output_buf.push(input)
input = getwch
@@output_buf.push(*input)
when 0xE0