diff options
author | aycabta <aycabta@gmail.com> | 2019-10-18 02:15:53 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2019-10-18 02:54:20 +0900 |
commit | 13b106a19c9c819fb0c887beb4787ab894cdba6c (patch) | |
tree | a2d1c988edfc7217dad1633a46c927cef2d5fe0f /lib | |
parent | 0162e7e6471b639dfeeded29943e9e27c9519826 (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.rb | 3 |
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 |