remove jp.c
This commit is contained in:
parent
e5ce5fd61e
commit
436a49c3ca
1
dat.h
1
dat.h
@ -79,7 +79,6 @@ struct Lang
|
|||||||
char *dictname;
|
char *dictname;
|
||||||
Hmap *map;
|
Hmap *map;
|
||||||
Hmap *dict;
|
Hmap *dict;
|
||||||
Emit (*trans)(Im*, Rune);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Im
|
struct Im
|
||||||
|
|||||||
1
fn.h
1
fn.h
@ -23,7 +23,6 @@ void dictthread(void*);
|
|||||||
void drawthread(void*);
|
void drawthread(void*);
|
||||||
void imthread(void*);
|
void imthread(void*);
|
||||||
Emit trans(Im*, Rune);
|
Emit trans(Im*, Rune);
|
||||||
Emit jptrans(Im*, Rune);
|
|
||||||
|
|
||||||
void srvthread(void*);
|
void srvthread(void*);
|
||||||
|
|
||||||
|
|||||||
80
jp.c
80
jp.c
@ -1,80 +0,0 @@
|
|||||||
#include "dat.h"
|
|
||||||
#include "fn.h"
|
|
||||||
|
|
||||||
Emit
|
|
||||||
jptrans(Im *im, Rune c)
|
|
||||||
{
|
|
||||||
Emit e;
|
|
||||||
Str key, kana;
|
|
||||||
Hmap *h;
|
|
||||||
Rune last;
|
|
||||||
int hira;
|
|
||||||
|
|
||||||
memset(&e, 0, sizeof(e));
|
|
||||||
h = im->l->map;
|
|
||||||
hira = (im->l->lang == LangJP);
|
|
||||||
key = im->pre;
|
|
||||||
sputr(&key, c);
|
|
||||||
if(hmapget(h, &key)){
|
|
||||||
e.eat = 1;
|
|
||||||
e.next = key;
|
|
||||||
mapget(h, &key, &e.dict);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
last = slastr(&im->pre);
|
|
||||||
if(last == 0)
|
|
||||||
goto flush;
|
|
||||||
key = im->pre;
|
|
||||||
key.n--;
|
|
||||||
if(mapget(h, &key, &kana)){
|
|
||||||
sclear(&key);
|
|
||||||
sputr(&key, last);
|
|
||||||
sputr(&key, c);
|
|
||||||
if(hmapget(h, &key)){
|
|
||||||
e.eat = 1;
|
|
||||||
e.s = kana;
|
|
||||||
sputr(&e.next, last);
|
|
||||||
sputr(&e.next, c);
|
|
||||||
mapget(h, &e.next, &e.dict);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(c == 'n' && last == 'n'){
|
|
||||||
key = im->pre;
|
|
||||||
key.n--;
|
|
||||||
if(mapget(h, &key, &kana)){
|
|
||||||
e.eat = 1;
|
|
||||||
e.s = kana;
|
|
||||||
sputr(&e.s, hira ? 0x3093 : 0x30F3);
|
|
||||||
sputr(&e.next, c);
|
|
||||||
mapget(h, &e.next, &e.dict);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(c == last && strchr("kgsztdbpmjfchryw", c)){
|
|
||||||
key = im->pre;
|
|
||||||
key.n--;
|
|
||||||
if(mapget(h, &key, &kana)){
|
|
||||||
e.eat = 1;
|
|
||||||
e.s = kana;
|
|
||||||
sputr(&e.s, hira ? 0x3063 : 0x30C3);
|
|
||||||
sputr(&e.next, c);
|
|
||||||
mapget(h, &e.next, &e.dict);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
flush:
|
|
||||||
mapget(h, &im->pre, &e.s);
|
|
||||||
sclear(&key);
|
|
||||||
sputr(&key, c);
|
|
||||||
if(hmapget(h, &key) == nil){
|
|
||||||
e.flush = 1;
|
|
||||||
sputr(&e.s, c);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
e.eat = 1;
|
|
||||||
sputr(&e.next, c);
|
|
||||||
mapget(h, &e.next, &e.dict);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
14
strans.c
14
strans.c
@ -4,9 +4,9 @@
|
|||||||
static Im im;
|
static Im im;
|
||||||
|
|
||||||
Lang langs[] = {
|
Lang langs[] = {
|
||||||
{LangJP, "hira", "kanji", nil, nil, jptrans},
|
{LangJP, "hira", "kanji", nil, nil},
|
||||||
{LangJPK, "kata", "kanji", nil, nil, jptrans},
|
{LangJPK, "kata", "kanji", nil, nil},
|
||||||
{LangKO, "hangul", nil, nil, nil, trans},
|
{LangKO, "hangul", nil, nil, nil},
|
||||||
};
|
};
|
||||||
int nlang = nelem(langs);
|
int nlang = nelem(langs);
|
||||||
|
|
||||||
@ -89,8 +89,7 @@ dotrans(Rune c, Str *com)
|
|||||||
Emit e;
|
Emit e;
|
||||||
Dictreq req;
|
Dictreq req;
|
||||||
|
|
||||||
e = im.l->trans(&im, c);
|
e = trans(&im, c);
|
||||||
|
|
||||||
if(e.s.n > 0)
|
if(e.s.n > 0)
|
||||||
sappend(com, &e.s);
|
sappend(com, &e.s);
|
||||||
sclear(&im.pre);
|
sclear(&im.pre);
|
||||||
@ -101,7 +100,6 @@ dotrans(Rune c, Str *com)
|
|||||||
req.pre = im.pre;
|
req.pre = im.pre;
|
||||||
channbsend(dictreqc, &req);
|
channbsend(dictreqc, &req);
|
||||||
}
|
}
|
||||||
|
|
||||||
return e.eat;
|
return e.eat;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,11 +131,9 @@ trans(Im *im, Rune c)
|
|||||||
mapget(h, &key, &e.dict);
|
mapget(h, &key, &e.dict);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
last = slastr(&im->pre);
|
last = slastr(&im->pre);
|
||||||
if(last == 0)
|
if(last == 0)
|
||||||
goto flush;
|
goto flush;
|
||||||
|
|
||||||
key = im->pre;
|
key = im->pre;
|
||||||
key.n--;
|
key.n--;
|
||||||
if(mapget(h, &key, &kana)){
|
if(mapget(h, &key, &kana)){
|
||||||
@ -156,7 +152,6 @@ trans(Im *im, Rune c)
|
|||||||
|
|
||||||
flush:
|
flush:
|
||||||
mapget(h, &im->pre, &e.s);
|
mapget(h, &im->pre, &e.s);
|
||||||
|
|
||||||
sclear(&key);
|
sclear(&key);
|
||||||
sputr(&key, c);
|
sputr(&key, c);
|
||||||
if(hmapget(h, &key) == nil){
|
if(hmapget(h, &key) == nil){
|
||||||
@ -164,7 +159,6 @@ flush:
|
|||||||
sputr(&e.s, c);
|
sputr(&e.s, c);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
e.eat = 1;
|
e.eat = 1;
|
||||||
sputr(&e.next, c);
|
sputr(&e.next, c);
|
||||||
mapget(h, &e.next, &e.dict);
|
mapget(h, &e.next, &e.dict);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user