/* * Copyright (c) 2004 Iwata * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef KANAKAN_H #define KANAKAN_H #include #include #include #include #include #ifdef _WIN32 #include #else #include #endif #include "sj_kcnv.h" #include "sj_struct.h" /* * NOTE: * All of these funtions calling rule are not following * ANSI like arguement lists, fun(dest, src, ...). * There are fun(src, dest, ...). */ /* adddic.c */ u_int adddic(u_char *, u_char *, TypeGram); /* addelcmn.c */ void set_size(u_char *, int, int, int); u_int addel_arg(u_char *, u_char *, TypeGram, u_char *, int); int cvtknj(u_char *, u_char *, u_char *); int srchkana(u_char **, int *); int srchgram(u_char *, u_char **, TypeGram); int srchkanji(u_char **, u_char *, int); TypeIdxOfs count_uidx(void); void chg_uidx(TypeDicSeg, u_char *, int); /* alloc.c */ JREC *alloc_jrec(void); void free_jrec(JREC *); CLREC *alloc_clrec(void); void free_clrec(CLREC *); /* charsize.c */ int codesize(u_char); /* chrtbl.c */ extern u_char chrtbl[256]; /* cl2knj.c */ int cl2knj(u_char *, int, u_char *); int nextcl(u_char *, int); int prevcl(u_char *, int); int selectnum(void); /* clstudy.c */ int clstudy(u_char *, u_char *, STDYOUT *); void delclsub(u_char *); void mkclidx(void); /* cmpstr.c */ int cmpstr(u_char *, u_char *); /* conjunc.c */ extern u_char *conjadr[]; /* connect.c */ extern u_char connadr[]; extern u_char *rigtadr[]; /* cvtclknj.c */ void cvtclknj(void); /* cvtdict.c */ void cvtdict(KHREC *, CLREC *, int); void cvtminasi(int); void cvtwakachi(CLREC *); /* cvtkanji.c */ void cvtphknj(void); void cvtkouho(KHREC *); void setstyrec(KHREC *); /* deldic.c */ u_int deldic(u_char *, u_char *, TypeGram); /* dict.c */ void get_askknj(void); int seldict(TypeDicID); u_char *get_idxptr(TypeDicSeg); /* functbl.c */ extern VFunc cvtnum_func[]; extern UCPFunc getkan_func[]; extern IFunc setjrec_func[]; extern IFunc hiraknj_func[]; /* fuzoku.c */ void setclrec(JREC *, u_char *, TypeCnct); RECURS void srchfzk(JREC *, u_char *, TypeCnct, int); /* fzkyomi.c */ extern u_char *fzkadr[]; /* getkanji.c */ u_char *getkan_none(u_char *, u_char *, u_char *, int, int); u_char *getkan_hira(u_char *, u_char *, u_char *, int, int); u_char *getkan_kata(u_char *, u_char *, u_char *, int, int); u_char *getkan_knj(u_char *, u_char *, u_char *, int, int); u_char *getkan_ofs(u_char *, u_char *, u_char *, int, int); u_char *getkan_norm(u_char *, u_char *, u_char *, int, int); u_char *getkan_ascii(u_char *, u_char *, u_char *, int, int); int getkanji(u_char *, int, u_char *, u_char *); /* getrank.c */ void getrank(void); /* hzstrlen.c */ int euc_codesize(u_char c); int hzstrlen(u_char *, int); /* init.c */ void seg_count(DICT *); void mkidxtbl(DICT *); void initwork(void); /* istrcmp.c */ int istrcmp(u_char *, u_char *, int, int); /* memcpy.c */ void sstrncpy(u_char *, u_char *, int); /* memory.c */ JREC *free_jlst(JREC *); CLREC *free_clst(CLREC *, int); void free_clall(CLREC *); void free_jall(JREC *); void freework(void); /* mk2claus.c */ void mk2claus(void); /* mkbunset.c */ void mkbunsetu(void); CLREC *argclrec(int); /* mkjiritu.c */ void mkjiritu(int); JREC *argjrec(int, JREC *); /* mkkouho.c */ void mkkouho(void); u_char *makekan_none(u_char *, u_char *, int); u_char *makekan_1byte(u_char *, u_char *, int); u_char *makekan_knj(u_char *, u_char *, int); u_char *makekan_ofs(u_char *, u_char *, int); u_char *makekan_norm(u_char *, u_char *, int); u_char *makekan_ascii(u_char *, u_char *, int); int sel_sjmode(JREC *); /* mknumber.c */ void num_type00(u_char *, u_char *, JREC *); void num_type01(u_char *, u_char *, JREC *); void num_type02(u_char *, u_char *, JREC *); void num_type03(u_char *, u_char *, JREC *); void num_type04(u_char *, u_char *, JREC *); void num_type05(u_char *, u_char *, JREC *); void num_type06(u_char *, u_char *, JREC *); void num_type07(u_char *, u_char *, JREC *); void num_type08(u_char *, u_char *, JREC *); void num_type09(u_char *, u_char *, JREC *); void num_type10(u_char *, u_char *, JREC *); void num_type11(u_char *, u_char *, JREC *); void num_type12(u_char *, u_char *, JREC *); void num_type13(u_char *, u_char *, JREC *); void num_type14(u_char *, u_char *, JREC *); /* mvmemd.c */ void mvmemd(u_char *, u_char *, int); /* mvmemi.c */ void mvmemi(u_char *, u_char *, int); /* peepdic.c */ int getusr(u_char *); int nextusr(u_char *); int prevusr(u_char *); /* ph2knj.c */ int ph2knj(u_char *, u_char *, int); /* ph_khtbl.c */ int ph_khtbl(CLREC *); /* priority.c */ int priority(CLREC *); void pritiny(void); /* prtytbl.c */ extern u_char taipri[7][45]; extern u_char sttpri[5][31]; /* s2ctbl.c */ extern u_char kigou[]; /* sdepend.c */ DictFile *opendict(char *, char *); int closedict(DictFile *); void lock_dict(DictFile *, int); void unlock_dict(DictFile *, int); int is_dict_locked(DictFile *); StdyFile *openstdy(char *, char *); int closestdy(StdyFile *); int putstydic(void); int putcldic(void); int makedict(char *, int, int, int); int makestdy(char *, int, int, int); void sj_closeall(void); int set_dictpass(DictFile *, char *); int set_stdypass(char *); int set_dictcmnt(DictFile *, char *); int set_stdycmnt(char *); int get_stdysize(int *, int *, int *); /* selclrec.c */ void selclrec(void); /* selsuuji.c */ extern u_short *selsjadrs[]; /* setconj.c */ int setconj(TypeGram, JREC *, CREC *); /* setjrec.c */ int setj_atrb(u_char *); int setj_ofs(u_char *); int setj_knj(u_char *); int setj_norm1(u_char *); int setj_norm2(u_char *); int setj_norm3(u_char *); /* unused??? */ void setjrec(u_char *, int); void setnumrec(u_char *, JREC *, TypeGram); void setcrec(u_char *); /* setkouho.c */ void setkouho(CLREC *, TypeDicOfs, int); void ph_setkouho(CLREC *, TypeDicOfs, STDYIN *); int hiraknj_atrb(u_char *, int *); int hiraknj_ofs(u_char *, int *); int hiraknj_knj(u_char *, int *); int hiraknj_hask(u_char *, int *); int hiraknj_kask(u_char *, int *); int hiraknj_norm(u_char *, int *); int hiraknj_hira(u_char *, int *); /* setubi.c */ u_char *getstb(TypeGram); void setubi(JREC *, u_char *); /* sj2code.c */ int sj2cd_chr(u_char *, u_char *); int sj2cd_str(u_char *, u_char *, int); /* skiphblk.c */ u_char *skiphblk(u_char *); /* skipkstr.c */ u_char *skipkstr(u_char *); /* srchdict.c */ int yomicmp(u_char *, u_char *, u_char *); u_char *srchdict(u_char *); /* srchhead.c */ int srchhead(void); /* srchidx.c */ TypeDicSeg srchidx(TypeDicSeg, int); /* srchnum.c*/ void srchnum(void); void setwdnum(u_char *, int, u_short *); int setucnum(u_char *, int, u_char *); /* sstrcmp.c */ int sstrcmp(u_char *, u_char *); /* sstrlen.c */ int sstrlen(u_char *); /* sstrncmp.c */ int sstrncmp(u_char *, u_char *dst, int); /* stbtbl.c */ extern u_char *stbadr[]; /* stttbl.c */ extern u_char *settou_ptr[]; extern u_char scncttbl[2][24]; /* study.c */ int study(STDYOUT *); STDYIN *srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID); /* suujitbl.c */ extern u_char suuji_tbl[]; extern u_char kurai1_tbl[]; extern u_char kurai2_tbl[]; extern u_char num1tbl[]; extern u_char num2tbl[]; extern u_char num3tbl[]; extern u_char num4tbl[]; extern u_char num5tbl[]; extern u_char num6tbl[]; /* terminat.c */ int terminate(TypeCnct, u_char *); /* termtbl.c */ extern u_char termtbl[]; /* wakachi.c */ void wakachi(void); #endif /* KANAKAN_H */