engine: Shift on the okurigana asks for that reading, as SKK does
kaku offers the twenty-two readings of かく before 書く, because the SKK dictionary keys a verb by its stem and gives no frequency to rank the two lists by. SKK's own answer is the shift key: kaKu says where the okurigana starts, and that split now comes first — the reading's own candidates still follow it. Caps Lock sends no Shift, so it marks nothing, and a word typed without Shift is unchanged.
This commit is contained in:
@@ -1223,6 +1223,18 @@ engine_japanese_candidates(struct ct *t)
|
||||
if(CT_EQ_INT(t, 1, im.nkouho))
|
||||
checkstr(t, "two-kana okurigana", "大きい", &im.kouho[0]);
|
||||
CT_CHECK(t, keystroke(Kesc, 0, &com));
|
||||
/* Shift on the okurigana asks for that split alone, first. */
|
||||
sclear(&com);
|
||||
if(!typekeys(t, "ka", &com))
|
||||
goto cleanup;
|
||||
CT_CHECK(t, keystroke('K', Mshift, &com));
|
||||
CT_CHECK(t, keystroke('u', 0, &com));
|
||||
if(CT_EQ_INT(t, 3, im.nkouho)){
|
||||
checkstr(t, "marked okurigana first", "書く", &im.kouho[0]);
|
||||
checkstr(t, "then the second", "描く", &im.kouho[1]);
|
||||
checkstr(t, "then the reading's own", "確", &im.kouho[2]);
|
||||
}
|
||||
CT_CHECK(t, keystroke(Kesc, 0, &com));
|
||||
setdict(jp->dict, "いt", "言 行");
|
||||
setdict(jp->dict, "いっt", "言 行");
|
||||
if(!typekeys(t, "itta", &com))
|
||||
|
||||
Reference in New Issue
Block a user