refactor: remove empty language maps
This commit is contained in:
15
strans.c
15
strans.c
@@ -18,17 +18,11 @@ struct Search
|
||||
};
|
||||
static Search search;
|
||||
|
||||
static void
|
||||
backmap(Im *im)
|
||||
{
|
||||
spopr(&im->pre);
|
||||
}
|
||||
|
||||
Lang langs[] = {
|
||||
{LangEN, "english", nil, transmap, backmap, dictqmap, nil, nil},
|
||||
{LangEN, nil, nil, nil, nil, nil, nil, nil},
|
||||
{LangJP, "hira", "kanji", transmap, backjp, dictqjp, nil, nil},
|
||||
{LangJPK, "kata", nil, transmap, backjp, dictqjp, nil, nil},
|
||||
{LangKO, "hangul", nil, transko, backko, dictqmap, nil, nil},
|
||||
{LangKO, nil, nil, transko, backko, nil, nil, nil},
|
||||
{LangEMOJI, nil, "emoji", nil, nil, nil, nil, nil},
|
||||
{LangVI, "telex", nil, transvi, backvi, dictqmap, nil, nil},
|
||||
};
|
||||
@@ -658,7 +652,8 @@ keystroke(u32int ks, u32int mod, Str *com)
|
||||
reset();
|
||||
return 1;
|
||||
}
|
||||
im.l->dictq(&im);
|
||||
if(im.l->dictq != nil)
|
||||
im.l->dictq(&im);
|
||||
return 1;
|
||||
}
|
||||
if(ks == Kesc){
|
||||
@@ -706,6 +701,8 @@ keystroke(u32int ks, u32int mod, Str *com)
|
||||
reset();
|
||||
return 1;
|
||||
}
|
||||
if(im.l->trans == nil)
|
||||
return 0;
|
||||
if(im.l->lang == LangKO)
|
||||
ks = kokey(ks, mod);
|
||||
n = dotrans(ks, com);
|
||||
|
||||
@@ -246,6 +246,38 @@ engine_korean_modifiers_and_backspace(struct ct *t)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
engine_direct_language_modes(struct ct *t)
|
||||
{
|
||||
Str com;
|
||||
|
||||
init();
|
||||
sclear(&com);
|
||||
CT_EQ_INT(t, LangEN, im.l->lang);
|
||||
CT_EQ_PTR(t, nil, im.l->mapname);
|
||||
CT_EQ_PTR(t, nil, im.l->map);
|
||||
CT_EQ_PTR(t, nil, im.l->trans);
|
||||
CT_CHECK(t, !keystroke('a', 0, &com));
|
||||
CT_CHECK(t, !keystroke('Z', Mshift, &com));
|
||||
checkstr(t, "English direct commit", "", &com);
|
||||
CT_EQ_INT(t, 0, im.pre.n);
|
||||
CT_EQ_INT(t, 0, im.raw.n);
|
||||
CT_CHECK(t, keystroke('e', Mctrl, &com));
|
||||
CT_CHECK(t, search.on);
|
||||
CT_EQ_INT(t, LangEN, im.l->lang);
|
||||
CT_CHECK(t, keystroke(Kesc, 0, &com));
|
||||
CT_CHECK(t, !search.on);
|
||||
CT_CHECK(t, keystroke('s', Mctrl, &com));
|
||||
CT_EQ_INT(t, LangKO, im.l->lang);
|
||||
CT_EQ_PTR(t, nil, im.l->mapname);
|
||||
CT_EQ_PTR(t, nil, im.l->map);
|
||||
CT_EQ_PTR(t, nil, im.l->dictq);
|
||||
CT_CHECK(t, keystroke('r', 0, &com));
|
||||
checkstr(t, "Korean without map", "ㄱ", &im.pre);
|
||||
CT_CHECK(t, keystroke(Kback, 0, &com));
|
||||
CT_EQ_INT(t, 0, im.pre.n);
|
||||
}
|
||||
|
||||
void
|
||||
engine_language_switch_state(struct ct *t)
|
||||
{
|
||||
|
||||
@@ -36,6 +36,7 @@ void engine_commit_contract(struct ct*);
|
||||
void engine_language_switch_state(struct ct*);
|
||||
void engine_telex_history_bound(struct ct*);
|
||||
void engine_korean_modifiers_and_backspace(struct ct*);
|
||||
void engine_direct_language_modes(struct ct*);
|
||||
void engine_japanese_readings(struct ct*);
|
||||
void engine_japanese_candidates(struct ct*);
|
||||
void engine_japanese_backspace_and_boundaries(struct ct*);
|
||||
|
||||
@@ -85,6 +85,7 @@ static const struct ct_test tests[] = {
|
||||
{ "engine/language-switch-state", engine_language_switch_state },
|
||||
{ "engine/telex-history-bound", engine_telex_history_bound },
|
||||
{ "engine/korean-modifiers-backspace", engine_korean_modifiers_and_backspace },
|
||||
{ "engine/direct-language-modes", engine_direct_language_modes },
|
||||
{ "engine/japanese-readings", engine_japanese_readings },
|
||||
{ "engine/japanese-candidates", engine_japanese_candidates },
|
||||
{ "engine/japanese-backspace-boundaries", engine_japanese_backspace_and_boundaries },
|
||||
|
||||
Reference in New Issue
Block a user