WIP multi-context support

This commit is contained in:
Nishi 2026-06-19 21:48:44 +09:00
commit d06b056f05
25 changed files with 440 additions and 417 deletions

View file

@ -154,4 +154,9 @@ typedef struct workarea {
Global global; Global global;
} WorkArea; } WorkArea;
typedef struct sj3context {
Global* work;
STDY* stdy;
} Sj3Context;
#endif #endif

View file

@ -36,9 +36,10 @@
#ifndef SJ_GLOBAL_H #ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H #define SJ_GLOBAL_H
extern Global* global_work_base; #if 0
extern Global* work_base; extern Global* work_base;
extern STDY* stdy_base; extern STDY* stdy_base;
extern int serv_errno; #endif
extern int serv_errno;
#endif #endif

View file

@ -31,6 +31,18 @@
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_struct.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: * NOTE:
* All of these funtions calling rule are not following * All of these funtions calling rule are not following
@ -39,17 +51,17 @@
*/ */
/* adddic.c */ /* adddic.c */
u_int adddic(u_char*, u_char*, TypeGram); u_int adddic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */ /* addelcmn.c */
void set_size(u_char*, int, int, int); void set_size(u_char*, int, int, int);
u_int addel_arg(u_char*, u_char*, TypeGram, u_char*, int); u_int addel_arg(SJ3_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(u_char*, u_char*, u_char*); int cvtknj(SJ3_CONTEXT u_char*, u_char*, u_char*);
int srchkana(u_char**, int*); int srchkana(SJ3_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram); int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int); int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(void); TypeIdxOfs count_uidx(SJ3_CONTEXT2);
void chg_uidx(TypeDicSeg, u_char*, int); void chg_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */ /* alloc.c */
JREC* alloc_jrec(void); JREC* alloc_jrec(void);
@ -64,15 +76,15 @@ int codesize(u_char);
extern u_char chrtbl[256]; extern u_char chrtbl[256];
/* cl2knj.c */ /* cl2knj.c */
int cl2knj(u_char*, int, u_char*); int cl2knj(SJ3_CONTEXT u_char*, int, u_char*);
int nextcl(u_char*, int); int nextcl(SJ3_CONTEXT u_char*, int);
int prevcl(u_char*, int); int prevcl(SJ3_CONTEXT u_char*, int);
int selectnum(void); int selectnum(SJ3_CONTEXT2);
/* clstudy.c */ /* clstudy.c */
int clstudy(u_char*, u_char*, STDYOUT*); int clstudy(SJ3_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(u_char*); void delclsub(SJ3_CONTEXT u_char*);
void mkclidx(void); void mkclidx(SJ3_CONTEXT2);
/* cmpstr.c */ /* cmpstr.c */
int cmpstr(u_char*, u_char*); int cmpstr(u_char*, u_char*);
@ -85,25 +97,25 @@ extern u_char connadr[];
extern u_char* rigtadr[]; extern u_char* rigtadr[];
/* cvtclknj.c */ /* cvtclknj.c */
void cvtclknj(void); void cvtclknj(SJ3_CONTEXT2);
/* cvtdict.c */ /* cvtdict.c */
void cvtdict(KHREC*, CLREC*, int); void cvtdict(SJ3_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(int); void cvtminasi(SJ3_CONTEXT int);
void cvtwakachi(CLREC*); void cvtwakachi(SJ3_CONTEXT CLREC*);
/* cvtkanji.c */ /* cvtkanji.c */
void cvtphknj(void); void cvtphknj(SJ3_CONTEXT2);
void cvtkouho(KHREC*); void cvtkouho(SJ3_CONTEXT KHREC*);
void setstyrec(KHREC*); void setstyrec(SJ3_CONTEXT KHREC*);
/* deldic.c */ /* deldic.c */
u_int deldic(u_char*, u_char*, TypeGram); u_int deldic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */ /* dict.c */
void get_askknj(void); void get_askknj(SJ3_CONTEXT2);
int seldict(TypeDicID); int seldict(SJ3_CONTEXT TypeDicID);
u_char* get_idxptr(TypeDicSeg); u_char* get_idxptr(SJ3_CONTEXT TypeDicSeg);
/* functbl.c */ /* functbl.c */
extern VFunc cvtnum_func[]; extern VFunc cvtnum_func[];
@ -112,8 +124,8 @@ extern IFunc setjrec_func[];
extern IFunc hiraknj_func[]; extern IFunc hiraknj_func[];
/* fuzoku.c */ /* fuzoku.c */
void setclrec(JREC*, u_char*, TypeCnct); void setclrec(SJ3_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(JREC*, u_char*, TypeCnct, int); RECURS void srchfzk(SJ3_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */ /* fzkyomi.c */
extern u_char* fzkadr[]; 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_none(u_char*, u_char*, u_char*, int, int);
u_char* getkan_hira(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_kata(u_char*, u_char*, u_char*, int, int);
u_char* getkan_knj(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(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_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(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 */ /* getrank.c */
void getrank(void); void getrank(SJ3_CONTEXT2);
/* hzstrlen.c */ /* hzstrlen.c */
int euc_codesize(u_char c); int euc_codesize(u_char c);
int hzstrlen(u_char*, int); int hzstrlen(u_char*, int);
/* init.c */ /* init.c */
void seg_count(DICT*); void seg_count(SJ3_CONTEXT DICT*);
void mkidxtbl(DICT*); void mkidxtbl(SJ3_CONTEXT DICT*);
void initwork(void); void initwork(SJ3_CONTEXT2);
/* istrcmp.c */ /* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int); int istrcmp(u_char*, u_char*, int, int);
@ -148,48 +160,48 @@ void sstrncpy(u_char*, u_char*, int);
/* memory.c */ /* memory.c */
JREC* free_jlst(JREC*); JREC* free_jlst(JREC*);
CLREC* free_clst(CLREC*, int); CLREC* free_clst(SJ3_CONTEXT CLREC*, int);
void free_clall(CLREC*); void free_clall(CLREC*);
void free_jall(JREC*); void free_jall(JREC*);
void freework(void); void freework(SJ3_CONTEXT2);
/* mk2claus.c */ /* mk2claus.c */
void mk2claus(void); void mk2claus(SJ3_CONTEXT2);
/* mkbunset.c */ /* mkbunset.c */
void mkbunsetu(void); void mkbunsetu(SJ3_CONTEXT2);
CLREC* argclrec(int); CLREC* argclrec(SJ3_CONTEXT int);
/* mkjiritu.c */ /* mkjiritu.c */
void mkjiritu(int); void mkjiritu(SJ3_CONTEXT int);
JREC* argjrec(int, JREC*); JREC* argjrec(SJ3_CONTEXT int, JREC*);
/* mkkouho.c */ /* mkkouho.c */
void mkkouho(void); void mkkouho(SJ3_CONTEXT2);
u_char* makekan_none(u_char*, u_char*, int); u_char* makekan_none(u_char*, u_char*, int);
u_char* makekan_1byte(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_knj(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(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_norm(u_char*, u_char*, int);
u_char* makekan_ascii(u_char*, u_char*, int); u_char* makekan_ascii(u_char*, u_char*, int);
int sel_sjmode(JREC*); int sel_sjmode(JREC*);
/* mknumber.c */ /* mknumber.c */
void num_type00(u_char*, u_char*, JREC*); void num_type00(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type01(u_char*, u_char*, JREC*); void num_type01(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type02(u_char*, u_char*, JREC*); void num_type02(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type03(u_char*, u_char*, JREC*); void num_type03(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type04(u_char*, u_char*, JREC*); void num_type04(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type05(u_char*, u_char*, JREC*); void num_type05(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type06(u_char*, u_char*, JREC*); void num_type06(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type07(u_char*, u_char*, JREC*); void num_type07(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type08(u_char*, u_char*, JREC*); void num_type08(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type09(u_char*, u_char*, JREC*); void num_type09(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type10(u_char*, u_char*, JREC*); void num_type10(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type11(u_char*, u_char*, JREC*); void num_type11(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type12(u_char*, u_char*, JREC*); void num_type12(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type13(u_char*, u_char*, JREC*); void num_type13(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type14(u_char*, u_char*, JREC*); void num_type14(SJ3_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */ /* mvmemd.c */
void mvmemd(u_char*, u_char*, int); 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); void mvmemi(u_char*, u_char*, int);
/* peepdic.c */ /* peepdic.c */
int getusr(u_char*); int getusr(SJ3_CONTEXT u_char*);
int nextusr(u_char*); int nextusr(SJ3_CONTEXT u_char*);
int prevusr(u_char*); int prevusr(SJ3_CONTEXT u_char*);
/* ph2knj.c */ /* ph2knj.c */
int ph2knj(u_char*, u_char*, int); int ph2knj(SJ3_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */ /* ph_khtbl.c */
int ph_khtbl(CLREC*); int ph_khtbl(SJ3_CONTEXT CLREC*);
/* priority.c */ /* priority.c */
int priority(CLREC*); int priority(SJ3_CONTEXT CLREC*);
void pritiny(void); void pritiny(SJ3_CONTEXT2);
/* prtytbl.c */ /* prtytbl.c */
extern u_char taipri[7][45]; extern u_char taipri[7][45];
@ -220,83 +232,83 @@ extern u_char sttpri[5][31];
extern u_char kigou[]; extern u_char kigou[];
/* sdepend.c */ /* sdepend.c */
DictFile* opendict(char*, char*); DictFile* opendict(SJ3_CONTEXT char*, char*);
int closedict(DictFile*); int closedict(SJ3_CONTEXT DictFile*);
void lock_dict(DictFile*, int); void lock_dict(SJ3_CONTEXT DictFile*, int);
void unlock_dict(DictFile*, int); void unlock_dict(SJ3_CONTEXT DictFile*, int);
int is_dict_locked(DictFile*); int is_dict_locked(SJ3_CONTEXT DictFile*);
StdyFile* openstdy(char*, char*); StdyFile* openstdy(SJ3_CONTEXT char*, char*);
int closestdy(StdyFile*); int closestdy(SJ3_CONTEXT StdyFile*);
int putstydic(void); int putstydic(SJ3_CONTEXT2);
int putcldic(void); int putcldic(SJ3_CONTEXT2);
int makedict(char*, int, int, int); int makedict(SJ3_CONTEXT char*, int, int, int);
int makestdy(char*, int, int, int); int makestdy(SJ3_CONTEXT char*, int, int, int);
void sj_closeall(void); void sj_closeall(SJ3_CONTEXT2);
int set_dictpass(DictFile*, char*); int set_dictpass(SJ3_CONTEXT DictFile*, char*);
int set_stdypass(char*); int set_stdypass(SJ3_CONTEXT char*);
int set_dictcmnt(DictFile*, char*); int set_dictcmnt(SJ3_CONTEXT DictFile*, char*);
int set_stdycmnt(char*); int set_stdycmnt(SJ3_CONTEXT char*);
int get_stdysize(int*, int*, int*); int get_stdysize(SJ3_CONTEXT int*, int*, int*);
/* selclrec.c */ /* selclrec.c */
void selclrec(void); void selclrec(SJ3_CONTEXT2);
/* selsuuji.c */ /* selsuuji.c */
extern u_short* selsjadrs[]; extern u_short* selsjadrs[];
/* setconj.c */ /* setconj.c */
int setconj(TypeGram, JREC*, CREC*); int setconj(SJ3_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */ /* setjrec.c */
int setj_atrb(u_char*); int setj_atrb(SJ3_CONTEXT u_char*);
int setj_ofs(u_char*); int setj_ofs(SJ3_CONTEXT u_char*);
int setj_knj(u_char*); int setj_knj(SJ3_CONTEXT u_char*);
int setj_norm1(u_char*); int setj_norm1(SJ3_CONTEXT u_char*);
int setj_norm2(u_char*); int setj_norm2(SJ3_CONTEXT u_char*);
int setj_norm3(u_char*); /* unused??? */ int setj_norm3(SJ3_CONTEXT u_char*); /* unused??? */
void setjrec(u_char*, int); void setjrec(SJ3_CONTEXT u_char*, int);
void setnumrec(u_char*, JREC*, TypeGram); void setnumrec(SJ3_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(u_char*); void setcrec(SJ3_CONTEXT u_char*);
/* setkouho.c */ /* setkouho.c */
void setkouho(CLREC*, TypeDicOfs, int); void setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(CLREC*, TypeDicOfs, STDYIN*); void ph_setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(u_char*, int*); int hiraknj_atrb(SJ3_CONTEXT u_char*, int*);
int hiraknj_ofs(u_char*, int*); int hiraknj_ofs(SJ3_CONTEXT u_char*, int*);
int hiraknj_knj(u_char*, int*); int hiraknj_knj(SJ3_CONTEXT u_char*, int*);
int hiraknj_hask(u_char*, int*); int hiraknj_hask(SJ3_CONTEXT u_char*, int*);
int hiraknj_kask(u_char*, int*); int hiraknj_kask(SJ3_CONTEXT u_char*, int*);
int hiraknj_norm(u_char*, int*); int hiraknj_norm(SJ3_CONTEXT u_char*, int*);
int hiraknj_hira(u_char*, int*); int hiraknj_hira(SJ3_CONTEXT u_char*, int*);
/* setubi.c */ /* setubi.c */
u_char* getstb(TypeGram); u_char* getstb(SJ3_CONTEXT TypeGram);
void setubi(JREC*, u_char*); void setubi(SJ3_CONTEXT JREC*, u_char*);
/* sj2code.c */ /* sj2code.c */
int sj2cd_chr(u_char*, u_char*); int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int); int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */ /* skiphblk.c */
u_char* skiphblk(u_char*); u_char* skiphblk(SJ3_CONTEXT u_char*);
/* skipkstr.c */ /* skipkstr.c */
u_char* skipkstr(u_char*); u_char* skipkstr(SJ3_CONTEXT u_char*);
/* srchdict.c */ /* srchdict.c */
int yomicmp(u_char*, u_char*, u_char*); int yomicmp(SJ3_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(u_char*); u_char* srchdict(SJ3_CONTEXT u_char*);
/* srchhead.c */ /* srchhead.c */
int srchhead(void); int srchhead(SJ3_CONTEXT2);
/* srchidx.c */ /* srchidx.c */
TypeDicSeg srchidx(TypeDicSeg, int); TypeDicSeg srchidx(SJ3_CONTEXT TypeDicSeg, int);
/* srchnum.c*/ /* srchnum.c*/
void srchnum(void); void srchnum(SJ3_CONTEXT2);
void setwdnum(u_char*, int, u_short*); void setwdnum(SJ3_CONTEXT u_char*, int, u_short*);
int setucnum(u_char*, int, u_char*); int setucnum(SJ3_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */ /* sstrcmp.c */
int sstrcmp(u_char*, u_char*); int sstrcmp(u_char*, u_char*);
@ -305,7 +317,7 @@ int sstrcmp(u_char*, u_char*);
int sstrlen(u_char*); int sstrlen(u_char*);
/* sstrncmp.c */ /* sstrncmp.c */
int sstrncmp(u_char*, u_char* dst, int); int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */ /* stbtbl.c */
extern u_char* stbadr[]; extern u_char* stbadr[];
@ -315,8 +327,8 @@ extern u_char* settou_ptr[];
extern u_char scncttbl[2][24]; extern u_char scncttbl[2][24];
/* study.c */ /* study.c */
int study(STDYOUT*); int study(SJ3_CONTEXT STDYOUT*);
STDYIN* srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID); STDYIN* srchstdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* suujitbl.c */ /* suujitbl.c */
extern u_char suuji_tbl[]; extern u_char suuji_tbl[];
@ -330,12 +342,12 @@ extern u_char num5tbl[];
extern u_char num6tbl[]; extern u_char num6tbl[];
/* terminat.c */ /* terminat.c */
int terminate(TypeCnct, u_char*); int terminate(SJ3_CONTEXT TypeCnct, u_char*);
/* termtbl.c */ /* termtbl.c */
extern u_char termtbl[]; extern u_char termtbl[];
/* wakachi.c */ /* wakachi.c */
void wakachi(void); void wakachi(SJ3_CONTEXT2);
#endif /* KANAKAN_H */ #endif /* KANAKAN_H */

View file

@ -118,8 +118,13 @@
#define setnspr Jsetnspr #define setnspr Jsetnspr
#define regetrank Jregetrank #define regetrank Jregetrank
#ifdef SJ3_GLOBAL
#define work_base Jwork_base #define work_base Jwork_base
#define stdy_base Jstdy_base #define stdy_base Jstdy_base
#else
#define work_base (ctx->work)
#define stdy_base (ctx->stdy)
#endif
#define maxjptr (work_base->Jmaxjptr) #define maxjptr (work_base->Jmaxjptr)
#define maxclptr (work_base->Jmaxclptr) #define maxclptr (work_base->Jmaxclptr)

View file

@ -41,13 +41,13 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void sprt_seg(TypeDicSeg, TypeDicOfs); static void sprt_seg(SJ3_CONTEXT TypeDicSeg, TypeDicOfs);
static void apnd_uidx(TypeDicSeg, u_char*, int); static void apnd_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int);
static int cal_nextym(u_char*); static int cal_nextym(SJ3_CONTEXT u_char*);
static int usr_freelen(); static int usr_freelen(SJ3_CONTEXT2);
static u_int checkdict(u_char*, TypeGram); 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_int err;
u_char yptr[MAXWDYOMILEN + 1]; u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1]; u_char kptr[MAXWDKANJILEN + 1];
@ -73,20 +73,20 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
STDYIN* stdy; STDYIN* stdy;
STDYOUT stdydat; 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; return err;
inputyomi = yomi; inputyomi = yomi;
cnvstart = ystart = yptr; cnvstart = ystart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
if((err = checkdict(kanji, hinsi))) if((err = checkdict(SJ3_CONTEXT_PASS kanji, hinsi)))
return err; return err;
if(!curdict->maxunit) if(!curdict->maxunit)
return AD_NOTUSERDICT; 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; 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) if(newsiz > curdict->seglen)
return AD_OVFLWDOUBLK; return AD_OVFLWDOUBLK;
segnum = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); segnum = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
for(;;) { for(;;) {
(*curdict->getdic)(curdict, segnum); (*curdict->getdic)(curdict, segnum);
i = srchkana(&p1, &saml); i = srchkana(SJ3_CONTEXT_PASS & p1, &saml);
dstofs = douofs = p1 - dicbuf; dstofs = douofs = p1 - dicbuf;
hnsofs = knjofs = 0; hnsofs = knjofs = 0;
if(i) { if(i) {
@ -120,7 +120,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
nlen = cnvlen - saml; nlen = cnvlen - saml;
newsiz = DOUONBLKSIZENUMBER + nlen; newsiz = DOUONBLKSIZENUMBER + nlen;
nxtask = cal_nextym(p1); nxtask = cal_nextym(SJ3_CONTEXT_PASS p1);
} else { } else {
oldsiz = newsiz = getsize(p1); oldsiz = newsiz = getsize(p1);
nxtask = 0; nxtask = 0;
@ -129,7 +129,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
newsiz += (klen != 0 ? klen + 1 : 0); newsiz += (klen != 0 ? klen + 1 : 0);
fresiz = usr_freelen(); fresiz = usr_freelen(SJ3_CONTEXT_PASS2);
if((unsigned int)(newsiz - oldsiz - nxtask) <= if((unsigned int)(newsiz - oldsiz - nxtask) <=
(unsigned int)fresiz) break; (unsigned int)fresiz) break;
@ -142,7 +142,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(curdict->segunit >= curdict->maxunit) if(curdict->segunit >= curdict->maxunit)
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
freidx = count_uidx(); freidx = count_uidx(SJ3_CONTEXT_PASS2);
if((unsigned int)(douofs + newsiz) <= curdict->seglen) { if((unsigned int)(douofs + newsiz) <= curdict->seglen) {
if(hnsofs) if(hnsofs)
@ -156,7 +156,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((*curdict->putdic)(curdict, curdict->segunit)) if((*curdict->putdic)(curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(segnum, pos); sprt_seg(SJ3_CONTEXT_PASS segnum, pos);
nxtask = 0; nxtask = 0;
break; break;
@ -175,7 +175,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
dicbuf[0] = 0; dicbuf[0] = 0;
(*curdict->putdic)(curdict, curdict->segunit - 1); (*curdict->putdic)(curdict, curdict->segunit - 1);
(*curdict->rszdic)(curdict, curdict->segunit); (*curdict->rszdic)(curdict, curdict->segunit);
mkidxtbl(curdict); mkidxtbl(SJ3_CONTEXT_PASS curdict);
segnum++; segnum++;
} else { } else {
@ -186,7 +186,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((*curdict->putdic)(curdict, curdict->segunit)) if((*curdict->putdic)(curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(segnum, douofs); sprt_seg(SJ3_CONTEXT_PASS segnum, douofs);
segnum++; segnum++;
} }
@ -220,7 +220,7 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(!hnsofs) { if(!hnsofs) {
if(douofs == segtop() - dicbuf) { if(douofs == segtop() - dicbuf) {
chg_uidx(segnum, yptr, cnvlen); chg_uidx(SJ3_CONTEXT_PASS segnum, yptr, cnvlen);
} }
*dstptr = 0; *dstptr = 0;
@ -275,9 +275,9 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
err = sstrncmp(yptr, (u_char*)ClYomiPos(p1), err = sstrncmp(yptr, (u_char*)ClYomiPos(p1),
(int)ClYomiLen(p1)); (int)ClYomiLen(p1));
if(err == MATCH) { if(err == MATCH) {
delclsub(p1); delclsub(SJ3_CONTEXT_PASS p1);
mkclidx(); mkclidx(SJ3_CONTEXT_PASS2);
putcldic(); putcldic(SJ3_CONTEXT_PASS2);
break; break;
} else if(err == OVER) } else if(err == OVER)
break; break;
@ -295,13 +295,13 @@ u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
stdydat.sttlen = 0; stdydat.sttlen = 0;
stdydat.sttfg = 0; stdydat.sttfg = 0;
stdydat.ka_fg = 0; stdydat.ka_fg = 0;
(void)study(&stdydat); (void)study(SJ3_CONTEXT_PASS & stdydat);
return AD_DONE; return AD_DONE;
} }
static int static int
checksub(u_char* kanji, TypeGram grm) { checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
u_char* tagp; u_char* tagp;
u_char* ptr; u_char* ptr;
u_char* endp; u_char* endp;
@ -313,7 +313,7 @@ checksub(u_char* kanji, TypeGram grm) {
dicsaml = 0; dicsaml = 0;
prevseg = (TypeDicSeg)-1; prevseg = (TypeDicSeg)-1;
for(;;) { for(;;) {
if(!(tagp = srchdict(tagp))) if(!(tagp = srchdict(SJ3_CONTEXT_PASS tagp)))
return 0; return 0;
if(cnvlen == getnlen(tagp) + getplen(tagp)) if(cnvlen == getnlen(tagp) + getplen(tagp))
break; break;
@ -330,12 +330,12 @@ checksub(u_char* kanji, TypeGram grm) {
flg = (grm == *ptr++); flg = (grm == *ptr++);
while(*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if(flg) { if(flg) {
buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0; buf[getkanji(SJ3_CONTEXT_PASS inputyomi, cnvlen, ptr, buf)] = 0;
if(cmpstr(kanji, buf)) if(cmpstr(kanji, buf))
return -1; return -1;
} }
dounum++; dounum++;
ptr = skipkstr(ptr); ptr = skipkstr(SJ3_CONTEXT_PASS ptr);
} }
ptr++; ptr++;
@ -345,7 +345,7 @@ checksub(u_char* kanji, TypeGram grm) {
} }
static u_int static u_int
checkdict(u_char* kanji, TypeGram grm) { checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
DICTL* dp; DICTL* dp;
int dounum = 0; int dounum = 0;
int tmp; int tmp;
@ -356,7 +356,7 @@ checkdict(u_char* kanji, TypeGram grm) {
curdict = dp->dict; curdict = dp->dict;
if((tmp = checksub(kanji, grm)) < 0) { if((tmp = checksub(SJ3_CONTEXT_PASS kanji, grm)) < 0) {
curdict = tmpdict; curdict = tmpdict;
return AD_AREXIST; return AD_AREXIST;
} }
@ -372,7 +372,7 @@ checkdict(u_char* kanji, TypeGram grm) {
} }
static int static int
cal_nextym(u_char* ptr) { cal_nextym(SJ3_CONTEXT u_char* ptr) {
int count = 0; int count = 0;
u_char* src; u_char* src;
int len; int len;
@ -394,7 +394,7 @@ cal_nextym(u_char* ptr) {
} }
static int static int
usr_freelen() { usr_freelen(SJ3_CONTEXT2) {
u_char* ptr; u_char* ptr;
ptr = segtop(); ptr = segtop();
@ -405,7 +405,7 @@ usr_freelen() {
} }
static void static void
sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) { sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
TypeDicSeg s; TypeDicSeg s;
u_char* pos; u_char* pos;
u_char* p; u_char* p;
@ -441,7 +441,7 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) {
nlen = getnlen(pos); nlen = getnlen(pos);
ylen = (i = getplen(pos)) + (j = nlen); 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); set_size(segtop(), getsize(pos) + i, 0, ylen);
@ -479,11 +479,11 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) {
} }
static void 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* p;
u_char* q; u_char* q;
p = get_idxptr(seg); p = get_idxptr(SJ3_CONTEXT_PASS seg);
while(*p++); while(*p++);
q = idxbuf + curdict->idxlen; q = idxbuf + curdict->idxlen;
@ -495,5 +495,5 @@ apnd_uidx(TypeDicSeg seg, u_char* yomi, int len) {
(*curdict->putidx)(curdict, 0); (*curdict->putidx)(curdict, 0);
mkidxtbl(curdict); mkidxtbl(SJ3_CONTEXT_PASS curdict);
} }

View file

@ -112,7 +112,7 @@ isgrm(TypeGram gram) {
return FALSE; 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; u_short err = 0;
if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI; if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI;
@ -174,7 +174,7 @@ last_strcmp(u_char* src, u_char* dst) {
return (dlen / 2); 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]; u_char kana[MAXWDYOMILEN * 2 + 1];
int len; int len;
u_char* keep; u_char* keep;
@ -229,7 +229,7 @@ int cvtknj(u_char* yomi, u_char* knj, u_char* dst) {
return (dst - keep); return (dst - keep);
} }
int srchkana(u_char** ptr, int* saml) { int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) {
u_char* p; u_char* p;
int cmp; int cmp;
int cnt = 0; int cnt = 0;
@ -242,7 +242,7 @@ int srchkana(u_char** ptr, int* saml) {
while(!segend(p)) { while(!segend(p)) {
if(flg == 0) { if(flg == 0) {
cmp = yomicmp(cnvstart, p, &same); cmp = yomicmp(SJ3_CONTEXT_PASS cnvstart, p, &same);
if(cmp == OVER) break; if(cmp == OVER) break;
if(cmp == MATCH && *(cnvstart + same) == 0) { if(cmp == MATCH && *(cnvstart + same) == 0) {
@ -321,20 +321,20 @@ int srchkanji(u_char** dst, u_char* knj, int klen) {
} }
TypeIdxOfs TypeIdxOfs
count_uidx() { count_uidx(SJ3_CONTEXT2) {
u_char* p; u_char* p;
p = get_idxptr(curdict->segunit - 1); p = get_idxptr(SJ3_CONTEXT_PASS curdict->segunit - 1);
while(*p++); while(*p++);
return (curdict->idxlen - (p - idxbuf)); 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; u_char *p, *q;
int olen; int olen;
p = get_idxptr(seg); p = get_idxptr(SJ3_CONTEXT_PASS seg);
olen = sstrlen(p); olen = sstrlen(p);
@ -349,5 +349,5 @@ void chg_uidx(TypeDicSeg seg, u_char* yomi, int len) {
(*curdict->putidx)(curdict, 0); (*curdict->putidx)(curdict, 0);
mkidxtbl(curdict); mkidxtbl(SJ3_CONTEXT_PASS curdict);
} }

View file

@ -39,16 +39,16 @@
static CLREC *nextrecblk(), *prevrecblk(); 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* ptr1;
u_char* ptr2; u_char* ptr2;
int i; int i;
khcount = nkhcount = 0; khcount = nkhcount = 0;
initkbuf(kouho); initkbuf(SJ3_CONTEXT_PASS kouho);
if(len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2; 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; if(!hyomi[0]) return 0;
freework(); freework(SJ3_CONTEXT_PASS2);
inputyomi = orgyomi; inputyomi = orgyomi;
cnvstart = ystart = hyomi; cnvstart = ystart = hyomi;
cnvlen = sstrlen(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; jrt1st = maxjptr;
clt1st = maxclptr; clt1st = maxclptr;
mkkouho(); mkkouho(SJ3_CONTEXT_PASS2);
getrank(); getrank(SJ3_CONTEXT_PASS2);
selectid = 1; selectid = 1;
cvtclknj(); cvtclknj(SJ3_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
int nextcl(u_char* kouho, int mode) { int nextcl(SJ3_CONTEXT u_char* kouho, int mode) {
CLREC* clptr; CLREC* clptr;
initkbuf(kouho); initkbuf(SJ3_CONTEXT_PASS kouho);
if(!khcount) return 0; if(!khcount) return 0;
@ -105,20 +105,20 @@ int nextcl(u_char* kouho, int mode) {
else if((mode < 2) && (clptr = nextrecblk())) { else if((mode < 2) && (clptr = nextrecblk())) {
selectid = 1; selectid = 1;
clt1st = clptr; clt1st = clptr;
mkkouho(); mkkouho(SJ3_CONTEXT_PASS2);
getrank(); getrank(SJ3_CONTEXT_PASS2);
} else { } else {
cvtclknj(); cvtclknj(SJ3_CONTEXT_PASS2);
return 0; return 0;
} }
cvtclknj(); cvtclknj(SJ3_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
nextrecblk() { nextrecblk(SJ3_CONTEXT2) {
CLREC* clptr; CLREC* clptr;
int keeplen; int keeplen;
@ -132,10 +132,10 @@ nextrecblk() {
return clptr; return clptr;
} }
int prevcl(u_char* kouho, int mode) { int prevcl(SJ3_CONTEXT u_char* kouho, int mode) {
CLREC* clptr; CLREC* clptr;
initkbuf(kouho); initkbuf(SJ3_CONTEXT_PASS kouho);
if(!khcount) return 0; if(!khcount) return 0;
@ -144,21 +144,21 @@ int prevcl(u_char* kouho, int mode) {
else if((mode < 2) && (clptr = prevrecblk())) { else if((mode < 2) && (clptr = prevrecblk())) {
clt1st = clptr; clt1st = clptr;
mkkouho(); mkkouho(SJ3_CONTEXT_PASS2);
getrank(); getrank(SJ3_CONTEXT_PASS2);
selectid = khcount; selectid = khcount;
} else { } else {
cvtclknj(); cvtclknj(SJ3_CONTEXT_PASS2);
return 0; return 0;
} }
cvtclknj(); cvtclknj(SJ3_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
prevrecblk() { prevrecblk(SJ3_CONTEXT2) {
CLREC* clptr; CLREC* clptr;
CLREC* keepptr; CLREC* keepptr;
int keeplen; int keeplen;
@ -182,11 +182,11 @@ prevrecblk() {
} }
static void static void
initkbuf(u_char* kouho) { initkbuf(SJ3_CONTEXT u_char* kouho) {
kanjitmp = kouho; kanjitmp = kouho;
memset(kanjitmp, 0, sizeof(STDYOUT) + 1); memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
} }
int selectnum() { int selectnum(SJ3_CONTEXT2) {
return selectid; return selectid;
} }

View file

@ -37,10 +37,10 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char *delcldata(u_char*), *srchclpos(u_char*); static u_char *delcldata(SJ3_CONTEXT u_char*), *srchclpos(SJ3_CONTEXT u_char*);
static int delclold(); 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 ytmp[CLSTDY_TMPLEN];
u_char *dst, *ptr; u_char *dst, *ptr;
int ret; int ret;
@ -56,7 +56,7 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN)) if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
return CLSTUDYYOMIERR; return CLSTUDYYOMIERR;
(void)delcldata(ytmp); (void)delcldata(SJ3_CONTEXT_PASS ytmp);
ret = CLSTUDYNORMEND; ret = CLSTUDYNORMEND;
} else if(!stdy) } else if(!stdy)
@ -77,15 +77,15 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA; if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA;
blen = CLSTUDYTAIL - delcldata(ytmp) - 1; blen = CLSTUDYTAIL - delcldata(SJ3_CONTEXT_PASS ytmp) - 1;
while(blen < alen) { while(blen < alen) {
if(!(i = delclold())) break; if(!(i = delclold(SJ3_CONTEXT_PASS2))) break;
blen += i; blen += i;
} }
if(blen >= alen) { if(blen >= alen) {
dst = srchclpos(ytmp); dst = srchclpos(SJ3_CONTEXT_PASS ytmp);
ptr = CLSTUDYTAIL - alen; ptr = CLSTUDYTAIL - alen;
mvmemd(ptr, CLSTUDYTAIL, (ptr - dst)); mvmemd(ptr, CLSTUDYTAIL, (ptr - dst));
@ -99,14 +99,14 @@ int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
} else } else
ret = CLSTUDYNOAREA; ret = CLSTUDYNOAREA;
} }
mkclidx(); mkclidx(SJ3_CONTEXT_PASS2);
putcldic(); putcldic(SJ3_CONTEXT_PASS2);
return ret; return ret;
} }
static u_char* static u_char*
delcldata(u_char* ycode) { delcldata(SJ3_CONTEXT u_char* ycode) {
u_char* tagptr; u_char* tagptr;
u_char* ptr1; u_char* ptr1;
u_char* ptr2; u_char* ptr2;
@ -125,7 +125,7 @@ delcldata(u_char* ycode) {
len1--; len1--;
} }
if(!*ptr1 || !len1) { if(!*ptr1 || !len1) {
delclsub(tagptr); delclsub(SJ3_CONTEXT_PASS tagptr);
} else { } else {
tagptr = ClNextTag(tagptr); tagptr = ClNextTag(tagptr);
} }
@ -134,7 +134,7 @@ delcldata(u_char* ycode) {
return tagptr; return tagptr;
} }
void delclsub(u_char* target) { void delclsub(SJ3_CONTEXT u_char* target) {
u_char* src; u_char* src;
int num; int num;
int tmp; int tmp;
@ -164,7 +164,7 @@ void delclsub(u_char* target) {
} }
static int static int
delclold() { delclold(SJ3_CONTEXT2) {
u_char* tagptr; u_char* tagptr;
u_char* target; u_char* target;
int num; int num;
@ -187,14 +187,14 @@ delclold() {
if(target) { if(target) {
num = ClBlkLen(tagptr); num = ClBlkLen(tagptr);
delclsub(target); delclsub(SJ3_CONTEXT_PASS target);
} }
return num; return num;
} }
static u_char* static u_char*
srchclpos(u_char* ycode) { srchclpos(SJ3_CONTEXT u_char* ycode) {
u_char* tagptr; u_char* tagptr;
u_char* target; u_char* target;
u_char* ptr1; u_char* ptr1;
@ -234,7 +234,7 @@ srchclpos(u_char* ycode) {
return target ? target : tagptr; return target ? target : tagptr;
} }
void mkclidx() { void mkclidx(SJ3_CONTEXT2) {
u_char* ptr; u_char* ptr;
int num; int num;
int st, ed; int st, ed;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtclknj() { void cvtclknj(SJ3_CONTEXT2) {
KHREC* krec; KHREC* krec;
int i; int i;
@ -51,7 +51,7 @@ void cvtclknj() {
krec++; krec++;
} }
setstyrec(krec); setstyrec(SJ3_CONTEXT_PASS krec);
cvtkouho(krec); cvtkouho(SJ3_CONTEXT_PASS krec);
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtdict(KHREC* krec, CLREC* clrec, int flg) { void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
TypeDicOfs ofs; TypeDicOfs ofs;
u_char* yptr; u_char* yptr;
int jlen; int jlen;
@ -96,7 +96,7 @@ void cvtdict(KHREC* krec, CLREC* clrec, int flg) {
stblen = 0; 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; fptr += i - 1;
stblen = StbYomiLen(fptr); stblen = StbYomiLen(fptr);
jlen -= stblen; jlen -= stblen;
@ -107,11 +107,11 @@ void cvtdict(KHREC* krec, CLREC* clrec, int flg) {
} }
if(ofs) { if(ofs) {
if(seldict(jrec->dicid)) { if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(curdict, jrec->jseg); (*curdict->getdic)(curdict, jrec->jseg);
get_askknj(); get_askknj(SJ3_CONTEXT_PASS2);
kanjitmp += kanjitmp +=
getkanji(yptr, jlen, dicbuf + ofs, kanjitmp); getkanji(SJ3_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp);
yptr += jlen * 2; yptr += jlen * 2;
} else { } else {
while(jlen-- > 0) { 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; u_char* ptr;
ptr = inputyomi; ptr = inputyomi;
@ -159,7 +159,7 @@ void cvtminasi(int len) {
} }
} }
void cvtwakachi(CLREC* clrec) { void cvtwakachi(SJ3_CONTEXT CLREC* clrec) {
int jlen; int jlen;
u_char* ym; u_char* ym;
int cnt; int cnt;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtphknj() { void cvtphknj(SJ3_CONTEXT2) {
int i, j; int i, j;
CLREC* clrec; CLREC* clrec;
CLREC* clkp; CLREC* clkp;
@ -50,23 +50,23 @@ void cvtphknj() {
clrec = clt1st; clrec = clt1st;
while(clrec) { while(clrec) {
if(ph_khtbl(clrec)) clkp = clrec; if(ph_khtbl(SJ3_CONTEXT_PASS clrec)) clkp = clrec;
clrec = clrec->clsort; clrec = clrec->clsort;
} }
if(clkp && stdytop) { if(clkp && stdytop) {
if(stdytop->nmflg) if(stdytop->nmflg)
ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN*)0); ph_setkouho(SJ3_CONTEXT_PASS clkp, (TypeDicOfs)0, (STDYIN*)0);
} }
kouhotbl[0].rank = 1; kouhotbl[0].rank = 1;
kanjitmp = kanjibuf + 1; kanjitmp = kanjibuf + 1;
setstyrec(kouhotbl); setstyrec(SJ3_CONTEXT_PASS kouhotbl);
cvtkouho(kouhotbl); cvtkouho(SJ3_CONTEXT_PASS kouhotbl);
i = kanjitmp - kanjibuf; i = kanjitmp - kanjibuf;
if(i < kanjilen) { if(i < kanjilen) {
@ -91,14 +91,14 @@ not_enough_memory:
free_jall(jrt1st); free_jall(jrt1st);
} }
void cvtkouho(KHREC* krec) { void cvtkouho(SJ3_CONTEXT KHREC* krec) {
CLREC* clrec; CLREC* clrec;
clrec = krec->clrec; clrec = krec->clrec;
switch(clrec->jnode->class) { switch(clrec->jnode->class) {
case C_DICT: case C_DICT:
cvtdict(krec, clrec, FALSE); cvtdict(SJ3_CONTEXT_PASS krec, clrec, FALSE);
break; break;
case C_N_ARABIA: case C_N_ARABIA:
@ -111,23 +111,23 @@ void cvtkouho(KHREC* krec) {
case C_N_KAZULONG: case C_N_KAZULONG:
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
cvtdict(krec, clrec, TRUE); cvtdict(SJ3_CONTEXT_PASS krec, clrec, TRUE);
break; break;
case C_BUNSETU: case C_BUNSETU:
case C_MINASI: case C_MINASI:
cvtminasi((int)clrec->cllen); cvtminasi(SJ3_CONTEXT_PASS(int) clrec->cllen);
break; break;
case C_WAKACHI: case C_WAKACHI:
cvtwakachi(clrec); cvtwakachi(SJ3_CONTEXT_PASS clrec);
break; break;
} }
*kanjitmp++ = 0; *kanjitmp++ = 0;
} }
void setstyrec(KHREC* krec) { void setstyrec(SJ3_CONTEXT KHREC* krec) {
JREC* jrec; JREC* jrec;
KHREC* kptr; KHREC* kptr;
int ii; int ii;
@ -162,7 +162,7 @@ void setstyrec(KHREC* krec) {
stdy.sttfg = krec->sttfg; stdy.sttfg = krec->sttfg;
stdy.ka_fg = krec->ka_fg; 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); stdy.len -= StbYomiLen(fptr + jrec->stbofs - 1);
if((fptr = Settou_ptr(jrec->sttofs))) if((fptr = Settou_ptr(jrec->sttofs)))

View file

@ -38,12 +38,12 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int del_douon(TypeDicSeg, u_char*, TypeDicOfs); static int del_douon(SJ3_CONTEXT TypeDicSeg, u_char*, TypeDicOfs);
static int del_segment(TypeDicSeg); static int del_segment(SJ3_CONTEXT TypeDicSeg);
static void del_uidx(TypeDicSeg); static void del_uidx(SJ3_CONTEXT TypeDicSeg);
static void del_stdy(TypeDicSeg, TypeDicOfs, int); 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 yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1]; u_char kptr[MAXWDKANJILEN + 1];
u_short err; u_short err;
@ -58,20 +58,20 @@ u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_char * stp, *edp; u_char * stp, *edp;
int size, len; 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; return err;
if(!curdict->maxunit) return AD_NOTUSERDICT; if(!curdict->maxunit) return AD_NOTUSERDICT;
knjlen = cvtknj(yomi, kanji, kptr); knjlen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr);
cnvstart = yptr; cnvstart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
useg = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); useg = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
(*curdict->getdic)(curdict, useg); (*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; 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; if(*p3 == HINSIBLKTERM) return AD_NOKANJI;
ofs = p3 - dicbuf; ofs = p3 - dicbuf;
edp = skipkstr(p3); edp = skipkstr(SJ3_CONTEXT_PASS p3);
if(kblknum == 1) { if(kblknum == 1) {
if(hblknum == 1) { if(hblknum == 1) {
if(dblknum == 1) { if(dblknum == 1) {
return del_segment(useg); return del_segment(SJ3_CONTEXT_PASS useg);
} else { } else {
return del_douon(useg, p1, ofs); return del_douon(SJ3_CONTEXT_PASS useg, p1, ofs);
} }
} else { } else {
stp = p2; stp = p2;
@ -110,13 +110,13 @@ u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
(*curdict->putdic)(curdict, useg); (*curdict->putdic)(curdict, useg);
del_stdy(useg, ofs, size); del_stdy(SJ3_CONTEXT_PASS useg, ofs, size);
return AD_DONE; return AD_DONE;
} }
static int 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; u_char *nxt, *p1, *p2;
int size; int size;
int nlen, plen, len; int nlen, plen, len;
@ -133,7 +133,7 @@ del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
plen = getplen(nxt); plen = getplen(nxt);
if(ptr == segtop()) { 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; return AD_OVFLWINDEX;
} }
@ -150,19 +150,19 @@ del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
memset(dicbuf + curdict->seglen - size, DICSEGTERM, size); memset(dicbuf + curdict->seglen - size, DICSEGTERM, size);
if(ptr == segtop()) { if(ptr == segtop()) {
chg_uidx(seg, ptr + DOUONBLKSIZENUMBER, nlen + len); chg_uidx(SJ3_CONTEXT_PASS seg, ptr + DOUONBLKSIZENUMBER, nlen + len);
} }
} }
(*curdict->putdic)(curdict, seg); (*curdict->putdic)(curdict, seg);
del_stdy(seg, ofs, size); del_stdy(SJ3_CONTEXT_PASS seg, ofs, size);
return AD_DONE; return AD_DONE;
} }
static int static int
del_segment(TypeDicSeg seg) { del_segment(SJ3_CONTEXT TypeDicSeg seg) {
int i; int i;
STDYIN* styp; STDYIN* styp;
TypeDicID dicid; TypeDicID dicid;
@ -183,7 +183,7 @@ del_segment(TypeDicSeg seg) {
(*curdict->rszdic)(curdict, curdict->segunit); (*curdict->rszdic)(curdict, curdict->segunit);
del_uidx(seg); del_uidx(SJ3_CONTEXT_PASS seg);
if(StudyExist()) { if(StudyExist()) {
dicid = curdict->dicid; dicid = curdict->dicid;
@ -208,18 +208,18 @@ del_segment(TypeDicSeg seg) {
for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++) for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++)
if(styp->styno > stdynum) styp->styno -= 1; if(styp->styno > stdynum) styp->styno -= 1;
putstydic(); putstydic(SJ3_CONTEXT_PASS2);
} }
return AD_DONE; return AD_DONE;
} }
static void static void
del_uidx(TypeDicSeg seg) { del_uidx(SJ3_CONTEXT TypeDicSeg seg) {
u_char *p, *q; u_char *p, *q;
int len; int len;
p = get_idxptr(seg); p = get_idxptr(SJ3_CONTEXT_PASS seg);
for(q = p; *q++;); for(q = p; *q++;);
mvmemi(q, p, idxbuf + curdict->idxlen - q); mvmemi(q, p, idxbuf + curdict->idxlen - q);
@ -229,11 +229,11 @@ del_uidx(TypeDicSeg seg) {
(*curdict->putidx)(curdict, 0); (*curdict->putidx)(curdict, 0);
mkidxtbl(curdict); mkidxtbl(SJ3_CONTEXT_PASS curdict);
} }
static void static void
del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) { del_stdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) {
int i; int i;
TypeStyNum stdynum; TypeStyNum stdynum;
STDYIN* stdy; STDYIN* stdy;
@ -265,6 +265,6 @@ del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) {
for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++) for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++)
if(stdy->styno > stdynum) (stdy->styno)--; if(stdy->styno > stdynum) (stdy->styno)--;
putstydic(); putstydic(SJ3_CONTEXT_PASS2);
} }
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void get_askknj() { void get_askknj(SJ3_CONTEXT2) {
u_char* p; u_char* p;
u_char* q; u_char* q;
u_char* r; u_char* r;
@ -68,7 +68,7 @@ void get_askknj() {
} }
} }
int seldict(TypeDicID id) { int seldict(SJ3_CONTEXT TypeDicID id) {
DICTL* dp; DICTL* dp;
for(dp = dictlist; dp; dp = dp->next) { for(dp = dictlist; dp; dp = dp->next) {
@ -81,7 +81,7 @@ int seldict(TypeDicID id) {
} }
u_char* u_char*
get_idxptr(TypeDicSeg seg) { get_idxptr(SJ3_CONTEXT TypeDicSeg seg) {
(*curdict->getofs)(curdict); (*curdict->getofs)(curdict);
(*curdict->getidx)(curdict); (*curdict->getidx)(curdict);

View file

@ -74,7 +74,7 @@ fzkstrcmp(u_char* yptr, u_char* fzkp, int* saml) {
return MATCH; return MATCH;
} }
void setclrec(JREC* jrec, u_char* yptr, TypeCnct right) { void setclrec(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) {
CLREC* new; CLREC* new;
TypeGram hinsi; TypeGram hinsi;
int len; int len;
@ -83,7 +83,7 @@ void setclrec(JREC* jrec, u_char* yptr, TypeCnct right) {
if(len > MAXCLINPUTLEN) return; if(len > MAXCLINPUTLEN) return;
if(!(new = argclrec(len))) return; if(!(new = argclrec(SJ3_CONTEXT_PASS len))) return;
new->jnode = jrec; new->jnode = jrec;
new->gobiln = gobilen; new->gobiln = gobilen;
@ -165,7 +165,7 @@ fzkcnct(TypeCnct right, TypeCnct left) {
} }
RECURS 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; u_char* fzk;
int len = 0; int len = 0;
int cmp; 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((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; if(!level) fzk_ka_flg = 0;
yptr++; yptr++;
while(Chrtbl[*yptr] & FZK_KGU) yptr++; while(Chrtbl[*yptr] & FZK_KGU) yptr++;
setclrec(jrec, yptr, (TypeCnct)R_FZKKGU); setclrec(SJ3_CONTEXT_PASS jrec, yptr, (TypeCnct)R_FZKKGU);
return; return;
} }
@ -207,11 +207,11 @@ void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len; next = yptr + len;
if(terminate(rt = FzkRight(fzk), next)) { if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(jrec, next, rt); 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; if(len) return;
@ -246,10 +246,10 @@ void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len; next = yptr + len;
if(terminate(rt = FzkRight(fzk), next)) { if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(jrec, next, rt); setclrec(SJ3_CONTEXT_PASS jrec, next, rt);
} }
srchfzk(jrec, next, rt, level + 1); srchfzk(SJ3_CONTEXT_PASS jrec, next, rt, level + 1);
} }
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #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* u_char*
getkan_none(u_char* s, u_char* d, u_char* ym, int yl, int flg) { 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* u_char*
getkan_knj(u_char* s, u_char* d, u_char* ym, int yl, int flg) { getkan_knj(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg); return code2kanji(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg);
} }
u_char* u_char*
getkan_ofs(u_char* s, u_char* d, u_char* ym, int yl, int flg) { getkan_ofs(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), return code2kanji(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, ym, yl, flg); 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* 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; int csize;
for(;;) { for(;;) {
@ -147,7 +147,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(s, d, ym, yl, flg); d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, flg);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -159,7 +159,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(s, d, ym, yl, flg); d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, flg);
break; break;
default: default:
@ -177,7 +177,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(s, d, ym, yl, FALSE); d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -189,7 +189,7 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(s, d, ym, yl, FALSE); d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE);
break; break;
default: default:
@ -202,10 +202,10 @@ code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return d; 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; u_char* q;
q = code2kanji(ptr, buf, ym, yl, TRUE); q = code2kanji(SJ3_CONTEXT_PASS ptr, buf, ym, yl, TRUE);
return q - buf; return q - buf;
} }

View file

@ -37,36 +37,36 @@
#include "sj_kanakan.h" #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; trank = nrank = 1;
setstynum(); setstynum(SJ3_CONTEXT_PASS2);
regetrank(); regetrank(SJ3_CONTEXT_PASS2);
} }
static void static void
setstynum() { setstynum(SJ3_CONTEXT2) {
KHREC* kptr; KHREC* kptr;
STDYIN* sptr; STDYIN* sptr;
int count; int count;
for(kptr = kouhotbl, count = khcount; count--; kptr++) { 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); kptr->clrec->jnode->dicid);
if(!sptr) continue; if(!sptr) continue;
setnspr(kptr, sptr); setnspr(SJ3_CONTEXT_PASS kptr, sptr);
} }
} }
static void static void
setnspr(KHREC* kptr, STDYIN* sptr) { setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) {
KHREC* ptr; KHREC* ptr;
int keepnm; int keepnm;
TypeStyNum styno; TypeStyNum styno;
@ -122,7 +122,7 @@ setnspr(KHREC* kptr, STDYIN* sptr) {
} }
static void static void
regetrank() { regetrank(SJ3_CONTEXT2) {
KHREC* kptr; KHREC* kptr;
int count; int count;
int tmp; int tmp;

View file

@ -46,10 +46,10 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
Global* global_work_base; #ifdef SJ3_GLOBAL
Global* work_base; Global* work_base;
STDY* stdy_base; STDY* stdy_base;
#endif
int serv_errno; int serv_errno;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void seg_count(DICT* dict) { void seg_count(SJ3_CONTEXT DICT* dict) {
u_char* p; u_char* p;
u_char* q; u_char* q;
TypeDicSeg segcnt = 0; TypeDicSeg segcnt = 0;
@ -56,7 +56,7 @@ void seg_count(DICT* dict) {
dict->segunit = (segcnt == 0) ? 1 : segcnt; dict->segunit = (segcnt == 0) ? 1 : segcnt;
} }
void mkidxtbl(DICT* dict) { void mkidxtbl(SJ3_CONTEXT DICT* dict) {
u_char* p; u_char* p;
TypeDicSeg seg; TypeDicSeg seg;
@ -74,7 +74,7 @@ void mkidxtbl(DICT* dict) {
} }
} }
void initwork() { void initwork(SJ3_CONTEXT2) {
jrt1st = jrt2nd = maxjptr = (JREC*)0; jrt1st = jrt2nd = maxjptr = (JREC*)0;
clt1st = clt2nd = maxclptr = (CLREC*)0; clt1st = clt2nd = maxclptr = (CLREC*)0;
} }

View file

@ -67,7 +67,7 @@ JREC* free_jlst(JREC* p) {
} }
CLREC* CLREC*
free_clst(CLREC* p, int l) { free_clst(SJ3_CONTEXT CLREC* p, int l) {
CLREC* cpk; CLREC* cpk;
CLREC* cp; CLREC* cp;
CLREC* cn; CLREC* cn;
@ -127,7 +127,7 @@ void free_jall(JREC* p) {
} }
} }
void freework() { void freework(SJ3_CONTEXT2) {
free_clall(maxclptr); free_clall(maxclptr);
clt1st = maxclptr = NULL; clt1st = maxclptr = NULL;

View file

@ -39,28 +39,28 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
set2nd(CLREC* clrec) { set2nd(SJ3_CONTEXT CLREC* clrec) {
CLREC* rec2; CLREC* rec2;
mkjiritu(DO_IKKATU | DO_CLSTUDY); mkjiritu(SJ3_CONTEXT_PASS DO_IKKATU | DO_CLSTUDY);
mkbunsetu(); mkbunsetu(SJ3_CONTEXT_PASS2);
if(!maxclptr) { if(!maxclptr) {
wakachi(); wakachi(SJ3_CONTEXT_PASS2);
return clrec->cllen; return clrec->cllen;
} }
for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) { 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; break;
} }
return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen); return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen);
} }
void mk2claus() { void mk2claus(SJ3_CONTEXT2) {
u_char* keepptr; u_char* keepptr;
int keeplen; int keeplen;
CLREC* clrec; CLREC* clrec;
@ -79,12 +79,12 @@ void mk2claus() {
selcl = clt1st; selcl = clt1st;
if(selcl->right == R_FZKKGU) { if(selcl->right == R_FZKKGU) {
pritiny(); pritiny(SJ3_CONTEXT_PASS2);
return; return;
} }
if(cnvlen == selcl->cllen) { if(cnvlen == selcl->cllen) {
pritiny(); pritiny(SJ3_CONTEXT_PASS2);
return; return;
} }
@ -103,7 +103,7 @@ void mk2claus() {
free_jall(maxjptr); free_jall(maxjptr);
} }
save2ln = set2nd(clrec); save2ln = set2nd(SJ3_CONTEXT_PASS clrec);
count++; count++;
len = clrec->cllen; len = clrec->cllen;
@ -117,7 +117,7 @@ void mk2claus() {
if(selcl->cl2len > clrec->cl2len) continue; if(selcl->cl2len > clrec->cl2len) continue;
prty = priority(clrec) - prty2; prty = priority(SJ3_CONTEXT_PASS clrec) - prty2;
prty2++; prty2++;

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void mkbunsetu() { void mkbunsetu(SJ3_CONTEXT2) {
JREC* jrec; JREC* jrec;
TypeGram hinsi; TypeGram hinsi;
u_char* cnj; u_char* cnj;
@ -56,7 +56,7 @@ void mkbunsetu() {
while(jrec) { 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); hinsi = StbHinsi(cnj + jrec->stbofs - 1);
else else
hinsi = jrec->hinsi; hinsi = jrec->hinsi;
@ -65,15 +65,15 @@ void mkbunsetu() {
gobilen = 0; gobilen = 0;
next = cnvstart + jrec->jlen; next = cnvstart + jrec->jlen;
if(terminate(right, next)) { if(terminate(SJ3_CONTEXT_PASS right, next)) {
fzk_ka_flg = 0; 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;) { for(i = count; i-- > 0;) {
@ -81,12 +81,12 @@ void mkbunsetu() {
gobilen = crec[i].len; gobilen = crec[i].len;
next = cnvstart + jrec->jlen + gobilen; next = cnvstart + jrec->jlen + gobilen;
if(terminate(right, next)) { if(terminate(SJ3_CONTEXT_PASS right, next)) {
fzk_ka_flg = 0; 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* CLREC*
argclrec(int len) { argclrec(SJ3_CONTEXT int len) {
CLREC* ptr; CLREC* ptr;
CLREC* rec; CLREC* rec;
CLREC* child; CLREC* child;

View file

@ -38,9 +38,9 @@
#include "sj_kanakan.h" #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 chkind1;
u_char chkind2; u_char chkind2;
JREC* jrec; JREC* jrec;
@ -53,25 +53,25 @@ void mkjiritu(int mode) {
chkind1 = Chrtbl[*cnvstart]; chkind1 = Chrtbl[*cnvstart];
if(chkind1 & DICTOP) { 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; cnvstart += headlen;
cnvlen -= headlen; cnvlen -= headlen;
chkind2 = Chrtbl[*cnvstart]; chkind2 = Chrtbl[*cnvstart];
if(chkind2 & DICTOP) { if(chkind2 & DICTOP) {
dic_mu(mode); dic_mu(SJ3_CONTEXT_PASS mode);
} }
if(headcode == SETTOU_DAI) { if(headcode == SETTOU_DAI) {
srchnum(); srchnum(SJ3_CONTEXT_PASS2);
} }
cnvstart -= headlen; cnvstart -= headlen;
@ -79,13 +79,13 @@ void mkjiritu(int mode) {
} }
for(jrec = maxjptr; jrec; jrec = jrec->jsort) { for(jrec = maxjptr; jrec; jrec = jrec->jsort) {
if((stb = getstb(jrec->hinsi))) if((stb = getstb(SJ3_CONTEXT_PASS jrec->hinsi)))
setubi(jrec, stb); setubi(SJ3_CONTEXT_PASS jrec, stb);
} }
} }
static void static void
dic_mu(int mode) { dic_mu(SJ3_CONTEXT int mode) {
u_char* tagp; u_char* tagp;
DICTL* dp; DICTL* dp;
@ -95,11 +95,11 @@ dic_mu(int mode) {
dicsaml = 0; dicsaml = 0;
prevseg = -1; 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* ptr;
JREC* jrec; JREC* jrec;
JREC* child; JREC* child;
@ -156,7 +156,7 @@ JREC* argjrec(int len, JREC* rec) {
} }
static void static void
dic_cl() { dic_cl(SJ3_CONTEXT2) {
u_char* p; u_char* p;
u_short pos; u_short pos;
int len; int len;
@ -172,7 +172,7 @@ dic_cl() {
if(cmp == MATCH) { if(cmp == MATCH) {
if(!isdpnd(*(cnvstart + len))) { if(!isdpnd(*(cnvstart + len))) {
setcrec(p); setcrec(SJ3_CONTEXT_PASS p);
} }
} }

View file

@ -41,12 +41,12 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void getkhtbl(CLREC*), cl_kanji(JREC*, CLREC*); static void getkhtbl(SJ3_CONTEXT CLREC*), cl_kanji(SJ3_CONTEXT JREC*, CLREC*);
static int diffknj(JREC*, u_char*, int); static int diffknj(SJ3_CONTEXT JREC*, u_char*, int);
static void cl_numcmn(JREC*, CLREC*); static void cl_numcmn(SJ3_CONTEXT JREC*, CLREC*);
static u_char* makekan(u_char*, u_char*, int); static u_char* makekan(SJ3_CONTEXT u_char*, u_char*, int);
void mkkouho() { void mkkouho(SJ3_CONTEXT2) {
CLREC* clrec; CLREC* clrec;
int keeplen; int keeplen;
@ -57,20 +57,20 @@ void mkkouho() {
clrec = clt1st; clrec = clt1st;
do { do {
getkhtbl(clrec); getkhtbl(SJ3_CONTEXT_PASS clrec);
clrec = clrec->clsort; clrec = clrec->clsort;
} while(clrec && (keeplen == clrec->cllen)); } while(clrec && (keeplen == clrec->cllen));
} }
static void static void
getkhtbl(CLREC* clrec) { getkhtbl(SJ3_CONTEXT CLREC* clrec) {
JREC* jrec; JREC* jrec;
jrec = clrec->jnode; jrec = clrec->jnode;
switch(jrec->class) { switch(jrec->class) {
case C_DICT: case C_DICT:
cl_kanji(jrec, clrec); cl_kanji(SJ3_CONTEXT_PASS jrec, clrec);
break; break;
case C_N_ARABIA: case C_N_ARABIA:
case C_N_ARACMA: case C_N_ARACMA:
@ -82,36 +82,36 @@ getkhtbl(CLREC* clrec) {
case C_N_KAZULONG: case C_N_KAZULONG:
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
cl_numcmn(jrec, clrec); cl_numcmn(SJ3_CONTEXT_PASS jrec, clrec);
break; break;
case C_BUNSETU: case C_BUNSETU:
break; break;
case C_MINASI: case C_MINASI:
case C_WAKACHI: case C_WAKACHI:
setkouho(clrec, (TypeDicOfs)0, 0); setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, 0);
break; break;
} }
} }
static void static void
cl_kanji(JREC* jrec, CLREC* clrec) { cl_kanji(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* ptr; u_char* ptr;
int kcount = khcount; int kcount = khcount;
if(seldict(jrec->dicid)) { if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(curdict, jrec->jseg); (*curdict->getdic)(curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1; ptr = dicbuf + jrec->jofsst + 1;
get_askknj(); get_askknj(SJ3_CONTEXT_PASS2);
while(*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if(diffknj(jrec, ptr, kcount)) { if(diffknj(SJ3_CONTEXT_PASS jrec, ptr, kcount)) {
setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0); setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0);
} }
ptr = skipkstr(ptr); ptr = skipkstr(SJ3_CONTEXT_PASS ptr);
} }
} else { } 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* u_char*
makekan_knj(u_char* s, u_char* d, int flg) { makekan_knj(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(askknj[*s & KNJASSYUKUMASK], d, flg); return makekan(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, flg);
} }
u_char* makekan_ofs(u_char* s, u_char* d, int flg) { u_char* makekan_ofs(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), return makekan(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, flg); d, flg);
} }
@ -173,7 +173,7 @@ makekan_ascii(u_char* s, u_char* d, int flg) {
} }
static u_char* 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; int csize;
for(;;) { for(;;) {
@ -189,7 +189,7 @@ makekan(u_char* s, u_char* d, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(s, d, flg); d = makekan_ofs(SJ3_CONTEXT_PASS s, d, flg);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -201,7 +201,7 @@ makekan(u_char* s, u_char* d, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(s, d, flg); d = makekan_knj(SJ3_CONTEXT_PASS s, d, flg);
break; break;
default: default:
@ -219,7 +219,7 @@ makekan(u_char* s, u_char* d, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(s, d, FALSE); d = makekan_ofs(SJ3_CONTEXT_PASS s, d, FALSE);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -231,7 +231,7 @@ makekan(u_char* s, u_char* d, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(s, d, FALSE); d = makekan_knj(SJ3_CONTEXT_PASS s, d, FALSE);
break; break;
default: default:
@ -304,7 +304,7 @@ sameknj(u_char* p, u_char plen, u_char* q, u_char qlen) {
#undef QEND #undef QEND
static int static int
diffknj(JREC* jrec, u_char* ptr, int num) { diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) {
KHREC* kptr; KHREC* kptr;
JREC* jptr; JREC* jptr;
int i; int i;
@ -313,7 +313,7 @@ diffknj(JREC* jrec, u_char* ptr, int num) {
if(jrec->hinsi == TANKANJI) return TRUE; 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++) { for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) {
if((jptr = kptr->clrec->jnode) == jrec) if((jptr = kptr->clrec->jnode) == jrec)
@ -331,7 +331,7 @@ diffknj(JREC* jrec, u_char* ptr, int num) {
if(jptr->stbofs != jrec->stbofs) continue; 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)) if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen))
return FALSE; return FALSE;
@ -388,7 +388,7 @@ int sel_sjmode(JREC* jrec) {
} }
static void static void
cl_numcmn(JREC* jrec, CLREC* clrec) { cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* p; u_char* p;
int i; int i;
u_short j; u_short j;
@ -403,24 +403,24 @@ cl_numcmn(JREC* jrec, CLREC* clrec) {
if(jrec->jofsst) { if(jrec->jofsst) {
i = sel_sjmode(jrec); i = sel_sjmode(jrec);
if(seldict(jrec->dicid)) { if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(curdict, jrec->jseg); (*curdict->getdic)(curdict, jrec->jseg);
p = dicbuf + jrec->jofsst + 1; p = dicbuf + jrec->jofsst + 1;
while(*p != HINSIBLKTERM) { while(*p != HINSIBLKTERM) {
setkouho(clrec, (TypeDicOfs)(p - dicbuf), i); setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i);
p = skipkstr(p); p = skipkstr(SJ3_CONTEXT_PASS p);
} }
} else { } else {
setkouho(clrec, (TypeDicOfs)1, i); setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, i);
} }
} else { } else {
tbl = Selsjadrs(jrec->class - C_N_ARABIA); tbl = Selsjadrs(jrec->class - C_N_ARABIA);
while((j = *tbl++) != SELNUMTERM) { while((j = *tbl++) != SELNUMTERM) {
if(!chrck_numtbl(jrec->flags, j)) continue; if(!chrck_numtbl(jrec->flags, j)) continue;
setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j)); setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, (int)SelNumFunc(j));
} }
} }
} }

View file

@ -40,7 +40,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int 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 mask;
int num; int num;
u_char* src; u_char* src;
@ -72,7 +72,7 @@ word2char(u_short wd, u_char* tbl, int keta, int flg) {
} }
static void 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 i;
int keta; int keta;
int flg; int flg;
@ -87,7 +87,7 @@ words2num(u_short* wd, u_char* tbl, int flgc) {
} }
for(i = NUMWORDBUF; i-- > 0;) { 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; 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]; 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]; 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]; 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]; 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]; 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]; 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]; 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]; 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 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; int ii;
u_short tmp; u_short tmp;
int mask; 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]; 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]; 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; int i;
for(i = jrec->numlen; i > 0; 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 i;
int j; 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 i;
int j; int j;
@ -281,7 +281,7 @@ void num_type12(u_char* s1, u_char* s2, JREC* jrec) {
} }
static void 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 i;
int j; int j;
u_char tmp; 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]; u_char num[NUMKETALENGTH];
int len; 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]; u_char num[NUMKETALENGTH];
int len; 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);
} }

View file

@ -45,13 +45,13 @@ static void set_idxyomi();
static void cd2sjh_chr(u_char ch, u_char* dst); static void cd2sjh_chr(u_char ch, u_char* dst);
int getusr(u_char* buf) { int getusr(SJ3_CONTEXT u_char* buf) {
int nlen; int nlen;
peepyomi[0] = peepknj[0] = peepgrm = 0; peepyomi[0] = peepknj[0] = peepgrm = 0;
(*curdict->getdic)(curdict, peepidx = DICSEGBASE); (*curdict->getdic)(curdict, peepidx = DICSEGBASE);
get_askknj(); get_askknj(SJ3_CONTEXT_PASS2);
peepdptr = segtop(); peepdptr = segtop();
@ -73,9 +73,9 @@ int getusr(u_char* buf) {
return -1; return -1;
} }
int nextusr(u_char* buf) { int nextusr(SJ3_CONTEXT u_char* buf) {
(*curdict->getdic)(curdict, peepidx); (*curdict->getdic)(curdict, peepidx);
get_askknj(); get_askknj(SJ3_CONTEXT_PASS2);
if(next_kanji()) { if(next_kanji()) {
set_kanji(); set_kanji();
@ -88,9 +88,9 @@ int nextusr(u_char* buf) {
return 0; return 0;
} }
int prevusr(u_char* buf) { int prevusr(SJ3_CONTEXT u_char* buf) {
(*curdict->getdic)(curdict, peepidx); (*curdict->getdic)(curdict, peepidx);
get_askknj(); get_askknj(SJ3_CONTEXT_PASS2);
if(prev_kanji()) { if(prev_kanji()) {
set_kanji(); set_kanji();
@ -104,10 +104,10 @@ int prevusr(u_char* buf) {
} }
static void static void
set_kanji() { set_kanji(SJ3_CONTEXT2) {
int len; int len;
len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr), len = getkanji(SJ3_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr),
peepkptr, peepknj); peepkptr, peepknj);
*(peepknj + len) = 0; *(peepknj + len) = 0;
} }