/* * Copyright (c) 2004 Hiroo Ono * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of Sony Corporation * shall not be used in advertising or otherwise to promote the sale, use * or other dealings in this Software without prior written authorization * from Sony Corporation. * */ /* * $Id: kanakan.h,v 1.2 2004/07/04 08:11:10 hiroo Exp $ */ #ifndef _KANAKAN_H_ #define _KANAKAN_H_ 1 #include "sj_struct.h" #include "Struct.h" /* adddic.c */ unsigned int adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi); /* addelcmn.c */ void set_size(unsigned char* p, int size, int plen, int nlen); unsigned int addel_arg(unsigned char* yp, unsigned char* kp, TypeGram grm, unsigned char* nyp, int len); int cvtknj(unsigned char* yomi, unsigned char* knj, unsigned char* dst); int srchkana(unsigned char** ptr, int* saml); int srchgram(unsigned char* ptr, unsigned char** dst, TypeGram hinshi); int srchkanji(unsigned char** dst, unsigned char* knj, int klen); TypeIdxOfs count_uidx(void); void chg_uidx(TypeDicSeg seg, unsigned char* yomi, int len); /* alloc.c */ JREC* alloc_jrec(void); void free_jrec(JREC* p); CLREC* alloc_clrec(void); void free_clrec(CLREC* p); /* charsize.c */ int codesize(unsigned char code); /* cl2knj.c */ int cl2knj(unsigned char* yomi, int len, unsigned char* kouho); int nextcl(unsigned char* kouho, int mode); int prevcl(unsigned char* kouho, int mode); int selectnum(void); /* clstudy.c */ int clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT* stdy); void delclsub(unsigned char* target); void mkclidx(void); /* cvtdict.c */ void cvtdict(KHREC* krec, CLREC* clrec, int flg); void cvtminasi(int len); void cvtwakachi(CLREC* clrec); /* cvtkanji.c */ void cvtphknj(void); void cvtkouho(KHREC* krec); void setstyrec(KHREC* krec); /* deldic.c */ unsigned int deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi); /* depend.c */ DictFile* opendict(char* name, char* passwd); int closedict(DictFile* dfp); void lock_dict(DictFile* p, int fd); void unlock_dict(DictFile* p, int fd); int is_dict_locked(DictFile* p); StdyFile* openstdy(char* name, char* passwd); int closestdy(StdyFile* sfp); int putstydic(void); int putcldic(void); int makedict(char* path, int idxlen, int seglen, int segnum); int makestdy(char* path, int stynum, int clstep, int cllen); void sj_closeall(void); int set_dictpass(DictFile* dp, char* pass); int set_stdypass(char* pass); int set_dictcmnt(DictFile* dp, char* cmnt); int set_stdycmnt(char* cmnt); void get_stdysize(int* stynum, int* clstep, int* cllen); /* dict.c */ void get_askknj(void); int seldict(TypeDicID id); unsigned char* get_idxptr(TypeDicSeg seg); /* getkanji.c */ unsigned char* getkan_none(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_hira(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_knj(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_ofs(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_norm(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); unsigned char* getkan_ascii(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg); int getkanji(unsigned char* ym, int yl, unsigned char* ptr, unsigned char* buf); /* getrank.c */ void getrank(void); /* hzstrlen.c */ int euc_codesize(unsigned char c); int hzstrlen(unsigned char* ptr, int len); /* mkbunsetsu.c */ void mkbunsetsu(void); CLREC* argclrec(int len); /* mkjiritsu.c */ void mkjiritsu(int mode); JREC* argjrec(int len, JREC* rec); /* mkkouho.c */ unsigned char* makekan_none(unsigned char* s, unsigned char* d, int flg); unsigned char* makekan_1byte(unsigned char* s, unsigned char* d, int flg); unsigned char* makekan_knj(unsigned char* s, unsigned char* d, int flg); unsigned char* makekan_ofs(unsigned char* s, unsigned char* d, int flg); unsigned char* makekan_norm(unsigned char* s, unsigned char* d, int flg); unsigned char* makekan_ascii(unsigned char* s, unsigned char* d, int flg); void mkkouho(void); int sel_sjmode(JREC* jrec); /* mknumber.c */ void num_type00(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type01(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type02(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type03(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type04(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type05(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type06(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type07(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type08(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type09(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type10(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type11(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type12(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type13(unsigned char* s1, unsigned char* s2, JREC* jrec); void num_type14(unsigned char* s1, unsigned char* s2, JREC* jrec); /* peepdic.c */ int getusr(unsigned char* buf); int nextusr(unsigned char* buf); int prevusr(unsigned char* buf); /* ph2knj.c */ int ph2knj(unsigned char* zyomi, unsigned char* kanji, int knjlen); /* ph_khtbl.c */ int ph_khtbl(CLREC* clrec); /* setconj.c */ int setconj(TypeGram hinshi, JREC* jrec, CREC* crec); /* setjrec.c */ int setj_atrb(unsigned char* p); int setj_ofs(unsigned char* p); int setj_knj(unsigned char* p); int setj_norm1(unsigned char* p); int setj_norm2(unsigned char* p); int setj_norm3(unsigned char* p); void setjrec(unsigned char* tagp, int mode); void setnumrec(unsigned char* tagp, JREC* rec, TypeGram gram); void setcrec(unsigned char* tagp); /* setkouho.c */ void setkouho(CLREC* clrec, TypeDicOfs offs, int mode); void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr); int hiraknj_atrb(unsigned char*, int*); int hiraknj_ofs(unsigned char*, int*); int hiraknj_knj(unsigned char*, int*); int hiraknj_hask(unsigned char*, int*); int hiraknj_kask(unsigned char*, int*); int hiraknj_norm(unsigned char*, int*); int hiraknj_hira(unsigned char*, int*); /* setsubi.c */ unsigned char* getstb(TypeGram hinshi); void setsubi(JREC* rec, unsigned char* stbtbl); /* skipkstr.c */ unsigned char* skipkstr(unsigned char* ptr); /* srchdict.c */ int yomicmp(unsigned char* ptr1, unsigned char* ptr2, unsigned char* saml); unsigned char* srchdict(unsigned char* tagp); /* srchidx.c */ TypeDicSeg srchidx(TypeDicSeg low, int len); /* srchnum.c */ void srchnum(void); void setwdnum(unsigned char* p, int len, unsigned short* wd); int setucnum(unsigned char* p, int len, unsigned char* ud); /* study.c */ int study(STDYOUT* stdy); STDYIN* srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid); /* wakachi.c */ void wakachi(void); #endif /* _KANAKAN_H_ */