Compare commits

..

5 Commits

Author SHA1 Message Date
129b842487 optimize rendering 2026-02-09 09:10:51 +09:00
b41cf78862 add bench 2026-02-09 09:10:51 +09:00
2cfee1d36c fix kouho selection. 2026-02-09 09:10:51 +09:00
b35b81ad3d vietnamese telex input 2026-02-09 09:10:44 +09:00
d06cef6575 add lang dispatch, korean hangul input 2026-02-08 16:52:08 +09:00

6
ko.c
View File

@ -206,12 +206,14 @@ transko(Im *im, Rune c)
sputr(&e.s, c); sputr(&e.s, c);
return e; return e;
} }
e.eat = 1; e.eat = 1;
last = slastr(&im->pre); last = slastr(&im->pre);
if(last == 0){ if(last == 0){
sputr(&e.next, jm); sputr(&e.next, jm);
return e; return e;
} }
if(!issyl(last)){ if(!issyl(last)){
ci = Choidx(last); ci = Choidx(last);
ji = Jungidx(jm); ji = Jungidx(jm);
@ -232,7 +234,9 @@ transko(Im *im, Rune c)
sputr(&e.next, jm); sputr(&e.next, jm);
return e; return e;
} }
decompose(last, &ci, &ji, &joi); decompose(last, &ci, &ji, &joi);
if(joi == 0){ if(joi == 0){
ni = Jongidx(jm); ni = Jongidx(jm);
if(ni > 0){ if(ni > 0){
@ -251,6 +255,7 @@ transko(Im *im, Rune c)
} }
} }
} }
if(joi > 0){ if(joi > 0){
comb = combine(cjong, nelem(cjong), jong[joi], jm); comb = combine(cjong, nelem(cjong), jong[joi], jm);
if(comb){ if(comb){
@ -281,6 +286,7 @@ transko(Im *im, Rune c)
} }
} }
} }
e.s = im->pre; e.s = im->pre;
sputr(&e.next, jm); sputr(&e.next, jm);
return e; return e;