diff --git a/include/sj3core/Struct.h b/include/sj3core/Struct.h index bba5946..f789562 100644 --- a/include/sj3core/Struct.h +++ b/include/sj3core/Struct.h @@ -154,4 +154,9 @@ typedef struct workarea { Global global; } WorkArea; +typedef struct sj3context { + Global* work; + STDY* stdy; +} Sj3Context; + #endif diff --git a/include/sj3core/sj_global.h b/include/sj3core/sj_global.h index 1f506a1..c6e9ad7 100644 --- a/include/sj3core/sj_global.h +++ b/include/sj3core/sj_global.h @@ -36,9 +36,10 @@ #ifndef SJ_GLOBAL_H #define SJ_GLOBAL_H -extern Global* global_work_base; +#if 0 extern Global* work_base; extern STDY* stdy_base; -extern int serv_errno; +#endif +extern int serv_errno; #endif diff --git a/include/sj3core/sj_kanakan.h b/include/sj3core/sj_kanakan.h index f7bef99..34ad4ff 100644 --- a/include/sj3core/sj_kanakan.h +++ b/include/sj3core/sj_kanakan.h @@ -31,6 +31,18 @@ #include "sj_kcnv.h" #include "sj_struct.h" +#ifdef SJ3_GLOBAL +#define SJ3_CONTEXT +#define SJ3_CONTEXT2 void +#define SJ3_CONTEXT_PASS +#define SJ3_CONTEXT_PASS2 +#else +#define SJ3_CONTEXT Sj3Context *ctx, +#define SJ3_CONTEXT2 Sj3Context* ctx +#define SJ3_CONTEXT_PASS ctx, +#define SJ3_CONTEXT_PASS2 ctx +#endif + /* * NOTE: * All of these funtions calling rule are not following @@ -39,17 +51,17 @@ */ /* adddic.c */ -u_int adddic(u_char*, u_char*, TypeGram); +u_int adddic(SJ3_CONTEXT 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*); +u_int addel_arg(SJ3_CONTEXT u_char*, u_char*, TypeGram, u_char*, int); +int cvtknj(SJ3_CONTEXT u_char*, u_char*, u_char*); +int srchkana(SJ3_CONTEXT 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); +TypeIdxOfs count_uidx(SJ3_CONTEXT2); +void chg_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int); /* alloc.c */ JREC* alloc_jrec(void); @@ -64,15 +76,15 @@ int codesize(u_char); 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); +int cl2knj(SJ3_CONTEXT u_char*, int, u_char*); +int nextcl(SJ3_CONTEXT u_char*, int); +int prevcl(SJ3_CONTEXT u_char*, int); +int selectnum(SJ3_CONTEXT2); /* clstudy.c */ -int clstudy(u_char*, u_char*, STDYOUT*); -void delclsub(u_char*); -void mkclidx(void); +int clstudy(SJ3_CONTEXT u_char*, u_char*, STDYOUT*); +void delclsub(SJ3_CONTEXT u_char*); +void mkclidx(SJ3_CONTEXT2); /* cmpstr.c */ int cmpstr(u_char*, u_char*); @@ -85,25 +97,25 @@ extern u_char connadr[]; extern u_char* rigtadr[]; /* cvtclknj.c */ -void cvtclknj(void); +void cvtclknj(SJ3_CONTEXT2); /* cvtdict.c */ -void cvtdict(KHREC*, CLREC*, int); -void cvtminasi(int); -void cvtwakachi(CLREC*); +void cvtdict(SJ3_CONTEXT KHREC*, CLREC*, int); +void cvtminasi(SJ3_CONTEXT int); +void cvtwakachi(SJ3_CONTEXT CLREC*); /* cvtkanji.c */ -void cvtphknj(void); -void cvtkouho(KHREC*); -void setstyrec(KHREC*); +void cvtphknj(SJ3_CONTEXT2); +void cvtkouho(SJ3_CONTEXT KHREC*); +void setstyrec(SJ3_CONTEXT KHREC*); /* deldic.c */ -u_int deldic(u_char*, u_char*, TypeGram); +u_int deldic(SJ3_CONTEXT u_char*, u_char*, TypeGram); /* dict.c */ -void get_askknj(void); -int seldict(TypeDicID); -u_char* get_idxptr(TypeDicSeg); +void get_askknj(SJ3_CONTEXT2); +int seldict(SJ3_CONTEXT TypeDicID); +u_char* get_idxptr(SJ3_CONTEXT TypeDicSeg); /* functbl.c */ extern VFunc cvtnum_func[]; @@ -112,8 +124,8 @@ extern IFunc setjrec_func[]; extern IFunc hiraknj_func[]; /* fuzoku.c */ -void setclrec(JREC*, u_char*, TypeCnct); -RECURS void srchfzk(JREC*, u_char*, TypeCnct, int); +void setclrec(SJ3_CONTEXT JREC*, u_char*, TypeCnct); +RECURS void srchfzk(SJ3_CONTEXT JREC*, u_char*, TypeCnct, int); /* fzkyomi.c */ extern u_char* fzkadr[]; @@ -122,23 +134,23 @@ extern u_char* fzkadr[]; 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_knj(SJ3_CONTEXT u_char*, u_char*, u_char*, int, int); +u_char* getkan_ofs(SJ3_CONTEXT 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*); +int getkanji(SJ3_CONTEXT u_char*, int, u_char*, u_char*); /* getrank.c */ -void getrank(void); +void getrank(SJ3_CONTEXT2); /* 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); +void seg_count(SJ3_CONTEXT DICT*); +void mkidxtbl(SJ3_CONTEXT DICT*); +void initwork(SJ3_CONTEXT2); /* istrcmp.c */ int istrcmp(u_char*, u_char*, int, int); @@ -148,48 +160,48 @@ void sstrncpy(u_char*, u_char*, int); /* memory.c */ JREC* free_jlst(JREC*); -CLREC* free_clst(CLREC*, int); +CLREC* free_clst(SJ3_CONTEXT CLREC*, int); void free_clall(CLREC*); void free_jall(JREC*); -void freework(void); +void freework(SJ3_CONTEXT2); /* mk2claus.c */ -void mk2claus(void); +void mk2claus(SJ3_CONTEXT2); /* mkbunset.c */ -void mkbunsetu(void); -CLREC* argclrec(int); +void mkbunsetu(SJ3_CONTEXT2); +CLREC* argclrec(SJ3_CONTEXT int); /* mkjiritu.c */ -void mkjiritu(int); -JREC* argjrec(int, JREC*); +void mkjiritu(SJ3_CONTEXT int); +JREC* argjrec(SJ3_CONTEXT int, JREC*); /* mkkouho.c */ -void mkkouho(void); +void mkkouho(SJ3_CONTEXT2); 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_knj(SJ3_CONTEXT u_char*, u_char*, int); +u_char* makekan_ofs(SJ3_CONTEXT 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*); +void num_type00(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type01(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type02(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type03(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type04(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type05(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type06(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type07(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type08(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type09(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type10(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type11(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type12(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type13(SJ3_CONTEXT u_char*, u_char*, JREC*); +void num_type14(SJ3_CONTEXT u_char*, u_char*, JREC*); /* mvmemd.c */ void mvmemd(u_char*, u_char*, int); @@ -198,19 +210,19 @@ void mvmemd(u_char*, u_char*, int); void mvmemi(u_char*, u_char*, int); /* peepdic.c */ -int getusr(u_char*); -int nextusr(u_char*); -int prevusr(u_char*); +int getusr(SJ3_CONTEXT u_char*); +int nextusr(SJ3_CONTEXT u_char*); +int prevusr(SJ3_CONTEXT u_char*); /* ph2knj.c */ -int ph2knj(u_char*, u_char*, int); +int ph2knj(SJ3_CONTEXT u_char*, u_char*, int); /* ph_khtbl.c */ -int ph_khtbl(CLREC*); +int ph_khtbl(SJ3_CONTEXT CLREC*); /* priority.c */ -int priority(CLREC*); -void pritiny(void); +int priority(SJ3_CONTEXT CLREC*); +void pritiny(SJ3_CONTEXT2); /* prtytbl.c */ extern u_char taipri[7][45]; @@ -220,83 +232,83 @@ extern u_char sttpri[5][31]; 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*); +DictFile* opendict(SJ3_CONTEXT char*, char*); +int closedict(SJ3_CONTEXT DictFile*); +void lock_dict(SJ3_CONTEXT DictFile*, int); +void unlock_dict(SJ3_CONTEXT DictFile*, int); +int is_dict_locked(SJ3_CONTEXT DictFile*); +StdyFile* openstdy(SJ3_CONTEXT char*, char*); +int closestdy(SJ3_CONTEXT StdyFile*); +int putstydic(SJ3_CONTEXT2); +int putcldic(SJ3_CONTEXT2); +int makedict(SJ3_CONTEXT char*, int, int, int); +int makestdy(SJ3_CONTEXT char*, int, int, int); +void sj_closeall(SJ3_CONTEXT2); +int set_dictpass(SJ3_CONTEXT DictFile*, char*); +int set_stdypass(SJ3_CONTEXT char*); +int set_dictcmnt(SJ3_CONTEXT DictFile*, char*); +int set_stdycmnt(SJ3_CONTEXT char*); +int get_stdysize(SJ3_CONTEXT int*, int*, int*); /* selclrec.c */ -void selclrec(void); +void selclrec(SJ3_CONTEXT2); /* selsuuji.c */ extern u_short* selsjadrs[]; /* setconj.c */ -int setconj(TypeGram, JREC*, CREC*); +int setconj(SJ3_CONTEXT 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*); +int setj_atrb(SJ3_CONTEXT u_char*); +int setj_ofs(SJ3_CONTEXT u_char*); +int setj_knj(SJ3_CONTEXT u_char*); +int setj_norm1(SJ3_CONTEXT u_char*); +int setj_norm2(SJ3_CONTEXT u_char*); +int setj_norm3(SJ3_CONTEXT u_char*); /* unused??? */ +void setjrec(SJ3_CONTEXT u_char*, int); +void setnumrec(SJ3_CONTEXT u_char*, JREC*, TypeGram); +void setcrec(SJ3_CONTEXT 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*); +void setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, int); +void ph_setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, STDYIN*); +int hiraknj_atrb(SJ3_CONTEXT u_char*, int*); +int hiraknj_ofs(SJ3_CONTEXT u_char*, int*); +int hiraknj_knj(SJ3_CONTEXT u_char*, int*); +int hiraknj_hask(SJ3_CONTEXT u_char*, int*); +int hiraknj_kask(SJ3_CONTEXT u_char*, int*); +int hiraknj_norm(SJ3_CONTEXT u_char*, int*); +int hiraknj_hira(SJ3_CONTEXT u_char*, int*); /* setubi.c */ -u_char* getstb(TypeGram); -void setubi(JREC*, u_char*); +u_char* getstb(SJ3_CONTEXT TypeGram); +void setubi(SJ3_CONTEXT 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*); +u_char* skiphblk(SJ3_CONTEXT u_char*); /* skipkstr.c */ -u_char* skipkstr(u_char*); +u_char* skipkstr(SJ3_CONTEXT u_char*); /* srchdict.c */ -int yomicmp(u_char*, u_char*, u_char*); -u_char* srchdict(u_char*); +int yomicmp(SJ3_CONTEXT u_char*, u_char*, u_char*); +u_char* srchdict(SJ3_CONTEXT u_char*); /* srchhead.c */ -int srchhead(void); +int srchhead(SJ3_CONTEXT2); /* srchidx.c */ -TypeDicSeg srchidx(TypeDicSeg, int); +TypeDicSeg srchidx(SJ3_CONTEXT TypeDicSeg, int); /* srchnum.c*/ -void srchnum(void); -void setwdnum(u_char*, int, u_short*); -int setucnum(u_char*, int, u_char*); +void srchnum(SJ3_CONTEXT2); +void setwdnum(SJ3_CONTEXT u_char*, int, u_short*); +int setucnum(SJ3_CONTEXT u_char*, int, u_char*); /* sstrcmp.c */ int sstrcmp(u_char*, u_char*); @@ -305,7 +317,7 @@ int sstrcmp(u_char*, u_char*); int sstrlen(u_char*); /* sstrncmp.c */ -int sstrncmp(u_char*, u_char* dst, int); +int sstrncmp(u_char*, u_char*, int); /* stbtbl.c */ extern u_char* stbadr[]; @@ -315,8 +327,8 @@ extern u_char* settou_ptr[]; extern u_char scncttbl[2][24]; /* study.c */ -int study(STDYOUT*); -STDYIN* srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID); +int study(SJ3_CONTEXT STDYOUT*); +STDYIN* srchstdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID); /* suujitbl.c */ extern u_char suuji_tbl[]; @@ -330,12 +342,12 @@ extern u_char num5tbl[]; extern u_char num6tbl[]; /* terminat.c */ -int terminate(TypeCnct, u_char*); +int terminate(SJ3_CONTEXT TypeCnct, u_char*); /* termtbl.c */ extern u_char termtbl[]; /* wakachi.c */ -void wakachi(void); +void wakachi(SJ3_CONTEXT2); #endif /* KANAKAN_H */ diff --git a/include/sj3core/sj_rename.h b/include/sj3core/sj_rename.h index 57434eb..721e7a3 100644 --- a/include/sj3core/sj_rename.h +++ b/include/sj3core/sj_rename.h @@ -118,8 +118,13 @@ #define setnspr Jsetnspr #define regetrank Jregetrank +#ifdef SJ3_GLOBAL #define work_base Jwork_base #define stdy_base Jstdy_base +#else +#define work_base (ctx->work) +#define stdy_base (ctx->stdy) +#endif #define maxjptr (work_base->Jmaxjptr) #define maxclptr (work_base->Jmaxclptr) diff --git a/lib/sj3core/adddic.c b/lib/sj3core/adddic.c index e910620..4720df5 100644 --- a/lib/sj3core/adddic.c +++ b/lib/sj3core/adddic.c @@ -41,13 +41,13 @@ #include "sj_kanakan.h" -static void sprt_seg(TypeDicSeg, TypeDicOfs); -static void apnd_uidx(TypeDicSeg, u_char*, int); -static int cal_nextym(u_char*); -static int usr_freelen(); -static u_int checkdict(u_char*, TypeGram); +static void sprt_seg(SJ3_CONTEXT TypeDicSeg, TypeDicOfs); +static void apnd_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int); +static int cal_nextym(SJ3_CONTEXT u_char*); +static int usr_freelen(SJ3_CONTEXT2); +static u_int checkdict(SJ3_CONTEXT u_char*, TypeGram); -u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { +u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) { u_int err; u_char yptr[MAXWDYOMILEN + 1]; u_char kptr[MAXWDKANJILEN + 1]; @@ -73,20 +73,20 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { STDYIN* stdy; STDYOUT stdydat; - if((err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))) + if((err = addel_arg(SJ3_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr)))) return err; inputyomi = yomi; cnvstart = ystart = yptr; cnvlen = sstrlen(yptr); - if((err = checkdict(kanji, hinsi))) + if((err = checkdict(SJ3_CONTEXT_PASS kanji, hinsi))) return err; if(!curdict->maxunit) return AD_NOTUSERDICT; - klen = cvtknj(yomi, kanji, kptr); + klen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr); newsiz = DOUONBLKSIZENUMBER + cnvlen + (klen != 0 ? klen + 1 : 0) + 2; @@ -95,11 +95,11 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if(newsiz > curdict->seglen) return AD_OVFLWDOUBLK; - segnum = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); + segnum = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen); for(;;) { (*curdict->getdic)(curdict, segnum); - i = srchkana(&p1, &saml); + i = srchkana(SJ3_CONTEXT_PASS & p1, &saml); dstofs = douofs = p1 - dicbuf; hnsofs = knjofs = 0; if(i) { @@ -120,7 +120,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { nlen = cnvlen - saml; newsiz = DOUONBLKSIZENUMBER + nlen; - nxtask = cal_nextym(p1); + nxtask = cal_nextym(SJ3_CONTEXT_PASS p1); } else { oldsiz = newsiz = getsize(p1); nxtask = 0; @@ -129,7 +129,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { newsiz += (klen != 0 ? klen + 1 : 0); - fresiz = usr_freelen(); + fresiz = usr_freelen(SJ3_CONTEXT_PASS2); if((unsigned int)(newsiz - oldsiz - nxtask) <= (unsigned int)fresiz) break; @@ -142,7 +142,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if(curdict->segunit >= curdict->maxunit) return AD_OVFLWUSRDIC; - freidx = count_uidx(); + freidx = count_uidx(SJ3_CONTEXT_PASS2); if((unsigned int)(douofs + newsiz) <= curdict->seglen) { if(hnsofs) @@ -156,7 +156,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if((*curdict->putdic)(curdict, curdict->segunit)) return AD_OVFLWUSRDIC; - sprt_seg(segnum, pos); + sprt_seg(SJ3_CONTEXT_PASS segnum, pos); nxtask = 0; break; @@ -175,7 +175,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { dicbuf[0] = 0; (*curdict->putdic)(curdict, curdict->segunit - 1); (*curdict->rszdic)(curdict, curdict->segunit); - mkidxtbl(curdict); + mkidxtbl(SJ3_CONTEXT_PASS curdict); segnum++; } else { @@ -186,7 +186,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if((*curdict->putdic)(curdict, curdict->segunit)) return AD_OVFLWUSRDIC; - sprt_seg(segnum, douofs); + sprt_seg(SJ3_CONTEXT_PASS segnum, douofs); segnum++; } @@ -220,7 +220,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if(!hnsofs) { if(douofs == segtop() - dicbuf) { - chg_uidx(segnum, yptr, cnvlen); + chg_uidx(SJ3_CONTEXT_PASS segnum, yptr, cnvlen); } *dstptr = 0; @@ -275,9 +275,9 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { err = sstrncmp(yptr, (u_char*)ClYomiPos(p1), (int)ClYomiLen(p1)); if(err == MATCH) { - delclsub(p1); - mkclidx(); - putcldic(); + delclsub(SJ3_CONTEXT_PASS p1); + mkclidx(SJ3_CONTEXT_PASS2); + putcldic(SJ3_CONTEXT_PASS2); break; } else if(err == OVER) break; @@ -295,13 +295,13 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) { stdydat.sttlen = 0; stdydat.sttfg = 0; stdydat.ka_fg = 0; - (void)study(&stdydat); + (void)study(SJ3_CONTEXT_PASS & stdydat); return AD_DONE; } static int -checksub(u_char* kanji, TypeGram grm) { +checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) { u_char* tagp; u_char* ptr; u_char* endp; @@ -313,7 +313,7 @@ checksub(u_char* kanji, TypeGram grm) { dicsaml = 0; prevseg = (TypeDicSeg)-1; for(;;) { - if(!(tagp = srchdict(tagp))) + if(!(tagp = srchdict(SJ3_CONTEXT_PASS tagp))) return 0; if(cnvlen == getnlen(tagp) + getplen(tagp)) break; @@ -330,12 +330,12 @@ checksub(u_char* kanji, TypeGram grm) { flg = (grm == *ptr++); while(*ptr != HINSIBLKTERM) { if(flg) { - buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0; + buf[getkanji(SJ3_CONTEXT_PASS inputyomi, cnvlen, ptr, buf)] = 0; if(cmpstr(kanji, buf)) return -1; } dounum++; - ptr = skipkstr(ptr); + ptr = skipkstr(SJ3_CONTEXT_PASS ptr); } ptr++; @@ -345,7 +345,7 @@ checksub(u_char* kanji, TypeGram grm) { } static u_int -checkdict(u_char* kanji, TypeGram grm) { +checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) { DICTL* dp; int dounum = 0; int tmp; @@ -356,7 +356,7 @@ checkdict(u_char* kanji, TypeGram grm) { curdict = dp->dict; - if((tmp = checksub(kanji, grm)) < 0) { + if((tmp = checksub(SJ3_CONTEXT_PASS kanji, grm)) < 0) { curdict = tmpdict; return AD_AREXIST; } @@ -372,7 +372,7 @@ checkdict(u_char* kanji, TypeGram grm) { } static int -cal_nextym(u_char* ptr) { +cal_nextym(SJ3_CONTEXT u_char* ptr) { int count = 0; u_char* src; int len; @@ -394,7 +394,7 @@ cal_nextym(u_char* ptr) { } static int -usr_freelen() { +usr_freelen(SJ3_CONTEXT2) { u_char* ptr; ptr = segtop(); @@ -405,7 +405,7 @@ usr_freelen() { } static void -sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) { +sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) { TypeDicSeg s; u_char* pos; u_char* p; @@ -441,7 +441,7 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) { nlen = getnlen(pos); ylen = (i = getplen(pos)) + (j = nlen); - apnd_uidx(seg, yomi, ylen); + apnd_uidx(SJ3_CONTEXT_PASS seg, yomi, ylen); set_size(segtop(), getsize(pos) + i, 0, ylen); @@ -479,11 +479,11 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) { } static void -apnd_uidx(TypeDicSeg seg, u_char* yomi, int len) { +apnd_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) { u_char* p; u_char* q; - p = get_idxptr(seg); + p = get_idxptr(SJ3_CONTEXT_PASS seg); while(*p++); q = idxbuf + curdict->idxlen; @@ -495,5 +495,5 @@ apnd_uidx(TypeDicSeg seg, u_char* yomi, int len) { (*curdict->putidx)(curdict, 0); - mkidxtbl(curdict); + mkidxtbl(SJ3_CONTEXT_PASS curdict); } diff --git a/lib/sj3core/addelcmn.c b/lib/sj3core/addelcmn.c index 962120d..017c296 100644 --- a/lib/sj3core/addelcmn.c +++ b/lib/sj3core/addelcmn.c @@ -112,7 +112,7 @@ isgrm(TypeGram gram) { return FALSE; } -u_int addel_arg(u_char* yp, u_char* kp, TypeGram grm, u_char* nyp, int len) { +u_int addel_arg(SJ3_CONTEXT u_char* yp, u_char* kp, TypeGram grm, u_char* nyp, int len) { u_short err = 0; if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI; @@ -174,7 +174,7 @@ last_strcmp(u_char* src, u_char* dst) { return (dlen / 2); } -int cvtknj(u_char* yomi, u_char* knj, u_char* dst) { +int cvtknj(SJ3_CONTEXT u_char* yomi, u_char* knj, u_char* dst) { u_char kana[MAXWDYOMILEN * 2 + 1]; int len; u_char* keep; @@ -229,7 +229,7 @@ int cvtknj(u_char* yomi, u_char* knj, u_char* dst) { return (dst - keep); } -int srchkana(u_char** ptr, int* saml) { +int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) { u_char* p; int cmp; int cnt = 0; @@ -242,7 +242,7 @@ int srchkana(u_char** ptr, int* saml) { while(!segend(p)) { if(flg == 0) { - cmp = yomicmp(cnvstart, p, &same); + cmp = yomicmp(SJ3_CONTEXT_PASS cnvstart, p, &same); if(cmp == OVER) break; if(cmp == MATCH && *(cnvstart + same) == 0) { @@ -321,20 +321,20 @@ int srchkanji(u_char** dst, u_char* knj, int klen) { } TypeIdxOfs -count_uidx() { +count_uidx(SJ3_CONTEXT2) { u_char* p; - p = get_idxptr(curdict->segunit - 1); + p = get_idxptr(SJ3_CONTEXT_PASS curdict->segunit - 1); while(*p++); return (curdict->idxlen - (p - idxbuf)); } -void chg_uidx(TypeDicSeg seg, u_char* yomi, int len) { +void chg_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) { u_char *p, *q; int olen; - p = get_idxptr(seg); + p = get_idxptr(SJ3_CONTEXT_PASS seg); olen = sstrlen(p); @@ -349,5 +349,5 @@ void chg_uidx(TypeDicSeg seg, u_char* yomi, int len) { (*curdict->putidx)(curdict, 0); - mkidxtbl(curdict); + mkidxtbl(SJ3_CONTEXT_PASS curdict); } diff --git a/lib/sj3core/cl2knj.c b/lib/sj3core/cl2knj.c index 6bb20ca..44767c0 100644 --- a/lib/sj3core/cl2knj.c +++ b/lib/sj3core/cl2knj.c @@ -39,16 +39,16 @@ static CLREC *nextrecblk(), *prevrecblk(); -static void initkbuf(u_char*); +static void initkbuf(SJ3_CONTEXT u_char*); -int cl2knj(u_char* yomi, int len, u_char* kouho) { +int cl2knj(SJ3_CONTEXT u_char* yomi, int len, u_char* kouho) { u_char* ptr1; u_char* ptr2; int i; khcount = nkhcount = 0; - initkbuf(kouho); + initkbuf(SJ3_CONTEXT_PASS kouho); if(len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2; @@ -66,36 +66,36 @@ int cl2knj(u_char* yomi, int len, u_char* kouho) { if(!hyomi[0]) return 0; - freework(); + freework(SJ3_CONTEXT_PASS2); inputyomi = orgyomi; cnvstart = ystart = hyomi; cnvlen = sstrlen(hyomi); - mkjiritu(0); + mkjiritu(SJ3_CONTEXT_PASS 0); - mkbunsetu(); + mkbunsetu(SJ3_CONTEXT_PASS2); - if(!maxclptr) wakachi(); + if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2); jrt1st = maxjptr; clt1st = maxclptr; - mkkouho(); + mkkouho(SJ3_CONTEXT_PASS2); - getrank(); + getrank(SJ3_CONTEXT_PASS2); selectid = 1; - cvtclknj(); + cvtclknj(SJ3_CONTEXT_PASS2); return hzstrlen(inputyomi, (int)clt1st->cllen); } -int nextcl(u_char* kouho, int mode) { +int nextcl(SJ3_CONTEXT u_char* kouho, int mode) { CLREC* clptr; - initkbuf(kouho); + initkbuf(SJ3_CONTEXT_PASS kouho); if(!khcount) return 0; @@ -105,20 +105,20 @@ int nextcl(u_char* kouho, int mode) { else if((mode < 2) && (clptr = nextrecblk())) { selectid = 1; clt1st = clptr; - mkkouho(); - getrank(); + mkkouho(SJ3_CONTEXT_PASS2); + getrank(SJ3_CONTEXT_PASS2); } else { - cvtclknj(); + cvtclknj(SJ3_CONTEXT_PASS2); return 0; } - cvtclknj(); + cvtclknj(SJ3_CONTEXT_PASS2); return hzstrlen(inputyomi, (int)clt1st->cllen); } static CLREC* -nextrecblk() { +nextrecblk(SJ3_CONTEXT2) { CLREC* clptr; int keeplen; @@ -132,10 +132,10 @@ nextrecblk() { return clptr; } -int prevcl(u_char* kouho, int mode) { +int prevcl(SJ3_CONTEXT u_char* kouho, int mode) { CLREC* clptr; - initkbuf(kouho); + initkbuf(SJ3_CONTEXT_PASS kouho); if(!khcount) return 0; @@ -144,21 +144,21 @@ int prevcl(u_char* kouho, int mode) { else if((mode < 2) && (clptr = prevrecblk())) { clt1st = clptr; - mkkouho(); - getrank(); + mkkouho(SJ3_CONTEXT_PASS2); + getrank(SJ3_CONTEXT_PASS2); selectid = khcount; } else { - cvtclknj(); + cvtclknj(SJ3_CONTEXT_PASS2); return 0; } - cvtclknj(); + cvtclknj(SJ3_CONTEXT_PASS2); return hzstrlen(inputyomi, (int)clt1st->cllen); } static CLREC* -prevrecblk() { +prevrecblk(SJ3_CONTEXT2) { CLREC* clptr; CLREC* keepptr; int keeplen; @@ -182,11 +182,11 @@ prevrecblk() { } static void -initkbuf(u_char* kouho) { +initkbuf(SJ3_CONTEXT u_char* kouho) { kanjitmp = kouho; memset(kanjitmp, 0, sizeof(STDYOUT) + 1); } -int selectnum() { +int selectnum(SJ3_CONTEXT2) { return selectid; } diff --git a/lib/sj3core/clstudy.c b/lib/sj3core/clstudy.c index d3e4bf0..47095ab 100644 --- a/lib/sj3core/clstudy.c +++ b/lib/sj3core/clstudy.c @@ -37,10 +37,10 @@ #include "sj_kanakan.h" -static u_char *delcldata(u_char*), *srchclpos(u_char*); -static int delclold(); +static u_char *delcldata(SJ3_CONTEXT u_char*), *srchclpos(SJ3_CONTEXT u_char*); +static int delclold(SJ3_CONTEXT2); -int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { +int clstudy(SJ3_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { u_char ytmp[CLSTDY_TMPLEN]; u_char *dst, *ptr; int ret; @@ -56,7 +56,7 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN)) return CLSTUDYYOMIERR; - (void)delcldata(ytmp); + (void)delcldata(SJ3_CONTEXT_PASS ytmp); ret = CLSTUDYNORMEND; } else if(!stdy) @@ -77,15 +77,15 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA; - blen = CLSTUDYTAIL - delcldata(ytmp) - 1; + blen = CLSTUDYTAIL - delcldata(SJ3_CONTEXT_PASS ytmp) - 1; while(blen < alen) { - if(!(i = delclold())) break; + if(!(i = delclold(SJ3_CONTEXT_PASS2))) break; blen += i; } if(blen >= alen) { - dst = srchclpos(ytmp); + dst = srchclpos(SJ3_CONTEXT_PASS ytmp); ptr = CLSTUDYTAIL - alen; mvmemd(ptr, CLSTUDYTAIL, (ptr - dst)); @@ -99,14 +99,14 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { } else ret = CLSTUDYNOAREA; } - mkclidx(); - putcldic(); + mkclidx(SJ3_CONTEXT_PASS2); + putcldic(SJ3_CONTEXT_PASS2); return ret; } static u_char* -delcldata(u_char* ycode) { +delcldata(SJ3_CONTEXT u_char* ycode) { u_char* tagptr; u_char* ptr1; u_char* ptr2; @@ -125,7 +125,7 @@ delcldata(u_char* ycode) { len1--; } if(!*ptr1 || !len1) { - delclsub(tagptr); + delclsub(SJ3_CONTEXT_PASS tagptr); } else { tagptr = ClNextTag(tagptr); } @@ -134,7 +134,7 @@ delcldata(u_char* ycode) { return tagptr; } -void delclsub(u_char* target) { +void delclsub(SJ3_CONTEXT u_char* target) { u_char* src; int num; int tmp; @@ -164,7 +164,7 @@ void delclsub(u_char* target) { } static int -delclold() { +delclold(SJ3_CONTEXT2) { u_char* tagptr; u_char* target; int num; @@ -187,14 +187,14 @@ delclold() { if(target) { num = ClBlkLen(tagptr); - delclsub(target); + delclsub(SJ3_CONTEXT_PASS target); } return num; } static u_char* -srchclpos(u_char* ycode) { +srchclpos(SJ3_CONTEXT u_char* ycode) { u_char* tagptr; u_char* target; u_char* ptr1; @@ -234,7 +234,7 @@ srchclpos(u_char* ycode) { return target ? target : tagptr; } -void mkclidx() { +void mkclidx(SJ3_CONTEXT2) { u_char* ptr; int num; int st, ed; diff --git a/lib/sj3core/cvtclknj.c b/lib/sj3core/cvtclknj.c index d22b1a7..11e946d 100644 --- a/lib/sj3core/cvtclknj.c +++ b/lib/sj3core/cvtclknj.c @@ -37,7 +37,7 @@ #include "sj_kanakan.h" -void cvtclknj() { +void cvtclknj(SJ3_CONTEXT2) { KHREC* krec; int i; @@ -51,7 +51,7 @@ void cvtclknj() { krec++; } - setstyrec(krec); + setstyrec(SJ3_CONTEXT_PASS krec); - cvtkouho(krec); + cvtkouho(SJ3_CONTEXT_PASS krec); } diff --git a/lib/sj3core/cvtdict.c b/lib/sj3core/cvtdict.c index 6a9a147..c52fb4f 100644 --- a/lib/sj3core/cvtdict.c +++ b/lib/sj3core/cvtdict.c @@ -38,7 +38,7 @@ #include "sj_kanakan.h" -void cvtdict(KHREC* krec, CLREC* clrec, int flg) { +void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) { TypeDicOfs ofs; u_char* yptr; int jlen; @@ -96,7 +96,7 @@ void cvtdict(KHREC* krec, CLREC* clrec, int flg) { stblen = 0; } - else if((i = jrec->stbofs) && (fptr = getstb(jrec->hinsi))) { + else if((i = jrec->stbofs) && (fptr = getstb(SJ3_CONTEXT_PASS jrec->hinsi))) { fptr += i - 1; stblen = StbYomiLen(fptr); jlen -= stblen; @@ -107,11 +107,11 @@ void cvtdict(KHREC* krec, CLREC* clrec, int flg) { } if(ofs) { - if(seldict(jrec->dicid)) { + if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { (*curdict->getdic)(curdict, jrec->jseg); - get_askknj(); + get_askknj(SJ3_CONTEXT_PASS2); kanjitmp += - getkanji(yptr, jlen, dicbuf + ofs, kanjitmp); + getkanji(SJ3_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp); yptr += jlen * 2; } else { while(jlen-- > 0) { @@ -137,7 +137,7 @@ void cvtdict(KHREC* krec, CLREC* clrec, int flg) { } } -void cvtminasi(int len) { +void cvtminasi(SJ3_CONTEXT int len) { u_char* ptr; ptr = inputyomi; @@ -159,7 +159,7 @@ void cvtminasi(int len) { } } -void cvtwakachi(CLREC* clrec) { +void cvtwakachi(SJ3_CONTEXT CLREC* clrec) { int jlen; u_char* ym; int cnt; diff --git a/lib/sj3core/cvtkanji.c b/lib/sj3core/cvtkanji.c index 24d378c..b8995ca 100644 --- a/lib/sj3core/cvtkanji.c +++ b/lib/sj3core/cvtkanji.c @@ -37,7 +37,7 @@ #include "sj_kanakan.h" -void cvtphknj() { +void cvtphknj(SJ3_CONTEXT2) { int i, j; CLREC* clrec; CLREC* clkp; @@ -50,23 +50,23 @@ void cvtphknj() { clrec = clt1st; while(clrec) { - if(ph_khtbl(clrec)) clkp = clrec; + if(ph_khtbl(SJ3_CONTEXT_PASS clrec)) clkp = clrec; clrec = clrec->clsort; } if(clkp && stdytop) { if(stdytop->nmflg) - ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN*)0); + ph_setkouho(SJ3_CONTEXT_PASS clkp, (TypeDicOfs)0, (STDYIN*)0); } kouhotbl[0].rank = 1; kanjitmp = kanjibuf + 1; - setstyrec(kouhotbl); + setstyrec(SJ3_CONTEXT_PASS kouhotbl); - cvtkouho(kouhotbl); + cvtkouho(SJ3_CONTEXT_PASS kouhotbl); i = kanjitmp - kanjibuf; if(i < kanjilen) { @@ -91,14 +91,14 @@ not_enough_memory: free_jall(jrt1st); } -void cvtkouho(KHREC* krec) { +void cvtkouho(SJ3_CONTEXT KHREC* krec) { CLREC* clrec; clrec = krec->clrec; switch(clrec->jnode->class) { case C_DICT: - cvtdict(krec, clrec, FALSE); + cvtdict(SJ3_CONTEXT_PASS krec, clrec, FALSE); break; case C_N_ARABIA: @@ -111,23 +111,23 @@ void cvtkouho(KHREC* krec) { case C_N_KAZULONG: case C_N_KAZULCMA: case C_N_SUUJILONG: - cvtdict(krec, clrec, TRUE); + cvtdict(SJ3_CONTEXT_PASS krec, clrec, TRUE); break; case C_BUNSETU: case C_MINASI: - cvtminasi((int)clrec->cllen); + cvtminasi(SJ3_CONTEXT_PASS(int) clrec->cllen); break; case C_WAKACHI: - cvtwakachi(clrec); + cvtwakachi(SJ3_CONTEXT_PASS clrec); break; } *kanjitmp++ = 0; } -void setstyrec(KHREC* krec) { +void setstyrec(SJ3_CONTEXT KHREC* krec) { JREC* jrec; KHREC* kptr; int ii; @@ -162,7 +162,7 @@ void setstyrec(KHREC* krec) { stdy.sttfg = krec->sttfg; stdy.ka_fg = krec->ka_fg; - if(jrec->stbofs && (fptr = getstb(jrec->hinsi))) + if(jrec->stbofs && (fptr = getstb(SJ3_CONTEXT_PASS jrec->hinsi))) stdy.len -= StbYomiLen(fptr + jrec->stbofs - 1); if((fptr = Settou_ptr(jrec->sttofs))) diff --git a/lib/sj3core/deldic.c b/lib/sj3core/deldic.c index 860a178..1cf0b9c 100644 --- a/lib/sj3core/deldic.c +++ b/lib/sj3core/deldic.c @@ -38,12 +38,12 @@ #include "sj_kanakan.h" -static int del_douon(TypeDicSeg, u_char*, TypeDicOfs); -static int del_segment(TypeDicSeg); -static void del_uidx(TypeDicSeg); -static void del_stdy(TypeDicSeg, TypeDicOfs, int); +static int del_douon(SJ3_CONTEXT TypeDicSeg, u_char*, TypeDicOfs); +static int del_segment(SJ3_CONTEXT TypeDicSeg); +static void del_uidx(SJ3_CONTEXT TypeDicSeg); +static void del_stdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, int); -u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) { +u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) { u_char yptr[MAXWDYOMILEN + 1]; u_char kptr[MAXWDKANJILEN + 1]; u_short err; @@ -58,20 +58,20 @@ u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) { u_char * stp, *edp; int size, len; - if((err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))) + if((err = addel_arg(SJ3_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr)))) return err; if(!curdict->maxunit) return AD_NOTUSERDICT; - knjlen = cvtknj(yomi, kanji, kptr); + knjlen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr); cnvstart = yptr; cnvlen = sstrlen(yptr); - useg = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); + useg = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen); (*curdict->getdic)(curdict, useg); - if(!(dblknum = srchkana(&p1, &samlen))) return AD_NOMIDASI; + if(!(dblknum = srchkana(SJ3_CONTEXT_PASS & p1, &samlen))) return AD_NOMIDASI; if(!(hblknum = srchgram(p1, &p2, hinsi))) return AD_NOHINSI; @@ -80,14 +80,14 @@ u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) { if(*p3 == HINSIBLKTERM) return AD_NOKANJI; ofs = p3 - dicbuf; - edp = skipkstr(p3); + edp = skipkstr(SJ3_CONTEXT_PASS p3); if(kblknum == 1) { if(hblknum == 1) { if(dblknum == 1) { - return del_segment(useg); + return del_segment(SJ3_CONTEXT_PASS useg); } else { - return del_douon(useg, p1, ofs); + return del_douon(SJ3_CONTEXT_PASS useg, p1, ofs); } } else { stp = p2; @@ -110,13 +110,13 @@ u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) { (*curdict->putdic)(curdict, useg); - del_stdy(useg, ofs, size); + del_stdy(SJ3_CONTEXT_PASS useg, ofs, size); return AD_DONE; } static int -del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) { +del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) { u_char *nxt, *p1, *p2; int size; int nlen, plen, len; @@ -133,7 +133,7 @@ del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) { plen = getplen(nxt); if(ptr == segtop()) { - if(nlen + plen > (unsigned int)count_uidx() + sstrlen(get_idxptr(seg))) + if(nlen + plen > (unsigned int)count_uidx(SJ3_CONTEXT_PASS2) + sstrlen(get_idxptr(SJ3_CONTEXT_PASS seg))) return AD_OVFLWINDEX; } @@ -150,19 +150,19 @@ del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) { memset(dicbuf + curdict->seglen - size, DICSEGTERM, size); if(ptr == segtop()) { - chg_uidx(seg, ptr + DOUONBLKSIZENUMBER, nlen + len); + chg_uidx(SJ3_CONTEXT_PASS seg, ptr + DOUONBLKSIZENUMBER, nlen + len); } } (*curdict->putdic)(curdict, seg); - del_stdy(seg, ofs, size); + del_stdy(SJ3_CONTEXT_PASS seg, ofs, size); return AD_DONE; } static int -del_segment(TypeDicSeg seg) { +del_segment(SJ3_CONTEXT TypeDicSeg seg) { int i; STDYIN* styp; TypeDicID dicid; @@ -183,7 +183,7 @@ del_segment(TypeDicSeg seg) { (*curdict->rszdic)(curdict, curdict->segunit); - del_uidx(seg); + del_uidx(SJ3_CONTEXT_PASS seg); if(StudyExist()) { dicid = curdict->dicid; @@ -208,18 +208,18 @@ del_segment(TypeDicSeg seg) { for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++) if(styp->styno > stdynum) styp->styno -= 1; - putstydic(); + putstydic(SJ3_CONTEXT_PASS2); } return AD_DONE; } static void -del_uidx(TypeDicSeg seg) { +del_uidx(SJ3_CONTEXT TypeDicSeg seg) { u_char *p, *q; int len; - p = get_idxptr(seg); + p = get_idxptr(SJ3_CONTEXT_PASS seg); for(q = p; *q++;); mvmemi(q, p, idxbuf + curdict->idxlen - q); @@ -229,11 +229,11 @@ del_uidx(TypeDicSeg seg) { (*curdict->putidx)(curdict, 0); - mkidxtbl(curdict); + mkidxtbl(SJ3_CONTEXT_PASS curdict); } static void -del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) { +del_stdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) { int i; TypeStyNum stdynum; STDYIN* stdy; @@ -265,6 +265,6 @@ del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) { for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++) if(stdy->styno > stdynum) (stdy->styno)--; - putstydic(); + putstydic(SJ3_CONTEXT_PASS2); } } diff --git a/lib/sj3core/dict.c b/lib/sj3core/dict.c index cee6011..e893a96 100644 --- a/lib/sj3core/dict.c +++ b/lib/sj3core/dict.c @@ -38,7 +38,7 @@ #include "sj_kanakan.h" -void get_askknj() { +void get_askknj(SJ3_CONTEXT2) { u_char* p; u_char* q; u_char* r; @@ -68,7 +68,7 @@ void get_askknj() { } } -int seldict(TypeDicID id) { +int seldict(SJ3_CONTEXT TypeDicID id) { DICTL* dp; for(dp = dictlist; dp; dp = dp->next) { @@ -81,7 +81,7 @@ int seldict(TypeDicID id) { } u_char* -get_idxptr(TypeDicSeg seg) { +get_idxptr(SJ3_CONTEXT TypeDicSeg seg) { (*curdict->getofs)(curdict); (*curdict->getidx)(curdict); diff --git a/lib/sj3core/fuzoku.c b/lib/sj3core/fuzoku.c index 5e114bc..ed6b51e 100644 --- a/lib/sj3core/fuzoku.c +++ b/lib/sj3core/fuzoku.c @@ -74,7 +74,7 @@ fzkstrcmp(u_char* yptr, u_char* fzkp, int* saml) { return MATCH; } -void setclrec(JREC* jrec, u_char* yptr, TypeCnct right) { +void setclrec(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) { CLREC* new; TypeGram hinsi; int len; @@ -83,7 +83,7 @@ void setclrec(JREC* jrec, u_char* yptr, TypeCnct right) { if(len > MAXCLINPUTLEN) return; - if(!(new = argclrec(len))) return; + if(!(new = argclrec(SJ3_CONTEXT_PASS len))) return; new->jnode = jrec; new->gobiln = gobilen; @@ -165,7 +165,7 @@ fzkcnct(TypeCnct right, TypeCnct left) { } RECURS -void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) { +void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) { u_char* fzk; int len = 0; int cmp; @@ -177,11 +177,11 @@ void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) { if((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return; - if(terminate(right, yptr) && Chrtbl[*yptr] & FZK_KGU) { + if(terminate(SJ3_CONTEXT_PASS right, yptr) && Chrtbl[*yptr] & FZK_KGU) { if(!level) fzk_ka_flg = 0; yptr++; while(Chrtbl[*yptr] & FZK_KGU) yptr++; - setclrec(jrec, yptr, (TypeCnct)R_FZKKGU); + setclrec(SJ3_CONTEXT_PASS jrec, yptr, (TypeCnct)R_FZKKGU); return; } @@ -207,11 +207,11 @@ void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) { next = yptr + len; - if(terminate(rt = FzkRight(fzk), next)) { - setclrec(jrec, next, rt); + if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) { + setclrec(SJ3_CONTEXT_PASS jrec, next, rt); } - srchfzk(jrec, next, rt, level + 1); + srchfzk(SJ3_CONTEXT_PASS jrec, next, rt, level + 1); } if(len) return; @@ -246,10 +246,10 @@ void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) { next = yptr + len; - if(terminate(rt = FzkRight(fzk), next)) { - setclrec(jrec, next, rt); + if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) { + setclrec(SJ3_CONTEXT_PASS jrec, next, rt); } - srchfzk(jrec, next, rt, level + 1); + srchfzk(SJ3_CONTEXT_PASS jrec, next, rt, level + 1); } } diff --git a/lib/sj3core/getkanji.c b/lib/sj3core/getkanji.c index be8d93c..5d608ad 100644 --- a/lib/sj3core/getkanji.c +++ b/lib/sj3core/getkanji.c @@ -38,7 +38,7 @@ #include "sj_kanakan.h" -static u_char* code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg); +static u_char* code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg); u_char* getkan_none(u_char* s, u_char* d, u_char* ym, int yl, int flg) { @@ -92,13 +92,13 @@ getkan_kata(u_char* s, u_char* d, u_char* ym, int yl, int flg) { } u_char* -getkan_knj(u_char* s, u_char* d, u_char* ym, int yl, int flg) { - return code2kanji(askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg); +getkan_knj(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { + return code2kanji(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg); } u_char* -getkan_ofs(u_char* s, u_char* d, u_char* ym, int yl, int flg) { - return code2kanji(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), +getkan_ofs(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { + return code2kanji(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), d, ym, yl, flg); } @@ -131,7 +131,7 @@ getkan_ascii(u_char* s, u_char* d, u_char* ym, int yl, int flg) { } static u_char* -code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { +code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { int csize; for(;;) { @@ -147,7 +147,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { break; case OFFSETASSYUKU: - d = getkan_ofs(s, d, ym, yl, flg); + d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, flg); break; case AIATTRIBUTE: @@ -159,7 +159,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { break; case KANJIASSYUKU: - d = getkan_knj(s, d, ym, yl, flg); + d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, flg); break; default: @@ -177,7 +177,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { break; case OFFSETASSYUKU: - d = getkan_ofs(s, d, ym, yl, FALSE); + d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE); break; case AIATTRIBUTE: @@ -189,7 +189,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { break; case KANJIASSYUKU: - d = getkan_knj(s, d, ym, yl, FALSE); + d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE); break; default: @@ -202,10 +202,10 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) { return d; } -int getkanji(u_char* ym, int yl, u_char* ptr, u_char* buf) { +int getkanji(SJ3_CONTEXT u_char* ym, int yl, u_char* ptr, u_char* buf) { u_char* q; - q = code2kanji(ptr, buf, ym, yl, TRUE); + q = code2kanji(SJ3_CONTEXT_PASS ptr, buf, ym, yl, TRUE); return q - buf; } diff --git a/lib/sj3core/getrank.c b/lib/sj3core/getrank.c index c171faf..7f600f8 100644 --- a/lib/sj3core/getrank.c +++ b/lib/sj3core/getrank.c @@ -37,36 +37,36 @@ #include "sj_kanakan.h" -static void setstynum(), setnspr(KHREC*, STDYIN*), regetrank(); +static void setstynum(SJ3_CONTEXT2), setnspr(SJ3_CONTEXT KHREC*, STDYIN*), regetrank(SJ3_CONTEXT2); -void getrank() { +void getrank(SJ3_CONTEXT2) { trank = nrank = 1; - setstynum(); + setstynum(SJ3_CONTEXT_PASS2); - regetrank(); + regetrank(SJ3_CONTEXT_PASS2); } static void -setstynum() { +setstynum(SJ3_CONTEXT2) { KHREC* kptr; STDYIN* sptr; int count; for(kptr = kouhotbl, count = khcount; count--; kptr++) { - sptr = srchstdy(kptr->clrec->jnode->jseg, kptr->offs, + sptr = srchstdy(SJ3_CONTEXT_PASS kptr->clrec->jnode->jseg, kptr->offs, kptr->clrec->jnode->dicid); if(!sptr) continue; - setnspr(kptr, sptr); + setnspr(SJ3_CONTEXT_PASS kptr, sptr); } } static void -setnspr(KHREC* kptr, STDYIN* sptr) { +setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) { KHREC* ptr; int keepnm; TypeStyNum styno; @@ -122,7 +122,7 @@ setnspr(KHREC* kptr, STDYIN* sptr) { } static void -regetrank() { +regetrank(SJ3_CONTEXT2) { KHREC* kptr; int count; int tmp; diff --git a/lib/sj3core/global.c b/lib/sj3core/global.c index 4f6ae59..56b7712 100644 --- a/lib/sj3core/global.c +++ b/lib/sj3core/global.c @@ -46,10 +46,10 @@ #include "sj_kanakan.h" -Global* global_work_base; - +#ifdef SJ3_GLOBAL Global* work_base; STDY* stdy_base; +#endif int serv_errno; diff --git a/lib/sj3core/init.c b/lib/sj3core/init.c index e0f29b3..800f57a 100644 --- a/lib/sj3core/init.c +++ b/lib/sj3core/init.c @@ -37,7 +37,7 @@ #include "sj_kanakan.h" -void seg_count(DICT* dict) { +void seg_count(SJ3_CONTEXT DICT* dict) { u_char* p; u_char* q; TypeDicSeg segcnt = 0; @@ -56,7 +56,7 @@ void seg_count(DICT* dict) { dict->segunit = (segcnt == 0) ? 1 : segcnt; } -void mkidxtbl(DICT* dict) { +void mkidxtbl(SJ3_CONTEXT DICT* dict) { u_char* p; TypeDicSeg seg; @@ -74,7 +74,7 @@ void mkidxtbl(DICT* dict) { } } -void initwork() { +void initwork(SJ3_CONTEXT2) { jrt1st = jrt2nd = maxjptr = (JREC*)0; clt1st = clt2nd = maxclptr = (CLREC*)0; } diff --git a/lib/sj3core/memory.c b/lib/sj3core/memory.c index ea999e0..567c59d 100644 --- a/lib/sj3core/memory.c +++ b/lib/sj3core/memory.c @@ -67,7 +67,7 @@ JREC* free_jlst(JREC* p) { } CLREC* -free_clst(CLREC* p, int l) { +free_clst(SJ3_CONTEXT CLREC* p, int l) { CLREC* cpk; CLREC* cp; CLREC* cn; @@ -127,7 +127,7 @@ void free_jall(JREC* p) { } } -void freework() { +void freework(SJ3_CONTEXT2) { free_clall(maxclptr); clt1st = maxclptr = NULL; diff --git a/lib/sj3core/mk2claus.c b/lib/sj3core/mk2claus.c index 916380b..38b71dc 100644 --- a/lib/sj3core/mk2claus.c +++ b/lib/sj3core/mk2claus.c @@ -39,28 +39,28 @@ #include "sj_kanakan.h" static int -set2nd(CLREC* clrec) { +set2nd(SJ3_CONTEXT CLREC* clrec) { CLREC* rec2; - mkjiritu(DO_IKKATU | DO_CLSTUDY); + mkjiritu(SJ3_CONTEXT_PASS DO_IKKATU | DO_CLSTUDY); - mkbunsetu(); + mkbunsetu(SJ3_CONTEXT_PASS2); if(!maxclptr) { - wakachi(); + wakachi(SJ3_CONTEXT_PASS2); return clrec->cllen; } for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) { - if(terminate(rec2->right, cnvstart + rec2->cllen) != SHU) + if(terminate(SJ3_CONTEXT_PASS rec2->right, cnvstart + rec2->cllen) != SHU) break; } return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen); } -void mk2claus() { +void mk2claus(SJ3_CONTEXT2) { u_char* keepptr; int keeplen; CLREC* clrec; @@ -79,12 +79,12 @@ void mk2claus() { selcl = clt1st; if(selcl->right == R_FZKKGU) { - pritiny(); + pritiny(SJ3_CONTEXT_PASS2); return; } if(cnvlen == selcl->cllen) { - pritiny(); + pritiny(SJ3_CONTEXT_PASS2); return; } @@ -103,7 +103,7 @@ void mk2claus() { free_jall(maxjptr); } - save2ln = set2nd(clrec); + save2ln = set2nd(SJ3_CONTEXT_PASS clrec); count++; len = clrec->cllen; @@ -117,7 +117,7 @@ void mk2claus() { if(selcl->cl2len > clrec->cl2len) continue; - prty = priority(clrec) - prty2; + prty = priority(SJ3_CONTEXT_PASS clrec) - prty2; prty2++; diff --git a/lib/sj3core/mkbunset.c b/lib/sj3core/mkbunset.c index d751fa8..da08e22 100644 --- a/lib/sj3core/mkbunset.c +++ b/lib/sj3core/mkbunset.c @@ -38,7 +38,7 @@ #include "sj_kanakan.h" -void mkbunsetu() { +void mkbunsetu(SJ3_CONTEXT2) { JREC* jrec; TypeGram hinsi; u_char* cnj; @@ -56,7 +56,7 @@ void mkbunsetu() { while(jrec) { - if(jrec->stbofs && (cnj = getstb(jrec->hinsi))) + if(jrec->stbofs && (cnj = getstb(SJ3_CONTEXT_PASS jrec->hinsi))) hinsi = StbHinsi(cnj + jrec->stbofs - 1); else hinsi = jrec->hinsi; @@ -65,15 +65,15 @@ void mkbunsetu() { gobilen = 0; next = cnvstart + jrec->jlen; - if(terminate(right, next)) { + if(terminate(SJ3_CONTEXT_PASS right, next)) { fzk_ka_flg = 0; - setclrec(jrec, next, right); + setclrec(SJ3_CONTEXT_PASS jrec, next, right); } - srchfzk(jrec, next, right, 0); + srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0); } - else if((count = setconj(hinsi, jrec, crec))) { + else if((count = setconj(SJ3_CONTEXT_PASS hinsi, jrec, crec))) { for(i = count; i-- > 0;) { @@ -81,12 +81,12 @@ void mkbunsetu() { gobilen = crec[i].len; next = cnvstart + jrec->jlen + gobilen; - if(terminate(right, next)) { + if(terminate(SJ3_CONTEXT_PASS right, next)) { fzk_ka_flg = 0; - setclrec(jrec, next, right); + setclrec(SJ3_CONTEXT_PASS jrec, next, right); } - srchfzk(jrec, next, right, 0); + srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0); } } @@ -95,7 +95,7 @@ void mkbunsetu() { } CLREC* -argclrec(int len) { +argclrec(SJ3_CONTEXT int len) { CLREC* ptr; CLREC* rec; CLREC* child; diff --git a/lib/sj3core/mkjiritu.c b/lib/sj3core/mkjiritu.c index a26b8bf..751e703 100644 --- a/lib/sj3core/mkjiritu.c +++ b/lib/sj3core/mkjiritu.c @@ -38,9 +38,9 @@ #include "sj_kanakan.h" -static void dic_mu(int), dic_cl(); +static void dic_mu(SJ3_CONTEXT int), dic_cl(SJ3_CONTEXT2); -void mkjiritu(int mode) { +void mkjiritu(SJ3_CONTEXT int mode) { u_char chkind1; u_char chkind2; JREC* jrec; @@ -53,25 +53,25 @@ void mkjiritu(int mode) { chkind1 = Chrtbl[*cnvstart]; if(chkind1 & DICTOP) { - dic_mu(mode); + dic_mu(SJ3_CONTEXT_PASS mode); } - if(mode & DO_CLSTUDY) dic_cl(); + if(mode & DO_CLSTUDY) dic_cl(SJ3_CONTEXT_PASS2); - srchnum(); + srchnum(SJ3_CONTEXT_PASS2); - if(srchhead() && cnvlen != headlen) { + if(srchhead(SJ3_CONTEXT_PASS2) && cnvlen != headlen) { cnvstart += headlen; cnvlen -= headlen; chkind2 = Chrtbl[*cnvstart]; if(chkind2 & DICTOP) { - dic_mu(mode); + dic_mu(SJ3_CONTEXT_PASS mode); } if(headcode == SETTOU_DAI) { - srchnum(); + srchnum(SJ3_CONTEXT_PASS2); } cnvstart -= headlen; @@ -79,13 +79,13 @@ void mkjiritu(int mode) { } for(jrec = maxjptr; jrec; jrec = jrec->jsort) { - if((stb = getstb(jrec->hinsi))) - setubi(jrec, stb); + if((stb = getstb(SJ3_CONTEXT_PASS jrec->hinsi))) + setubi(SJ3_CONTEXT_PASS jrec, stb); } } static void -dic_mu(int mode) { +dic_mu(SJ3_CONTEXT int mode) { u_char* tagp; DICTL* dp; @@ -95,11 +95,11 @@ dic_mu(int mode) { dicsaml = 0; prevseg = -1; - while((tagp = srchdict(tagp))) setjrec(tagp, mode); + while((tagp = srchdict(SJ3_CONTEXT_PASS tagp))) setjrec(SJ3_CONTEXT_PASS tagp, mode); } } -JREC* argjrec(int len, JREC* rec) { +JREC* argjrec(SJ3_CONTEXT int len, JREC* rec) { JREC* ptr; JREC* jrec; JREC* child; @@ -156,7 +156,7 @@ JREC* argjrec(int len, JREC* rec) { } static void -dic_cl() { +dic_cl(SJ3_CONTEXT2) { u_char* p; u_short pos; int len; @@ -172,7 +172,7 @@ dic_cl() { if(cmp == MATCH) { if(!isdpnd(*(cnvstart + len))) { - setcrec(p); + setcrec(SJ3_CONTEXT_PASS p); } } diff --git a/lib/sj3core/mkkouho.c b/lib/sj3core/mkkouho.c index 87833a4..a6cb4aa 100644 --- a/lib/sj3core/mkkouho.c +++ b/lib/sj3core/mkkouho.c @@ -41,12 +41,12 @@ #include "sj_kanakan.h" -static void getkhtbl(CLREC*), cl_kanji(JREC*, CLREC*); -static int diffknj(JREC*, u_char*, int); -static void cl_numcmn(JREC*, CLREC*); -static u_char* makekan(u_char*, u_char*, int); +static void getkhtbl(SJ3_CONTEXT CLREC*), cl_kanji(SJ3_CONTEXT JREC*, CLREC*); +static int diffknj(SJ3_CONTEXT JREC*, u_char*, int); +static void cl_numcmn(SJ3_CONTEXT JREC*, CLREC*); +static u_char* makekan(SJ3_CONTEXT u_char*, u_char*, int); -void mkkouho() { +void mkkouho(SJ3_CONTEXT2) { CLREC* clrec; int keeplen; @@ -57,20 +57,20 @@ void mkkouho() { clrec = clt1st; do { - getkhtbl(clrec); + getkhtbl(SJ3_CONTEXT_PASS clrec); clrec = clrec->clsort; } while(clrec && (keeplen == clrec->cllen)); } static void -getkhtbl(CLREC* clrec) { +getkhtbl(SJ3_CONTEXT CLREC* clrec) { JREC* jrec; jrec = clrec->jnode; switch(jrec->class) { case C_DICT: - cl_kanji(jrec, clrec); + cl_kanji(SJ3_CONTEXT_PASS jrec, clrec); break; case C_N_ARABIA: case C_N_ARACMA: @@ -82,36 +82,36 @@ getkhtbl(CLREC* clrec) { case C_N_KAZULONG: case C_N_KAZULCMA: case C_N_SUUJILONG: - cl_numcmn(jrec, clrec); + cl_numcmn(SJ3_CONTEXT_PASS jrec, clrec); break; case C_BUNSETU: break; case C_MINASI: case C_WAKACHI: - setkouho(clrec, (TypeDicOfs)0, 0); + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, 0); break; } } static void -cl_kanji(JREC* jrec, CLREC* clrec) { +cl_kanji(SJ3_CONTEXT JREC* jrec, CLREC* clrec) { u_char* ptr; int kcount = khcount; - if(seldict(jrec->dicid)) { + if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { (*curdict->getdic)(curdict, jrec->jseg); ptr = dicbuf + jrec->jofsst + 1; - get_askknj(); + get_askknj(SJ3_CONTEXT_PASS2); while(*ptr != HINSIBLKTERM) { - if(diffknj(jrec, ptr, kcount)) { - setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0); + if(diffknj(SJ3_CONTEXT_PASS jrec, ptr, kcount)) { + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0); } - ptr = skipkstr(ptr); + ptr = skipkstr(SJ3_CONTEXT_PASS ptr); } } else { - setkouho(clrec, (TypeDicOfs)1, 0); + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, 0); } } @@ -132,12 +132,12 @@ makekan_1byte(u_char* s, u_char* d, int flg) { } u_char* -makekan_knj(u_char* s, u_char* d, int flg) { - return makekan(askknj[*s & KNJASSYUKUMASK], d, flg); +makekan_knj(SJ3_CONTEXT u_char* s, u_char* d, int flg) { + return makekan(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, flg); } -u_char* makekan_ofs(u_char* s, u_char* d, int flg) { - return makekan(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), +u_char* makekan_ofs(SJ3_CONTEXT u_char* s, u_char* d, int flg) { + return makekan(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), d, flg); } @@ -173,7 +173,7 @@ makekan_ascii(u_char* s, u_char* d, int flg) { } static u_char* -makekan(u_char* s, u_char* d, int flg) { +makekan(SJ3_CONTEXT u_char* s, u_char* d, int flg) { int csize; for(;;) { @@ -189,7 +189,7 @@ makekan(u_char* s, u_char* d, int flg) { break; case OFFSETASSYUKU: - d = makekan_ofs(s, d, flg); + d = makekan_ofs(SJ3_CONTEXT_PASS s, d, flg); break; case AIATTRIBUTE: @@ -201,7 +201,7 @@ makekan(u_char* s, u_char* d, int flg) { break; case KANJIASSYUKU: - d = makekan_knj(s, d, flg); + d = makekan_knj(SJ3_CONTEXT_PASS s, d, flg); break; default: @@ -219,7 +219,7 @@ makekan(u_char* s, u_char* d, int flg) { break; case OFFSETASSYUKU: - d = makekan_ofs(s, d, FALSE); + d = makekan_ofs(SJ3_CONTEXT_PASS s, d, FALSE); break; case AIATTRIBUTE: @@ -231,7 +231,7 @@ makekan(u_char* s, u_char* d, int flg) { break; case KANJIASSYUKU: - d = makekan_knj(s, d, FALSE); + d = makekan_knj(SJ3_CONTEXT_PASS s, d, FALSE); break; default: @@ -304,7 +304,7 @@ sameknj(u_char* p, u_char plen, u_char* q, u_char qlen) { #undef QEND static int -diffknj(JREC* jrec, u_char* ptr, int num) { +diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) { KHREC* kptr; JREC* jptr; int i; @@ -313,7 +313,7 @@ diffknj(JREC* jrec, u_char* ptr, int num) { if(jrec->hinsi == TANKANJI) return TRUE; - makekan(ptr, kbuf1, TRUE); + makekan(SJ3_CONTEXT_PASS ptr, kbuf1, TRUE); for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) { if((jptr = kptr->clrec->jnode) == jrec) @@ -331,7 +331,7 @@ diffknj(JREC* jrec, u_char* ptr, int num) { if(jptr->stbofs != jrec->stbofs) continue; - makekan(dicbuf + kptr->offs, kbuf2, TRUE); + makekan(SJ3_CONTEXT_PASS dicbuf + kptr->offs, kbuf2, TRUE); if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen)) return FALSE; @@ -388,7 +388,7 @@ int sel_sjmode(JREC* jrec) { } static void -cl_numcmn(JREC* jrec, CLREC* clrec) { +cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) { u_char* p; int i; u_short j; @@ -403,24 +403,24 @@ cl_numcmn(JREC* jrec, CLREC* clrec) { if(jrec->jofsst) { i = sel_sjmode(jrec); - if(seldict(jrec->dicid)) { + if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { (*curdict->getdic)(curdict, jrec->jseg); p = dicbuf + jrec->jofsst + 1; while(*p != HINSIBLKTERM) { - setkouho(clrec, (TypeDicOfs)(p - dicbuf), i); - p = skipkstr(p); + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i); + p = skipkstr(SJ3_CONTEXT_PASS p); } } else { - setkouho(clrec, (TypeDicOfs)1, i); + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, i); } } else { tbl = Selsjadrs(jrec->class - C_N_ARABIA); while((j = *tbl++) != SELNUMTERM) { if(!chrck_numtbl(jrec->flags, j)) continue; - setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j)); + setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, (int)SelNumFunc(j)); } } } diff --git a/lib/sj3core/mknumber.c b/lib/sj3core/mknumber.c index ef402d7..c936e3b 100644 --- a/lib/sj3core/mknumber.c +++ b/lib/sj3core/mknumber.c @@ -40,7 +40,7 @@ #include "sj_kanakan.h" static int -word2char(u_short wd, u_char* tbl, int keta, int flg) { +word2char(SJ3_CONTEXT u_short wd, u_char* tbl, int keta, int flg) { int mask; int num; u_char* src; @@ -72,7 +72,7 @@ word2char(u_short wd, u_char* tbl, int keta, int flg) { } static void -words2num(u_short* wd, u_char* tbl, int flgc) { +words2num(SJ3_CONTEXT u_short* wd, u_char* tbl, int flgc) { int i; int keta; int flg; @@ -87,7 +87,7 @@ words2num(u_short* wd, u_char* tbl, int flgc) { } for(i = NUMWORDBUF; i-- > 0;) { - flg = word2char(*(wd + i), tbl, keta, flg); + flg = word2char(SJ3_CONTEXT_PASS * (wd + i), tbl, keta, flg); if(keta) keta -= 4; } @@ -97,72 +97,72 @@ words2num(u_short* wd, u_char* tbl, int flgc) { } } -void num_type00(u_char* s1, u_char* s2, JREC* jrec) { +void num_type00(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num1tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num1tbl, FALSE); } -void num_type01(u_char* s1, u_char* s2, JREC* jrec) { +void num_type01(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num1tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num1tbl, FALSE); } -void num_type02(u_char* s1, u_char* s2, JREC* jrec) { +void num_type02(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num1tbl, TRUE); + words2num(SJ3_CONTEXT_PASS num, Num1tbl, TRUE); } -void num_type03(u_char* s1, u_char* s2, JREC* jrec) { +void num_type03(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num2tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num2tbl, FALSE); } -void num_type04(u_char* s1, u_char* s2, JREC* jrec) { +void num_type04(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num2tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num2tbl, FALSE); } -void num_type05(u_char* s1, u_char* s2, JREC* jrec) { +void num_type05(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num2tbl, TRUE); + words2num(SJ3_CONTEXT_PASS num, Num2tbl, TRUE); } -void num_type06(u_char* s1, u_char* s2, JREC* jrec) { +void num_type06(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num3tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num3tbl, FALSE); } -void num_type07(u_char* s1, u_char* s2, JREC* jrec) { +void num_type07(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - words2num(num, Num3tbl, FALSE); + words2num(SJ3_CONTEXT_PASS num, Num3tbl, FALSE); } static void -kan_num(u_short* wd, u_char* tbl1, u_char* tbl2) { +kan_num(SJ3_CONTEXT u_short* wd, u_char* tbl1, u_char* tbl2) { int ii; u_short tmp; int mask; @@ -217,23 +217,23 @@ kan_num(u_short* wd, u_char* tbl1, u_char* tbl2) { } } -void num_type08(u_char* s1, u_char* s2, JREC* jrec) { +void num_type08(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - kan_num(num, Num2tbl, Num4tbl); + kan_num(SJ3_CONTEXT_PASS num, Num2tbl, Num4tbl); } -void num_type09(u_char* s1, u_char* s2, JREC* jrec) { +void num_type09(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_short num[NUMWORDBUF]; - setwdnum(s1, (int)jrec->numlen, num); + setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - kan_num(num, Num3tbl, Num5tbl); + kan_num(SJ3_CONTEXT_PASS num, Num3tbl, Num5tbl); } -void num_type10(u_char* s1, u_char* s2, JREC* jrec) { +void num_type10(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { int i; for(i = jrec->numlen; i > 0; i--) { @@ -245,7 +245,7 @@ void num_type10(u_char* s1, u_char* s2, JREC* jrec) { } } -void num_type11(u_char* s1, u_char* s2, JREC* jrec) { +void num_type11(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { int i; int j; @@ -267,7 +267,7 @@ void num_type11(u_char* s1, u_char* s2, JREC* jrec) { } } -void num_type12(u_char* s1, u_char* s2, JREC* jrec) { +void num_type12(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { int i; int j; @@ -281,7 +281,7 @@ void num_type12(u_char* s1, u_char* s2, JREC* jrec) { } static void -num_kurai(u_char* p, int len, u_char* tbl) { +num_kurai(SJ3_CONTEXT u_char* p, int len, u_char* tbl) { int i; int j; u_char tmp; @@ -302,20 +302,20 @@ num_kurai(u_char* p, int len, u_char* tbl) { } } -void num_type13(u_char* s1, u_char* s2, JREC* jrec) { +void num_type13(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_char num[NUMKETALENGTH]; int len; - len = setucnum(s1, (int)jrec->numlen, num); + len = setucnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - num_kurai(num, len, Num1tbl); + num_kurai(SJ3_CONTEXT_PASS num, len, Num1tbl); } -void num_type14(u_char* s1, u_char* s2, JREC* jrec) { +void num_type14(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { u_char num[NUMKETALENGTH]; int len; - len = setucnum(s1, (int)jrec->numlen, num); + len = setucnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); - num_kurai(num, len, Num2tbl); + num_kurai(SJ3_CONTEXT_PASS num, len, Num2tbl); } diff --git a/lib/sj3core/peepdic.c b/lib/sj3core/peepdic.c index cc5e841..3337dbe 100644 --- a/lib/sj3core/peepdic.c +++ b/lib/sj3core/peepdic.c @@ -45,13 +45,13 @@ static void set_idxyomi(); static void cd2sjh_chr(u_char ch, u_char* dst); -int getusr(u_char* buf) { +int getusr(SJ3_CONTEXT u_char* buf) { int nlen; peepyomi[0] = peepknj[0] = peepgrm = 0; (*curdict->getdic)(curdict, peepidx = DICSEGBASE); - get_askknj(); + get_askknj(SJ3_CONTEXT_PASS2); peepdptr = segtop(); @@ -73,9 +73,9 @@ int getusr(u_char* buf) { return -1; } -int nextusr(u_char* buf) { +int nextusr(SJ3_CONTEXT u_char* buf) { (*curdict->getdic)(curdict, peepidx); - get_askknj(); + get_askknj(SJ3_CONTEXT_PASS2); if(next_kanji()) { set_kanji(); @@ -88,9 +88,9 @@ int nextusr(u_char* buf) { return 0; } -int prevusr(u_char* buf) { +int prevusr(SJ3_CONTEXT u_char* buf) { (*curdict->getdic)(curdict, peepidx); - get_askknj(); + get_askknj(SJ3_CONTEXT_PASS2); if(prev_kanji()) { set_kanji(); @@ -104,10 +104,10 @@ int prevusr(u_char* buf) { } static void -set_kanji() { +set_kanji(SJ3_CONTEXT2) { int len; - len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr), + len = getkanji(SJ3_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr), peepkptr, peepknj); *(peepknj + len) = 0; }