WIP multi-context support
This commit is contained in:
parent
d853c62938
commit
d06b056f05
25 changed files with 440 additions and 417 deletions
|
|
@ -154,4 +154,9 @@ typedef struct workarea {
|
||||||
Global global;
|
Global global;
|
||||||
} WorkArea;
|
} WorkArea;
|
||||||
|
|
||||||
|
typedef struct sj3context {
|
||||||
|
Global* work;
|
||||||
|
STDY* stdy;
|
||||||
|
} Sj3Context;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
#endif
|
||||||
extern int serv_errno;
|
extern int serv_errno;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -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 */
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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)))
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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++;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue