The dictionary thread ran in imthread's own proc, so a lookup could only start once the engine blocked, and it was a trie probe anyway; the emoji and Hanja searches already called dictlookup directly. The request/result channels, sequence numbers, staleness checks and the second draw per Japanese key are gone; dictqjp fills the candidates in place. Emit.dict and Lang.dictq only ever triggered lookups for Vietnamese, which has no dictionary. dictlookup(Lang*, key, out, max) returns the count. The Hanja lookup no longer pre-checks for a single syllable; a reading either has an entry or it does not.
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
void die(char*, ...);
|
|
|
|
int sinit(Str*, char*, int);
|
|
void sclear(Str*);
|
|
void sputr(Str*, Rune);
|
|
void spopr(Str*);
|
|
void sappend(Str*, Str*);
|
|
int scmp(Str*, Str*);
|
|
int stoutf(Str*, char*, int);
|
|
Rune slastr(Str*);
|
|
|
|
int mapget(Trie*, Str*, Str*);
|
|
|
|
Trie* trienew(void);
|
|
void trieput(Trie*, char*, int, char*, int);
|
|
Trie* trieopen(char*);
|
|
void trieclose(Trie*);
|
|
int trielookup(Trie*, Str*, char**, int*);
|
|
|
|
Lang* getlang(int);
|
|
void langinit(char*);
|
|
|
|
int dictlookup(Lang*, Str*, Str*, int);
|
|
|
|
void drawthread(void*);
|
|
void popuparea(Area*, int, Area*, int, int, Area*);
|
|
void popupposition(Caret*, int, int, Area*, int, int, int*, int*);
|
|
int pagemarker(char*, int, int, int, int);
|
|
void popuplayout(Drawcmd*, int, int, Popup*);
|
|
void popupdraw(u32int*, Drawcmd*, Popup*);
|
|
void imthread(void*);
|
|
Emit transmap(Im*, Rune);
|
|
Emit transko(Im*, Rune);
|
|
Emit transvi(Im*, Rune);
|
|
void backko(Im*);
|
|
void backvi(Im*);
|
|
|
|
void srvinit(void);
|
|
void srvthread(void*);
|
|
void ibusthread(void*);
|
|
void ximthread(void*);
|
|
void ximownernotify(void);
|
|
|
|
void* emalloc(ulong);
|
|
void* erealloc(void*, ulong);
|
|
|
|
int textinit(void);
|
|
void textclose(void);
|
|
int textwidth(Str*);
|
|
void textdraw(u32int*, int, int, int, int, Str*);
|
|
void textdrawfit(u32int*, int, int, int, int, int, Str*);
|
|
void textdrawfitcolor(u32int*, int, int, int, int, int, u32int, Str*);
|