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.
This commit is contained in:
aycabta 2019-10-18 02:15:53 +09:00
Родитель 0162e7e647
Коммит 13b106a19c
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -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