sdadonkey / rime-english

Rime English:在西文模式下實現英文單詞輸入
https://github.com/sdadonkey/rime-english
78 stars 13 forks source link

local keychar = string.format("%c",keycode) 修正建議 #3

Open shewer opened 4 years ago

shewer commented 4 years ago

發現這有問題 方向鍵的keycode 會轉出 大寫 ascii https://github.com/rime/librime/blob/master/src/rime/gear/ascii_composer.cc:121: if (!key_event.release() && ch >= 0x20 && ch < 0x80) { ctx->PushInput(ch); return kAccepted;

keychar= (keycode >=0x20 and keycode <0x80 and string.char(keycode) ) or ""

sdadonkey commented 4 years ago

是,它傳回的keycode是0x0-0xffff的,超出0xff的經過string.format("%c",keycode)會返回不正確的ascii字符。你的方法固然可以,但我的程序也沒有問題,因爲我是根據keycode範圍而不是keychar去做相應的操作。