Add multi-context
This commit is contained in:
parent
d06b056f05
commit
a916f81d8a
30 changed files with 264 additions and 246 deletions
|
|
@ -20,5 +20,6 @@ file(GLOB_RECURSE SJ3TEST_SRCS src/sj3test/**.c)
|
|||
add_executable(sj3test ${SJ3TEST_SRCS})
|
||||
target_link_libraries(sj3test PRIVATE sj3core)
|
||||
|
||||
target_compile_definitions(sj3core PRIVATE UTF8)
|
||||
#target_compile_definitions(sj3core PUBLIC SJ3_GLOBAL)
|
||||
|
||||
target_compile_definitions(sj3mkdic PRIVATE UTF8 ENGLISH)
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#ifndef SJ_GLOBAL_H
|
||||
#define SJ_GLOBAL_H
|
||||
|
||||
#if 0
|
||||
#ifdef SJ3_GLOBAL
|
||||
extern Global* work_base;
|
||||
extern STDY* stdy_base;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -234,19 +234,19 @@ extern u_char kigou[];
|
|||
/* sdepend.c */
|
||||
DictFile* opendict(SJ3_CONTEXT char*, char*);
|
||||
int closedict(SJ3_CONTEXT DictFile*);
|
||||
void lock_dict(SJ3_CONTEXT DictFile*, int);
|
||||
void unlock_dict(SJ3_CONTEXT DictFile*, int);
|
||||
int is_dict_locked(SJ3_CONTEXT DictFile*);
|
||||
StdyFile* openstdy(SJ3_CONTEXT char*, char*);
|
||||
int closestdy(SJ3_CONTEXT StdyFile*);
|
||||
void lock_dict(DictFile*, int);
|
||||
void unlock_dict(DictFile*, int);
|
||||
int is_dict_locked(DictFile*);
|
||||
StdyFile* openstdy(char*, char*);
|
||||
int closestdy(StdyFile*);
|
||||
int putstydic(SJ3_CONTEXT2);
|
||||
int putcldic(SJ3_CONTEXT2);
|
||||
int makedict(SJ3_CONTEXT char*, int, int, int);
|
||||
int makestdy(SJ3_CONTEXT char*, int, int, int);
|
||||
int makedict(char*, int, int, int);
|
||||
int makestdy(char*, int, int, int);
|
||||
void sj_closeall(SJ3_CONTEXT2);
|
||||
int set_dictpass(SJ3_CONTEXT DictFile*, char*);
|
||||
int set_dictpass(DictFile*, char*);
|
||||
int set_stdypass(SJ3_CONTEXT char*);
|
||||
int set_dictcmnt(SJ3_CONTEXT DictFile*, char*);
|
||||
int set_dictcmnt(DictFile*, char*);
|
||||
int set_stdycmnt(SJ3_CONTEXT char*);
|
||||
int get_stdysize(SJ3_CONTEXT int*, int*, int*);
|
||||
|
||||
|
|
@ -260,12 +260,12 @@ extern u_short* selsjadrs[];
|
|||
int setconj(SJ3_CONTEXT TypeGram, JREC*, CREC*);
|
||||
|
||||
/* setjrec.c */
|
||||
int setj_atrb(SJ3_CONTEXT u_char*);
|
||||
int setj_atrb(u_char*);
|
||||
int setj_ofs(SJ3_CONTEXT u_char*);
|
||||
int setj_knj(SJ3_CONTEXT u_char*);
|
||||
int setj_norm1(SJ3_CONTEXT u_char*);
|
||||
int setj_norm2(SJ3_CONTEXT u_char*);
|
||||
int setj_norm3(SJ3_CONTEXT u_char*); /* unused??? */
|
||||
int setj_norm1(u_char*);
|
||||
int setj_norm2(u_char*);
|
||||
int setj_norm3(u_char*); /* unused??? */
|
||||
void setjrec(SJ3_CONTEXT u_char*, int);
|
||||
void setnumrec(SJ3_CONTEXT u_char*, JREC*, TypeGram);
|
||||
void setcrec(SJ3_CONTEXT u_char*);
|
||||
|
|
@ -273,16 +273,16 @@ void setcrec(SJ3_CONTEXT u_char*);
|
|||
/* setkouho.c */
|
||||
void setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, int);
|
||||
void ph_setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
|
||||
int hiraknj_atrb(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_atrb(u_char*, int*);
|
||||
int hiraknj_ofs(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_knj(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_hask(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_kask(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_norm(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_hira(SJ3_CONTEXT u_char*, int*);
|
||||
int hiraknj_hask(u_char*, int*);
|
||||
int hiraknj_kask(u_char*, int*);
|
||||
int hiraknj_norm(u_char*, int*);
|
||||
int hiraknj_hira(u_char*, int*);
|
||||
|
||||
/* setubi.c */
|
||||
u_char* getstb(SJ3_CONTEXT TypeGram);
|
||||
u_char* getstb(TypeGram);
|
||||
void setubi(SJ3_CONTEXT JREC*, u_char*);
|
||||
|
||||
/* sj2code.c */
|
||||
|
|
@ -290,10 +290,10 @@ int sj2cd_chr(u_char*, u_char*);
|
|||
int sj2cd_str(u_char*, u_char*, int);
|
||||
|
||||
/* skiphblk.c */
|
||||
u_char* skiphblk(SJ3_CONTEXT u_char*);
|
||||
u_char* skiphblk(u_char*);
|
||||
|
||||
/* skipkstr.c */
|
||||
u_char* skipkstr(SJ3_CONTEXT u_char*);
|
||||
u_char* skipkstr(u_char*);
|
||||
|
||||
/* srchdict.c */
|
||||
int yomicmp(SJ3_CONTEXT u_char*, u_char*, u_char*);
|
||||
|
|
|
|||
|
|
@ -46,11 +46,27 @@ typedef unsigned char u_char;
|
|||
typedef unsigned short u_short;
|
||||
typedef unsigned int u_int;
|
||||
|
||||
typedef void (*VFunc)(void*, void*, void*);
|
||||
typedef u_char* (*UCPFunc)(u_char*, u_char*, int);
|
||||
typedef int (*IFunc)(void*, int);
|
||||
typedef void (*VFunc)(
|
||||
#ifndef SJ3_GLOBAL
|
||||
void*,
|
||||
#endif
|
||||
void*, void*, void*);
|
||||
typedef u_char* (*UCPFunc)(
|
||||
#ifndef SJ3_GLOBAL
|
||||
void*,
|
||||
#endif
|
||||
u_char*, u_char*, int);
|
||||
typedef int (*IFunc)(
|
||||
#ifndef SJ3_GLOBAL
|
||||
void*,
|
||||
#endif
|
||||
void*, int);
|
||||
|
||||
typedef int (*IFuncDict)(void*);
|
||||
typedef int (*IFuncDict)(
|
||||
#ifndef SJ3_GLOBAL
|
||||
void*,
|
||||
#endif
|
||||
void*);
|
||||
|
||||
typedef u_char TypeGroup;
|
||||
typedef u_char TypeGram;
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
|
|||
return -1;
|
||||
}
|
||||
dounum++;
|
||||
ptr = skipkstr(SJ3_CONTEXT_PASS ptr);
|
||||
ptr = skipkstr(ptr);
|
||||
}
|
||||
|
||||
ptr++;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
static CLREC *nextrecblk(), *prevrecblk();
|
||||
static CLREC *nextrecblk(SJ3_CONTEXT2), *prevrecblk(SJ3_CONTEXT2);
|
||||
|
||||
static void initkbuf(SJ3_CONTEXT u_char*);
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ int nextcl(SJ3_CONTEXT u_char* kouho, int mode) {
|
|||
if(!mode && (selectid < khcount))
|
||||
selectid++;
|
||||
|
||||
else if((mode < 2) && (clptr = nextrecblk())) {
|
||||
else if((mode < 2) && (clptr = nextrecblk(SJ3_CONTEXT_PASS2))) {
|
||||
selectid = 1;
|
||||
clt1st = clptr;
|
||||
mkkouho(SJ3_CONTEXT_PASS2);
|
||||
|
|
@ -142,7 +142,7 @@ int prevcl(SJ3_CONTEXT u_char* kouho, int mode) {
|
|||
if(!mode && (selectid > 1))
|
||||
selectid--;
|
||||
|
||||
else if((mode < 2) && (clptr = prevrecblk())) {
|
||||
else if((mode < 2) && (clptr = prevrecblk(SJ3_CONTEXT_PASS2))) {
|
||||
clt1st = clptr;
|
||||
mkkouho(SJ3_CONTEXT_PASS2);
|
||||
getrank(SJ3_CONTEXT_PASS2);
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
|
|||
stblen = 0;
|
||||
}
|
||||
|
||||
else if((i = jrec->stbofs) && (fptr = getstb(SJ3_CONTEXT_PASS jrec->hinsi))) {
|
||||
else if((i = jrec->stbofs) && (fptr = getstb(jrec->hinsi))) {
|
||||
fptr += i - 1;
|
||||
stblen = StbYomiLen(fptr);
|
||||
jlen -= stblen;
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ void setstyrec(SJ3_CONTEXT KHREC* krec) {
|
|||
stdy.sttfg = krec->sttfg;
|
||||
stdy.ka_fg = krec->ka_fg;
|
||||
|
||||
if(jrec->stbofs && (fptr = getstb(SJ3_CONTEXT_PASS jrec->hinsi)))
|
||||
if(jrec->stbofs && (fptr = getstb(jrec->hinsi)))
|
||||
stdy.len -= StbYomiLen(fptr + jrec->stbofs - 1);
|
||||
|
||||
if((fptr = Settou_ptr(jrec->sttofs)))
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
|
|||
if(*p3 == HINSIBLKTERM) return AD_NOKANJI;
|
||||
ofs = p3 - dicbuf;
|
||||
|
||||
edp = skipkstr(SJ3_CONTEXT_PASS p3);
|
||||
edp = skipkstr(p3);
|
||||
|
||||
if(kblknum == 1) {
|
||||
if(hblknum == 1) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ void mkbunsetu(SJ3_CONTEXT2) {
|
|||
|
||||
while(jrec) {
|
||||
|
||||
if(jrec->stbofs && (cnj = getstb(SJ3_CONTEXT_PASS jrec->hinsi)))
|
||||
if(jrec->stbofs && (cnj = getstb(jrec->hinsi)))
|
||||
hinsi = StbHinsi(cnj + jrec->stbofs - 1);
|
||||
else
|
||||
hinsi = jrec->hinsi;
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ void mkjiritu(SJ3_CONTEXT int mode) {
|
|||
}
|
||||
|
||||
for(jrec = maxjptr; jrec; jrec = jrec->jsort) {
|
||||
if((stb = getstb(SJ3_CONTEXT_PASS jrec->hinsi)))
|
||||
if((stb = getstb(jrec->hinsi)))
|
||||
setubi(SJ3_CONTEXT_PASS jrec, stb);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ cl_kanji(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
|
|||
if(diffknj(SJ3_CONTEXT_PASS jrec, ptr, kcount)) {
|
||||
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0);
|
||||
}
|
||||
ptr = skipkstr(SJ3_CONTEXT_PASS ptr);
|
||||
ptr = skipkstr(ptr);
|
||||
}
|
||||
} else {
|
||||
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, 0);
|
||||
|
|
@ -410,7 +410,7 @@ cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
|
|||
|
||||
while(*p != HINSIBLKTERM) {
|
||||
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i);
|
||||
p = skipkstr(SJ3_CONTEXT_PASS p);
|
||||
p = skipkstr(p);
|
||||
}
|
||||
} else {
|
||||
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, i);
|
||||
|
|
|
|||
|
|
@ -38,10 +38,10 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
static int prev_kanji(), prev_hinsi(), prev_douon();
|
||||
static int next_kanji(), next_hinsi(), next_douon();
|
||||
static void set_kanji(), set_buf(u_char*), add_yomi();
|
||||
static void set_idxyomi();
|
||||
static int prev_kanji(SJ3_CONTEXT2), prev_hinsi(SJ3_CONTEXT2), prev_douon(SJ3_CONTEXT2);
|
||||
static int next_kanji(SJ3_CONTEXT2), next_hinsi(SJ3_CONTEXT2), next_douon(SJ3_CONTEXT2);
|
||||
static void set_kanji(SJ3_CONTEXT2), set_buf(SJ3_CONTEXT u_char*), add_yomi(SJ3_CONTEXT2);
|
||||
static void set_idxyomi(SJ3_CONTEXT2);
|
||||
|
||||
static void cd2sjh_chr(u_char ch, u_char* dst);
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ int getusr(SJ3_CONTEXT u_char* buf) {
|
|||
|
||||
if(segend(peepdptr)) return 0;
|
||||
|
||||
add_yomi();
|
||||
add_yomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
nlen = getnlen(peepdptr);
|
||||
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
|
||||
|
|
@ -66,9 +66,9 @@ int getusr(SJ3_CONTEXT u_char* buf) {
|
|||
|
||||
peepkptr = peephptr + 1;
|
||||
|
||||
set_kanji();
|
||||
set_kanji(SJ3_CONTEXT_PASS2);
|
||||
|
||||
set_buf(buf);
|
||||
set_buf(SJ3_CONTEXT_PASS buf);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -77,10 +77,10 @@ int nextusr(SJ3_CONTEXT u_char* buf) {
|
|||
(*curdict->getdic)(curdict, peepidx);
|
||||
get_askknj(SJ3_CONTEXT_PASS2);
|
||||
|
||||
if(next_kanji()) {
|
||||
set_kanji();
|
||||
if(next_kanji(SJ3_CONTEXT_PASS2)) {
|
||||
set_kanji(SJ3_CONTEXT_PASS2);
|
||||
|
||||
set_buf(buf);
|
||||
set_buf(SJ3_CONTEXT_PASS buf);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -92,10 +92,10 @@ int prevusr(SJ3_CONTEXT u_char* buf) {
|
|||
(*curdict->getdic)(curdict, peepidx);
|
||||
get_askknj(SJ3_CONTEXT_PASS2);
|
||||
|
||||
if(prev_kanji()) {
|
||||
set_kanji();
|
||||
if(prev_kanji(SJ3_CONTEXT_PASS2)) {
|
||||
set_kanji(SJ3_CONTEXT_PASS2);
|
||||
|
||||
set_buf(buf);
|
||||
set_buf(SJ3_CONTEXT_PASS buf);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -113,7 +113,7 @@ set_kanji(SJ3_CONTEXT2) {
|
|||
}
|
||||
|
||||
static void
|
||||
set_buf(u_char* buf) {
|
||||
set_buf(SJ3_CONTEXT u_char* buf) {
|
||||
u_char* p;
|
||||
int i, csize;
|
||||
|
||||
|
|
@ -131,12 +131,12 @@ set_buf(u_char* buf) {
|
|||
}
|
||||
|
||||
static int
|
||||
prev_kanji() {
|
||||
prev_kanji(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
u_char* p2;
|
||||
|
||||
p1 = peephptr + 1;
|
||||
if(peepkptr <= p1) return prev_hinsi();
|
||||
if(peepkptr <= p1) return prev_hinsi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p2 = peepkptr;
|
||||
while(p1 < p2) {
|
||||
|
|
@ -148,7 +148,7 @@ prev_kanji() {
|
|||
}
|
||||
|
||||
static int
|
||||
prev_hinsi() {
|
||||
prev_hinsi(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
u_char* p2;
|
||||
int nlen;
|
||||
|
|
@ -156,7 +156,7 @@ prev_hinsi() {
|
|||
nlen = getnlen(peepdptr);
|
||||
p1 = peepdptr + DOUONBLKSIZENUMBER + nlen;
|
||||
|
||||
if(peephptr <= p1) return prev_douon();
|
||||
if(peephptr <= p1) return prev_douon(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p2 = peephptr;
|
||||
while(p1 < p2) {
|
||||
|
|
@ -177,7 +177,7 @@ prev_hinsi() {
|
|||
}
|
||||
|
||||
static int
|
||||
prev_douon() {
|
||||
prev_douon(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
u_char* p2;
|
||||
int nlen;
|
||||
|
|
@ -186,27 +186,27 @@ prev_douon() {
|
|||
if(peepidx <= DICSEGBASE) return 0;
|
||||
|
||||
(*curdict->getdic)(curdict, --peepidx);
|
||||
get_askknj();
|
||||
get_askknj(SJ3_CONTEXT_PASS2);
|
||||
|
||||
set_idxyomi();
|
||||
set_idxyomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p1 = segtop();
|
||||
do {
|
||||
peepdptr = p1;
|
||||
|
||||
add_yomi();
|
||||
add_yomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p1 = getntag(p1);
|
||||
} while(!segend(p1));
|
||||
} else {
|
||||
set_idxyomi();
|
||||
set_idxyomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p1 = segtop();
|
||||
p2 = peepdptr;
|
||||
do {
|
||||
peepdptr = p1;
|
||||
|
||||
add_yomi();
|
||||
add_yomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
p1 = getntag(p1);
|
||||
} while(p1 < p2);
|
||||
|
|
@ -234,12 +234,12 @@ prev_douon() {
|
|||
}
|
||||
|
||||
static int
|
||||
next_kanji() {
|
||||
next_kanji(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
|
||||
p1 = skipkstr(peepkptr);
|
||||
|
||||
if(*p1 == HINSIBLKTERM) return next_hinsi();
|
||||
if(*p1 == HINSIBLKTERM) return next_hinsi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
peepkptr = p1;
|
||||
|
||||
|
|
@ -247,12 +247,12 @@ next_kanji() {
|
|||
}
|
||||
|
||||
static int
|
||||
next_hinsi() {
|
||||
next_hinsi(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
|
||||
p1 = skiphblk(peephptr);
|
||||
|
||||
if(p1 >= getntag(peepdptr)) return next_douon();
|
||||
if(p1 >= getntag(peepdptr)) return next_douon(SJ3_CONTEXT_PASS2);
|
||||
|
||||
peephptr = p1;
|
||||
|
||||
|
|
@ -264,7 +264,7 @@ next_hinsi() {
|
|||
}
|
||||
|
||||
static int
|
||||
next_douon() {
|
||||
next_douon(SJ3_CONTEXT2) {
|
||||
u_char* p1;
|
||||
int nlen;
|
||||
|
||||
|
|
@ -273,17 +273,17 @@ next_douon() {
|
|||
if(segend(p1)) {
|
||||
if(peepidx + 1 < curdict->segunit) {
|
||||
(*curdict->getdic)(curdict, ++peepidx);
|
||||
get_askknj();
|
||||
get_askknj(SJ3_CONTEXT_PASS2);
|
||||
peepdptr = segtop();
|
||||
|
||||
set_idxyomi();
|
||||
set_idxyomi(SJ3_CONTEXT_PASS2);
|
||||
} else
|
||||
return 0;
|
||||
} else {
|
||||
peepdptr = p1;
|
||||
}
|
||||
|
||||
add_yomi();
|
||||
add_yomi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
nlen = getnlen(peepdptr);
|
||||
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
|
||||
|
|
@ -296,10 +296,10 @@ next_douon() {
|
|||
}
|
||||
|
||||
static void
|
||||
set_idxyomi() {
|
||||
set_idxyomi(SJ3_CONTEXT2) {
|
||||
u_char *p1, *p2;
|
||||
|
||||
if((p2 = get_idxptr(peepidx))) {
|
||||
if((p2 = get_idxptr(SJ3_CONTEXT_PASS peepidx))) {
|
||||
p1 = peepyomi;
|
||||
while(*p2) {
|
||||
cd2sjh_chr(*p2++, p1);
|
||||
|
|
@ -310,7 +310,7 @@ set_idxyomi() {
|
|||
}
|
||||
|
||||
static void
|
||||
add_yomi() {
|
||||
add_yomi(SJ3_CONTEXT2) {
|
||||
int nlen;
|
||||
u_char *p1, *p2;
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int ph2knj(u_char* zyomi, u_char* kanji, int knjlen) {
|
||||
int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
|
||||
u_char* ptr;
|
||||
u_char* dst;
|
||||
int i;
|
||||
|
|
@ -52,7 +52,7 @@ int ph2knj(u_char* zyomi, u_char* kanji, int knjlen) {
|
|||
}
|
||||
*dst = 0;
|
||||
|
||||
freework();
|
||||
freework(SJ3_CONTEXT_PASS2);
|
||||
prevclgrm = 0;
|
||||
prevclrow = 0;
|
||||
|
||||
|
|
@ -68,30 +68,30 @@ int ph2knj(u_char* zyomi, u_char* kanji, int knjlen) {
|
|||
|
||||
while(cnvlen && kanjilen) {
|
||||
if(!clt1st) {
|
||||
mkjiritu(DO_CLSTUDY | DO_IKKATU);
|
||||
mkjiritu(SJ3_CONTEXT_PASS DO_CLSTUDY | DO_IKKATU);
|
||||
|
||||
mkbunsetu();
|
||||
mkbunsetu(SJ3_CONTEXT_PASS2);
|
||||
|
||||
if(!maxclptr) wakachi();
|
||||
if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
jrt1st = maxjptr;
|
||||
clt1st = maxclptr;
|
||||
}
|
||||
|
||||
mk2claus();
|
||||
mk2claus(SJ3_CONTEXT_PASS2);
|
||||
|
||||
selclrec();
|
||||
selclrec(SJ3_CONTEXT_PASS2);
|
||||
|
||||
prevclgrm = selcl->jnode->hinsi;
|
||||
prevclrow = selcl->right;
|
||||
|
||||
clt1st = free_clst(clt1st, (int)selcl->cllen);
|
||||
clt1st = free_clst(SJ3_CONTEXT_PASS clt1st, (int)selcl->cllen);
|
||||
jrt1st = free_jlst(jrt1st);
|
||||
|
||||
cnvstart += selcl->cllen;
|
||||
cnvlen -= selcl->cllen;
|
||||
|
||||
cvtphknj();
|
||||
cvtphknj(SJ3_CONTEXT_PASS2);
|
||||
|
||||
clt1st = clt2nd;
|
||||
jrt1st = jrt2nd;
|
||||
|
|
|
|||
|
|
@ -38,15 +38,15 @@
|
|||
#include "sj_kanakan.h"
|
||||
|
||||
static void
|
||||
ph_setsty(CLREC* clrec) {
|
||||
ph_setsty(SJ3_CONTEXT CLREC* clrec) {
|
||||
JREC* jrec;
|
||||
TypeDicOfs offset;
|
||||
u_char* ptr;
|
||||
STDYIN* sptr;
|
||||
|
||||
if(!seldict((jrec = clrec->jnode)->dicid)) {
|
||||
if(!seldict(SJ3_CONTEXT_PASS(jrec = clrec->jnode)->dicid)) {
|
||||
if(!khcount)
|
||||
ph_setkouho(clrec, (TypeDicOfs)1, (STDYIN*)NULL);
|
||||
ph_setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, (STDYIN*)NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -57,35 +57,35 @@ ph_setsty(CLREC* clrec) {
|
|||
|
||||
offset = ptr - dicbuf;
|
||||
|
||||
sptr = srchstdy(jrec->jseg, offset, jrec->dicid);
|
||||
sptr = srchstdy(SJ3_CONTEXT_PASS jrec->jseg, offset, jrec->dicid);
|
||||
|
||||
if(!khcount) {
|
||||
ph_setkouho(clrec, offset, sptr);
|
||||
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!sptr) continue;
|
||||
|
||||
if(sptr->styno < kouhotbl[0].styno) {
|
||||
ph_setkouho(clrec, offset, sptr);
|
||||
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr);
|
||||
}
|
||||
|
||||
else if(sptr->styno == kouhotbl->styno) {
|
||||
if(!(kouhotbl[0].ka_fg &&
|
||||
sptr->ka_kj == kouhotbl[0].ka_kj)) {
|
||||
ph_setkouho(clrec, offset, sptr);
|
||||
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ph_khtbl(CLREC* clrec) {
|
||||
int ph_khtbl(SJ3_CONTEXT CLREC* clrec) {
|
||||
JREC* jrec;
|
||||
int flg = FALSE;
|
||||
|
||||
switch((jrec = clrec->jnode)->class) {
|
||||
case C_DICT:
|
||||
ph_setsty(clrec);
|
||||
ph_setsty(SJ3_CONTEXT_PASS clrec);
|
||||
break;
|
||||
|
||||
case C_N_ARABIA:
|
||||
|
|
@ -99,14 +99,14 @@ int ph_khtbl(CLREC* clrec) {
|
|||
case C_N_KAZULCMA:
|
||||
case C_N_SUUJILONG:
|
||||
if(jrec->jofsst) {
|
||||
ph_setsty(clrec);
|
||||
ph_setsty(SJ3_CONTEXT_PASS clrec);
|
||||
break;
|
||||
} else
|
||||
flg = TRUE;
|
||||
case C_BUNSETU:
|
||||
case C_MINASI:
|
||||
case C_WAKACHI:
|
||||
if(!khcount) ph_setkouho(clrec, (TypeDicOfs)0, (STDYIN*)0);
|
||||
if(!khcount) ph_setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, (STDYIN*)0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ sttcnt(TypeGram hinsi1, TypeGram hinsi2) {
|
|||
return 4;
|
||||
}
|
||||
|
||||
int priority(CLREC* clrec) {
|
||||
int priority(SJ3_CONTEXT CLREC* clrec) {
|
||||
int prty;
|
||||
CLREC* cl2rec;
|
||||
int keeplen;
|
||||
|
|
@ -234,7 +234,7 @@ finish:
|
|||
return (prty + prev);
|
||||
}
|
||||
|
||||
void pritiny() {
|
||||
void pritiny(SJ3_CONTEXT2) {
|
||||
CLREC* clrec;
|
||||
int keeplen;
|
||||
int i, prty = 0;
|
||||
|
|
|
|||
|
|
@ -160,29 +160,29 @@ search_same_dict(ino_t ino) {
|
|||
}
|
||||
|
||||
static int
|
||||
getofs(DictFile* dp) {
|
||||
getofs(SJ3_CONTEXT DictFile* dp) {
|
||||
idxofs = dp->ofsptr;
|
||||
return 0;
|
||||
}
|
||||
static int
|
||||
getidx(DictFile* dp) {
|
||||
getidx(SJ3_CONTEXT DictFile* dp) {
|
||||
idxbuf = dp->buffer + dp->idxstrt;
|
||||
return 0;
|
||||
}
|
||||
/* XXX: not IFunc */
|
||||
static int
|
||||
getdic(DictFile* dp, TypeDicSeg seg) {
|
||||
getdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) {
|
||||
if(seg >= dp->dict.segunit) return -1;
|
||||
dicbuf = dp->buffer + dp->segstrt + dp->dict.seglen * seg;
|
||||
return 0;
|
||||
}
|
||||
static int
|
||||
putidx(DictFile* dp) {
|
||||
putidx(SJ3_CONTEXT DictFile* dp) {
|
||||
return putfile(dp->fd, dp->idxstrt, dp->dict.idxlen, idxbuf);
|
||||
}
|
||||
/* XXX: not IFunc */
|
||||
static int
|
||||
putdic(DictFile* dp, TypeDicSeg seg) {
|
||||
putdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) {
|
||||
u_char* p;
|
||||
long i, j;
|
||||
|
||||
|
|
@ -210,7 +210,7 @@ putdic(DictFile* dp, TypeDicSeg seg) {
|
|||
}
|
||||
/* XXX: not IFunc */
|
||||
static int
|
||||
rszdic(DictFile* dp, TypeDicSeg seg) {
|
||||
rszdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) {
|
||||
long i;
|
||||
u_char* p;
|
||||
|
||||
|
|
@ -235,7 +235,7 @@ rszdic(DictFile* dp, TypeDicSeg seg) {
|
|||
}
|
||||
|
||||
DictFile*
|
||||
opendict(char* name, char* passwd) {
|
||||
opendict(SJ3_CONTEXT char* name, char* passwd) {
|
||||
FILE* fp;
|
||||
struct stat sbuf;
|
||||
DictFile* dfp;
|
||||
|
|
@ -315,7 +315,7 @@ opendict(char* name, char* passwd) {
|
|||
serv_errno = SJ3_NotEnoughMemory;
|
||||
goto error3;
|
||||
}
|
||||
mkidxtbl(&(dfp->dict));
|
||||
mkidxtbl(SJ3_CONTEXT_PASS & (dfp->dict));
|
||||
|
||||
dfp->link = dictlink;
|
||||
dictlink = dfp;
|
||||
|
|
@ -332,7 +332,7 @@ error1:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
int closedict(DictFile* dfp) {
|
||||
int closedict(SJ3_CONTEXT DictFile* dfp) {
|
||||
DictFile* df;
|
||||
|
||||
if(--dfp->refcnt > 0) return 0;
|
||||
|
|
@ -538,7 +538,7 @@ int closestdy(StdyFile* sfp) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int putstydic() {
|
||||
int putstydic(SJ3_CONTEXT2) {
|
||||
int fd;
|
||||
u_char* hd;
|
||||
StdyFile* sf;
|
||||
|
|
@ -558,7 +558,7 @@ int putstydic() {
|
|||
return putfile(fd, get4byte(hd + STDYNORMPOS), len, (u_char*)sf->stdy.stdydic);
|
||||
}
|
||||
|
||||
int putcldic() {
|
||||
int putcldic(SJ3_CONTEXT2) {
|
||||
int fd;
|
||||
u_char* hd;
|
||||
StdyFile* sf;
|
||||
|
|
@ -712,8 +712,8 @@ error:
|
|||
return ret;
|
||||
}
|
||||
|
||||
void sj_closeall() {
|
||||
while(dictlink) closedict(dictlink);
|
||||
void sj_closeall(SJ3_CONTEXT2) {
|
||||
while(dictlink) closedict(SJ3_CONTEXT_PASS dictlink);
|
||||
while(stdylink) closestdy(stdylink);
|
||||
}
|
||||
|
||||
|
|
@ -722,7 +722,7 @@ int set_dictpass(DictFile* dp, char* pass) {
|
|||
return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer);
|
||||
}
|
||||
|
||||
int set_stdypass(char* pass) {
|
||||
int set_stdypass(SJ3_CONTEXT char* pass) {
|
||||
StdyFile* sp;
|
||||
|
||||
sp = (StdyFile*)stdy_base;
|
||||
|
|
@ -740,7 +740,7 @@ int set_dictcmnt(DictFile* dp, char* cmnt) {
|
|||
return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer);
|
||||
}
|
||||
|
||||
int set_stdycmnt(char* cmnt) {
|
||||
int set_stdycmnt(SJ3_CONTEXT char* cmnt) {
|
||||
StdyFile* sp;
|
||||
|
||||
sp = (StdyFile*)stdy_base;
|
||||
|
|
@ -748,7 +748,7 @@ int set_stdycmnt(char* cmnt) {
|
|||
return putfile(sp->fd, 0, HEADERLENGTH + COMMENTLENGTH, sp->header);
|
||||
}
|
||||
|
||||
int get_stdysize(int* stynum, int* clstep, int* cllen) {
|
||||
int get_stdysize(SJ3_CONTEXT int* stynum, int* clstep, int* cllen) {
|
||||
*stynum = STUDYMAX;
|
||||
*clstep = CLSTUDYSTEP;
|
||||
*cllen = CLSTUDYLEN;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include "sj_kcnv.h"
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
void selclrec() {
|
||||
void selclrec(SJ3_CONTEXT2) {
|
||||
int len;
|
||||
CLREC* rec;
|
||||
|
||||
|
|
@ -85,10 +85,10 @@ void selclrec() {
|
|||
ch = *(cnvstart + len);
|
||||
*(cnvstart + len) = 0;
|
||||
|
||||
mkjiritu(DO_IKKATU);
|
||||
mkjiritu(SJ3_CONTEXT_PASS DO_IKKATU);
|
||||
|
||||
mkbunsetu();
|
||||
if(!maxclptr) wakachi();
|
||||
mkbunsetu(SJ3_CONTEXT_PASS2);
|
||||
if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2);
|
||||
|
||||
jrt1st = maxjptr;
|
||||
selcl = clt1st = maxclptr;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ cnvrow(JREC* rec, TypeCnct row) {
|
|||
return row;
|
||||
}
|
||||
|
||||
int setconj(TypeGram hinsi, JREC* jrec, CREC* crec) {
|
||||
int setconj(SJ3_CONTEXT TypeGram hinsi, JREC* jrec, CREC* crec) {
|
||||
u_char* yptr;
|
||||
int cmp;
|
||||
TypeCnct right;
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ int setj_atrb(u_char* p) {
|
|||
return 2;
|
||||
}
|
||||
|
||||
int setj_ofs(u_char* p) {
|
||||
int setj_ofs(SJ3_CONTEXT u_char* p) {
|
||||
int contf = TRUE;
|
||||
|
||||
p = dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1);
|
||||
|
|
@ -60,7 +60,7 @@ int setj_ofs(u_char* p) {
|
|||
break;
|
||||
|
||||
case OFFSETASSYUKU:
|
||||
p += setj_ofs(p);
|
||||
p += setj_ofs(SJ3_CONTEXT_PASS p);
|
||||
break;
|
||||
|
||||
case AIATTRIBUTE:
|
||||
|
|
@ -72,7 +72,7 @@ int setj_ofs(u_char* p) {
|
|||
break;
|
||||
|
||||
case KANJIASSYUKU:
|
||||
p += setj_knj(p);
|
||||
p += setj_knj(SJ3_CONTEXT_PASS p);
|
||||
break;
|
||||
|
||||
case KANJISTREND:
|
||||
|
|
@ -87,7 +87,7 @@ int setj_ofs(u_char* p) {
|
|||
return 2;
|
||||
}
|
||||
|
||||
int setj_knj(u_char* p) {
|
||||
int setj_knj(SJ3_CONTEXT u_char* p) {
|
||||
int contf = TRUE;
|
||||
|
||||
p = askknj[*p & KNJASSYUKUMASK];
|
||||
|
|
@ -104,7 +104,7 @@ int setj_knj(u_char* p) {
|
|||
break;
|
||||
|
||||
case OFFSETASSYUKU:
|
||||
p += setj_ofs(p);
|
||||
p += setj_ofs(SJ3_CONTEXT_PASS p);
|
||||
break;
|
||||
|
||||
case AIATTRIBUTE:
|
||||
|
|
@ -116,7 +116,7 @@ int setj_knj(u_char* p) {
|
|||
break;
|
||||
|
||||
case KANJIASSYUKU:
|
||||
p += setj_knj(p);
|
||||
p += setj_knj(SJ3_CONTEXT_PASS p);
|
||||
break;
|
||||
|
||||
case KANJISTREND:
|
||||
|
|
@ -144,7 +144,7 @@ int setj_norm3(u_char* p) {
|
|||
}
|
||||
|
||||
static u_char
|
||||
chkhead(TypeGram gram) {
|
||||
chkhead(SJ3_CONTEXT TypeGram gram) {
|
||||
if(!headcode) return TRUE;
|
||||
|
||||
if(headcode == SETTOU_DAI) {
|
||||
|
|
@ -162,7 +162,7 @@ chkhead(TypeGram gram) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void setjrec(u_char* tagp, int mode) {
|
||||
void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
|
||||
TypeGram gram;
|
||||
u_char* ptr;
|
||||
u_char* endp;
|
||||
|
|
@ -195,7 +195,7 @@ void setjrec(u_char* tagp, int mode) {
|
|||
break;
|
||||
|
||||
case OFFSETASSYUKU:
|
||||
tmp += setj_ofs(tmp);
|
||||
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp);
|
||||
break;
|
||||
|
||||
case AIATTRIBUTE:
|
||||
|
|
@ -207,7 +207,7 @@ void setjrec(u_char* tagp, int mode) {
|
|||
break;
|
||||
|
||||
case KANJIASSYUKU:
|
||||
tmp += setj_knj(tmp);
|
||||
tmp += setj_knj(SJ3_CONTEXT_PASS tmp);
|
||||
break;
|
||||
|
||||
case KANJISTREND:
|
||||
|
|
@ -221,9 +221,9 @@ void setjrec(u_char* tagp, int mode) {
|
|||
|
||||
if((gram = *ptr) == IKKATU && !(mode & DO_IKKATU)) continue;
|
||||
|
||||
if(!chkhead(gram)) continue;
|
||||
if(!chkhead(SJ3_CONTEXT_PASS gram)) continue;
|
||||
|
||||
if(!(rec = argjrec(len, (JREC*)NULL))) continue;
|
||||
if(!(rec = argjrec(SJ3_CONTEXT_PASS len, (JREC*)NULL))) continue;
|
||||
|
||||
rec->jseg = prevseg;
|
||||
rec->jofsst = ptr - dicbuf;
|
||||
|
|
@ -235,7 +235,7 @@ void setjrec(u_char* tagp, int mode) {
|
|||
}
|
||||
}
|
||||
|
||||
void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
|
||||
void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
|
||||
u_char* ptr;
|
||||
u_char* endp;
|
||||
u_char* tmp;
|
||||
|
|
@ -263,7 +263,7 @@ void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
|
|||
break;
|
||||
|
||||
case OFFSETASSYUKU:
|
||||
tmp += setj_ofs(tmp);
|
||||
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp);
|
||||
break;
|
||||
|
||||
case AIATTRIBUTE:
|
||||
|
|
@ -275,7 +275,7 @@ void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
|
|||
break;
|
||||
|
||||
case KANJIASSYUKU:
|
||||
tmp += setj_knj(tmp);
|
||||
tmp += setj_knj(SJ3_CONTEXT_PASS tmp);
|
||||
break;
|
||||
|
||||
case KANJISTREND:
|
||||
|
|
@ -289,7 +289,7 @@ void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
|
|||
|
||||
if(gram != *ptr) continue;
|
||||
|
||||
if(!(jrec = argjrec((int)(rec->jlen + len), rec))) continue;
|
||||
if(!(jrec = argjrec(SJ3_CONTEXT_PASS(int)(rec->jlen + len), rec))) continue;
|
||||
|
||||
jrec->jseg = prevseg;
|
||||
jrec->jofsst = ptr - dicbuf;
|
||||
|
|
@ -298,10 +298,10 @@ void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
|
|||
}
|
||||
}
|
||||
|
||||
void setcrec(u_char* tagp) {
|
||||
void setcrec(SJ3_CONTEXT u_char* tagp) {
|
||||
JREC* rec;
|
||||
|
||||
if(!(rec = argjrec((int)ClYomiLen(tagp), (JREC*)NULL))) return;
|
||||
if(!(rec = argjrec(SJ3_CONTEXT_PASS(int) ClYomiLen(tagp), (JREC*)NULL))) return;
|
||||
|
||||
rec->jofsst = tagp - CLSTUDYDICT;
|
||||
rec->class = C_BUNSETU;
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
static int hiraknj(u_char*);
|
||||
static int hiraknj(SJ3_CONTEXT u_char*);
|
||||
|
||||
void setkouho(CLREC* clrec, TypeDicOfs offs, int mode) {
|
||||
void setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) {
|
||||
JREC* jrec;
|
||||
KHREC* kptr;
|
||||
u_char* fptr;
|
||||
|
|
@ -85,7 +85,7 @@ void setkouho(CLREC* clrec, TypeDicOfs offs, int mode) {
|
|||
kptr->sttfg = 1;
|
||||
kptr->sttkj = 0;
|
||||
|
||||
i = hiraknj(dicbuf + offs);
|
||||
i = hiraknj(SJ3_CONTEXT_PASS dicbuf + offs);
|
||||
if(offs > 1 && (i == 2 || i == 3)) return;
|
||||
|
||||
if(khcount >= MAXKOUHONUMBER) return;
|
||||
|
|
@ -118,7 +118,7 @@ void setkouho(CLREC* clrec, TypeDicOfs offs, int mode) {
|
|||
}
|
||||
}
|
||||
|
||||
void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
|
||||
void ph_setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
|
||||
JREC* jrec;
|
||||
u_char* p;
|
||||
|
||||
|
|
@ -154,7 +154,7 @@ void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
|
|||
}
|
||||
|
||||
static int
|
||||
hiraknj(u_char* p) {
|
||||
hiraknj(SJ3_CONTEXT u_char* p) {
|
||||
char flg = TRUE;
|
||||
int i;
|
||||
int result;
|
||||
|
|
@ -171,7 +171,7 @@ hiraknj(u_char* p) {
|
|||
break;
|
||||
|
||||
case OFFSETASSYUKU:
|
||||
result = hiraknj_ofs(p, &i);
|
||||
result = hiraknj_ofs(SJ3_CONTEXT_PASS p, &i);
|
||||
break;
|
||||
|
||||
case AIATTRIBUTE:
|
||||
|
|
@ -183,7 +183,7 @@ hiraknj(u_char* p) {
|
|||
break;
|
||||
|
||||
case KANJIASSYUKU:
|
||||
result = hiraknj_knj(p, &i);
|
||||
result = hiraknj_knj(SJ3_CONTEXT_PASS p, &i);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -203,14 +203,14 @@ int hiraknj_atrb(u_char* p, int* len) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int hiraknj_ofs(u_char* p, int* len) {
|
||||
int hiraknj_ofs(SJ3_CONTEXT u_char* p, int* len) {
|
||||
*len = 2;
|
||||
return hiraknj(dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1));
|
||||
return hiraknj(SJ3_CONTEXT_PASS dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1));
|
||||
}
|
||||
|
||||
int hiraknj_knj(u_char* p, int* len) {
|
||||
int hiraknj_knj(SJ3_CONTEXT u_char* p, int* len) {
|
||||
*len = 1;
|
||||
return hiraknj(askknj[*p & KNJASSYUKUMASK]);
|
||||
return hiraknj(SJ3_CONTEXT_PASS askknj[*p & KNJASSYUKUMASK]);
|
||||
}
|
||||
|
||||
int hiraknj_hask(u_char* p, int* len) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ getstb(TypeGram hinsi) {
|
|||
return Stbadr(hinsi);
|
||||
}
|
||||
|
||||
void setubi(JREC* rec, u_char* stbtbl) {
|
||||
void setubi(SJ3_CONTEXT JREC* rec, u_char* stbtbl) {
|
||||
u_char* stb;
|
||||
u_char* yptr;
|
||||
u_char* sptr;
|
||||
|
|
@ -68,7 +68,7 @@ void setubi(JREC* rec, u_char* stbtbl) {
|
|||
|
||||
if((cmp != MATCH) || isdpnd(*(yptr + slen))) continue;
|
||||
|
||||
if(!(new = argjrec((int)(rec->jlen + slen), rec))) continue;
|
||||
if(!(new = argjrec(SJ3_CONTEXT_PASS(int)(rec->jlen + slen), rec))) continue;
|
||||
|
||||
new->stbofs = (u_char)(stb - stbtbl);
|
||||
new->flags |= StbBakeru(stb) ? JFLAG_KA : 0;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int yomicmp(u_char* ptr1, u_char* ptr2, u_char* saml) {
|
||||
int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
|
||||
int i, j;
|
||||
int same;
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ int yomicmp(u_char* ptr1, u_char* ptr2, u_char* saml) {
|
|||
j = getnlen(ptr2);
|
||||
|
||||
if(j == 0) {
|
||||
ptr2 = get_idxptr(prevseg);
|
||||
ptr2 = get_idxptr(SJ3_CONTEXT_PASS prevseg);
|
||||
|
||||
for(i = same; i; i--)
|
||||
if(*ptr1++ != *ptr2++) return OVER;
|
||||
|
|
@ -79,7 +79,7 @@ int yomicmp(u_char* ptr1, u_char* ptr2, u_char* saml) {
|
|||
}
|
||||
|
||||
u_char*
|
||||
srchdict(u_char* tagp) {
|
||||
srchdict(SJ3_CONTEXT u_char* tagp) {
|
||||
TypeDicSeg segno;
|
||||
int cmp;
|
||||
int maxlen;
|
||||
|
|
@ -88,7 +88,7 @@ srchdict(u_char* tagp) {
|
|||
|
||||
while((int)dicinl <= maxlen) {
|
||||
|
||||
segno = srchidx(prevseg, (int)dicinl);
|
||||
segno = srchidx(SJ3_CONTEXT_PASS prevseg, (int)dicinl);
|
||||
|
||||
(*curdict->getdic)(curdict, segno);
|
||||
|
||||
|
|
@ -116,13 +116,13 @@ srchdict(u_char* tagp) {
|
|||
}
|
||||
|
||||
if(tagp == dicbuf) {
|
||||
get_askknj();
|
||||
get_askknj(SJ3_CONTEXT_PASS2);
|
||||
tagp += *tagp + 1;
|
||||
}
|
||||
|
||||
while(!segend(tagp)) {
|
||||
|
||||
cmp = yomicmp(cnvstart, tagp, &dicsaml);
|
||||
cmp = yomicmp(SJ3_CONTEXT_PASS cnvstart, tagp, &dicsaml);
|
||||
|
||||
if((int)dicsaml > maxlen) return NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int srchhead() {
|
||||
int srchhead(SJ3_CONTEXT2) {
|
||||
if(*cnvstart == _O) {
|
||||
headcode = SETTOU_O;
|
||||
headlen = 1;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
#include "sj_kanakan.h"
|
||||
|
||||
TypeDicSeg
|
||||
srchidx(TypeDicSeg low, int len) {
|
||||
srchidx(SJ3_CONTEXT TypeDicSeg low, int len) {
|
||||
TypeDicSeg high;
|
||||
TypeDicSeg mid;
|
||||
int cmp;
|
||||
|
|
@ -52,7 +52,7 @@ srchidx(TypeDicSeg low, int len) {
|
|||
|
||||
mid = (low + high) >> 1;
|
||||
|
||||
target = get_idxptr(mid);
|
||||
target = get_idxptr(SJ3_CONTEXT_PASS mid);
|
||||
|
||||
cmp = istrcmp(cnvstart, target, len, sstrlen(target));
|
||||
|
||||
|
|
|
|||
|
|
@ -41,10 +41,10 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
static void srch_kurai1(u_char*, u_char*), srch_kurai2(u_char*, u_char*);
|
||||
static void srch_kurai1(SJ3_CONTEXT u_char*, u_char*), srch_kurai2(SJ3_CONTEXT u_char*, u_char*);
|
||||
|
||||
static void
|
||||
srch_josuu_sub(JREC* jrec, TypeGram gram) {
|
||||
srch_josuu_sub(SJ3_CONTEXT JREC* jrec, TypeGram gram) {
|
||||
u_char* tagp;
|
||||
DICTL* dp;
|
||||
|
||||
|
|
@ -53,12 +53,12 @@ srch_josuu_sub(JREC* jrec, TypeGram gram) {
|
|||
dicinl = 1;
|
||||
dicsaml = 0;
|
||||
prevseg = -1;
|
||||
while((tagp = srchdict(tagp))) setnumrec(tagp, jrec, gram);
|
||||
while((tagp = srchdict(SJ3_CONTEXT_PASS tagp))) setnumrec(SJ3_CONTEXT_PASS tagp, jrec, gram);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
srch_josuu(JREC* jrec) {
|
||||
srch_josuu(SJ3_CONTEXT JREC* jrec) {
|
||||
u_char* kp;
|
||||
int klen;
|
||||
int len;
|
||||
|
|
@ -71,16 +71,16 @@ srch_josuu(JREC* jrec) {
|
|||
cnvstart += (len = jrec->numlen);
|
||||
cnvlen -= len;
|
||||
|
||||
srch_josuu_sub(jrec, JOSUUSI);
|
||||
srch_josuu_sub(SJ3_CONTEXT_PASS jrec, JOSUUSI);
|
||||
|
||||
if(!headcode) srch_josuu_sub(jrec, JOSUUSI2);
|
||||
if(!headcode) srch_josuu_sub(SJ3_CONTEXT_PASS jrec, JOSUUSI2);
|
||||
|
||||
cnvstart = kp;
|
||||
cnvlen = klen;
|
||||
}
|
||||
|
||||
static void
|
||||
setnrec_sub(u_char* p, u_short flag, int stb) {
|
||||
setnrec_sub(SJ3_CONTEXT u_char* p, u_short flag, int stb) {
|
||||
JREC* rec;
|
||||
int len1;
|
||||
int len2;
|
||||
|
|
@ -101,7 +101,7 @@ setnrec_sub(u_char* p, u_short flag, int stb) {
|
|||
return;
|
||||
}
|
||||
|
||||
if((rec = argjrec(len1, (JREC*)NULL))) {
|
||||
if((rec = argjrec(SJ3_CONTEXT_PASS len1, (JREC*)NULL))) {
|
||||
rec->class = suuji_class;
|
||||
rec->hinsi = SUUSI;
|
||||
rec->sttofs = headcode;
|
||||
|
|
@ -109,16 +109,16 @@ setnrec_sub(u_char* p, u_short flag, int stb) {
|
|||
rec->flags = flag;
|
||||
rec->numlen = (u_char)len2;
|
||||
|
||||
if(!stb) srch_josuu(rec);
|
||||
if(!stb) srch_josuu(SJ3_CONTEXT_PASS rec);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
setnrec(u_char* p, u_short flag) {
|
||||
setnrec_sub(p, flag, 0);
|
||||
setnrec(SJ3_CONTEXT u_char* p, u_short flag) {
|
||||
setnrec_sub(SJ3_CONTEXT_PASS p, flag, 0);
|
||||
|
||||
if(!headcode && (*p == Y_S_KIGOU2)) {
|
||||
setnrec_sub(p + 1, flag, -1);
|
||||
setnrec_sub(SJ3_CONTEXT_PASS p + 1, flag, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -174,7 +174,7 @@ string_cmp(u_char* s, int l, u_char* d) {
|
|||
}
|
||||
|
||||
static int
|
||||
check_num(u_char* ptr) {
|
||||
check_num(SJ3_CONTEXT u_char* ptr) {
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
|
|
@ -256,13 +256,13 @@ check_num(u_char* ptr) {
|
|||
|
||||
if(cnt > 1) flag |= JFLAG_NSN;
|
||||
|
||||
setnrec(ptr, flag);
|
||||
setnrec(SJ3_CONTEXT_PASS ptr, flag);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
srch_number1(u_char* ptr) {
|
||||
srch_number1(SJ3_CONTEXT u_char* ptr) {
|
||||
u_char ch;
|
||||
u_char mode;
|
||||
u_char* p;
|
||||
|
|
@ -291,19 +291,19 @@ srch_number1(u_char* ptr) {
|
|||
case C_N_ARABIA:
|
||||
if(!(mode & SJTBLNARABIAF)) break;
|
||||
|
||||
check_num(tptr);
|
||||
srch_number1(tptr);
|
||||
srch_kurai2(tptr, (u_char*)NULL);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
|
||||
break;
|
||||
|
||||
case C_N_SUUJI:
|
||||
if(mode & (SJTBLNARABIAF | SJTBLNYOMIF)) break;
|
||||
|
||||
check_num(tptr);
|
||||
srch_number1(tptr);
|
||||
srch_kurai1(tptr, (u_char*)NULL);
|
||||
srch_kurai2(tptr, (u_char*)NULL);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
|
||||
break;
|
||||
|
||||
|
|
@ -315,9 +315,9 @@ srch_number1(u_char* ptr) {
|
|||
suuji_class = C_N_NANSUU;
|
||||
}
|
||||
|
||||
check_num(tptr);
|
||||
srch_kurai1(tptr, SjTblCnctP(p));
|
||||
srch_kurai2(tptr, SjTblCnctP(p));
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai1(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p));
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p));
|
||||
|
||||
if(mode & SJTBLNNANSUUF) suuji_class = cls;
|
||||
break;
|
||||
|
|
@ -325,9 +325,9 @@ srch_number1(u_char* ptr) {
|
|||
default:
|
||||
if(mode & SJTBLNARABIAF) {
|
||||
suuji_class = C_N_ARABIA;
|
||||
check_num(tptr);
|
||||
srch_number1(tptr);
|
||||
srch_kurai2(tptr, (u_char*)NULL);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
|
||||
suuji_class = C_N_KAZU;
|
||||
} else if(mode & SJTBLNYOMIF) {
|
||||
|
|
@ -335,21 +335,21 @@ srch_number1(u_char* ptr) {
|
|||
suuji_class = C_N_NANSUU;
|
||||
else
|
||||
suuji_class = C_N_KAZU;
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
} else if(mode & SJTBLNNARABIF) {
|
||||
suuji_class = C_N_SUUJI;
|
||||
check_num(tptr);
|
||||
srch_number1(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
break;
|
||||
} else {
|
||||
suuji_class = C_N_SUUJI;
|
||||
srch_number1(tptr);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
|
||||
suuji_class = C_N_KAZU;
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
}
|
||||
srch_kurai1(tptr, SjTblCnctP(p));
|
||||
srch_kurai2(tptr, SjTblCnctP(p));
|
||||
srch_kurai1(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p));
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -358,7 +358,7 @@ srch_number1(u_char* ptr) {
|
|||
}
|
||||
|
||||
static void
|
||||
srch_kurai1(u_char* ptr, u_char* cnct) {
|
||||
srch_kurai1(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
|
||||
u_char ch;
|
||||
u_char* p;
|
||||
int l;
|
||||
|
|
@ -386,7 +386,7 @@ srch_kurai1(u_char* ptr, u_char* cnct) {
|
|||
cls = suuji_class;
|
||||
suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
|
||||
suuji_ubuf[suuji_keta - 1] |= (keta << 4);
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
suuji_class = cls;
|
||||
suuji_ubuf[suuji_keta - 1] &= 0xcf;
|
||||
continue;
|
||||
|
|
@ -401,11 +401,11 @@ srch_kurai1(u_char* ptr, u_char* cnct) {
|
|||
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 4));
|
||||
}
|
||||
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
|
||||
srch_number1(tptr);
|
||||
srch_kurai1(tptr, (u_char*)NULL);
|
||||
srch_kurai2(tptr, Kr1TblCnctP(p));
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
srch_kurai2(SJ3_CONTEXT_PASS tptr, Kr1TblCnctP(p));
|
||||
|
||||
if(cnct)
|
||||
suuji_ubuf[suuji_keta - 1] &= 0xcf;
|
||||
|
|
@ -415,7 +415,7 @@ srch_kurai1(u_char* ptr, u_char* cnct) {
|
|||
}
|
||||
|
||||
static void
|
||||
srch_kurai2(u_char* ptr, u_char* cnct) {
|
||||
srch_kurai2(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
|
||||
u_char ch;
|
||||
u_char* p;
|
||||
int l;
|
||||
|
|
@ -445,7 +445,7 @@ srch_kurai2(u_char* ptr, u_char* cnct) {
|
|||
suuji_ubuf[suuji_keta - 1] |= (keta << 6);
|
||||
cls = suuji_class;
|
||||
suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
suuji_class = cls;
|
||||
suuji_ubuf[suuji_keta - 1] &= 0x3f;
|
||||
continue;
|
||||
|
|
@ -459,10 +459,10 @@ srch_kurai2(u_char* ptr, u_char* cnct) {
|
|||
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 6));
|
||||
}
|
||||
|
||||
check_num(tptr);
|
||||
check_num(SJ3_CONTEXT_PASS tptr);
|
||||
|
||||
srch_number1(tptr);
|
||||
srch_kurai1(tptr, (u_char*)NULL);
|
||||
srch_number1(SJ3_CONTEXT_PASS tptr);
|
||||
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL);
|
||||
|
||||
if(cnct)
|
||||
suuji_ubuf[suuji_keta - 1] &= 0x3f;
|
||||
|
|
@ -472,7 +472,7 @@ srch_kurai2(u_char* ptr, u_char* cnct) {
|
|||
}
|
||||
|
||||
static void
|
||||
srch_number2(u_char* p) {
|
||||
srch_number2(SJ3_CONTEXT u_char* p) {
|
||||
u_char ch;
|
||||
int i;
|
||||
|
||||
|
|
@ -507,68 +507,68 @@ srch_number2(u_char* p) {
|
|||
suuji_keta++;
|
||||
|
||||
if(!suuji_comma && suuji_keta > NUMKETALENGTH) {
|
||||
setnrec(p, 0);
|
||||
setnrec(SJ3_CONTEXT_PASS p, 0);
|
||||
} else if(suuji_comma == 3) {
|
||||
if(suuji_keta <= NUMKETALENGTH) {
|
||||
suuji_class = C_N_ARACMA;
|
||||
check_num(p);
|
||||
check_num(SJ3_CONTEXT_PASS p);
|
||||
} else {
|
||||
suuji_class = C_N_KAZULCMA;
|
||||
setnrec(p, 0);
|
||||
setnrec(SJ3_CONTEXT_PASS p, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
srchnum_sub(u_char* p) {
|
||||
srchnum_sub(SJ3_CONTEXT u_char* p) {
|
||||
suuji_yptr = p;
|
||||
|
||||
suuji_comma = suuji_keta = 0;
|
||||
suuji_class = 0;
|
||||
srch_number1(p);
|
||||
srch_number1(SJ3_CONTEXT_PASS p);
|
||||
|
||||
suuji_keta = 0;
|
||||
suuji_class = C_N_KAZU;
|
||||
srch_kurai1(p, (u_char*)NULL);
|
||||
srch_kurai1(SJ3_CONTEXT_PASS p, (u_char*)NULL);
|
||||
if(suuji_exit) return;
|
||||
|
||||
srch_number2(p);
|
||||
srch_number2(SJ3_CONTEXT_PASS p);
|
||||
}
|
||||
|
||||
void srchnum() {
|
||||
void srchnum(SJ3_CONTEXT2) {
|
||||
suuji_len = suuji_exit = 0;
|
||||
|
||||
srchnum_sub(cnvstart);
|
||||
srchnum_sub(SJ3_CONTEXT_PASS cnvstart);
|
||||
|
||||
if(!headcode && (*cnvstart == Y_S_KIGOU1)) {
|
||||
headcode = SETTOU_KIGOU;
|
||||
headlen = 1;
|
||||
|
||||
srchnum_sub(cnvstart + 1);
|
||||
srchnum_sub(SJ3_CONTEXT_PASS cnvstart + 1);
|
||||
|
||||
headcode = headlen = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void setwdnum(u_char* p, int len, u_short* wd) {
|
||||
void setwdnum(SJ3_CONTEXT u_char* p, int len, u_short* wd) {
|
||||
suuji_len = (u_char)len;
|
||||
suuji_wkeep = wd;
|
||||
suuji_ukeep = NULL;
|
||||
headcode = headlen = 0;
|
||||
suuji_exit = 0;
|
||||
|
||||
srchnum_sub(p);
|
||||
srchnum_sub(SJ3_CONTEXT_PASS p);
|
||||
}
|
||||
|
||||
int setucnum(u_char* p, int len, u_char* ud) {
|
||||
int setucnum(SJ3_CONTEXT u_char* p, int len, u_char* ud) {
|
||||
suuji_len = (u_char)len;
|
||||
suuji_wkeep = NULL;
|
||||
suuji_ukeep = ud;
|
||||
headcode = headlen = 0;
|
||||
suuji_exit = 0;
|
||||
|
||||
srchnum_sub(p);
|
||||
srchnum_sub(SJ3_CONTEXT_PASS p);
|
||||
|
||||
return (int)suuji_exit;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int study(STDYOUT* stdy) {
|
||||
int study(SJ3_CONTEXT STDYOUT* stdy) {
|
||||
STDYOUT outp;
|
||||
STDYIN* p1;
|
||||
STDYIN* p2;
|
||||
|
|
@ -54,7 +54,7 @@ int study(STDYOUT* stdy) {
|
|||
|
||||
if(outp.stdy1.offset == 0) return STUDYNOTSTUDY;
|
||||
|
||||
p1 = srchstdy(outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid);
|
||||
p1 = srchstdy(SJ3_CONTEXT_PASS outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid);
|
||||
if(p1) {
|
||||
nm = p1->styno;
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ int study(STDYOUT* stdy) {
|
|||
|
||||
p1->nmflg = outp.stdy1.nmflg;
|
||||
|
||||
putstydic();
|
||||
putstydic(SJ3_CONTEXT_PASS2);
|
||||
|
||||
return STUDYNORMEND;
|
||||
}
|
||||
|
|
@ -127,13 +127,13 @@ int study(STDYOUT* stdy) {
|
|||
p1->nmflg = outp.stdy1.nmflg;
|
||||
STUDYCOUNT += 1;
|
||||
|
||||
putstydic();
|
||||
putstydic(SJ3_CONTEXT_PASS2);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
STDYIN*
|
||||
srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) {
|
||||
srchstdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) {
|
||||
int high;
|
||||
int mid;
|
||||
int low;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int terminate(TypeCnct right, u_char* yomi) {
|
||||
int terminate(SJ3_CONTEXT TypeCnct right, u_char* yomi) {
|
||||
u_char ch;
|
||||
|
||||
if((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER))
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
void wakachi() {
|
||||
void wakachi(SJ3_CONTEXT2) {
|
||||
JREC* jrec;
|
||||
CLREC* clrec;
|
||||
|
||||
|
|
@ -66,24 +66,24 @@ void wakachi() {
|
|||
i = maxlen;
|
||||
}
|
||||
|
||||
if(!(jrec = argjrec(i, (JREC*)NULL))) return;
|
||||
if(!(jrec = argjrec(SJ3_CONTEXT_PASS i, (JREC*)NULL))) return;
|
||||
|
||||
jrec->class = C_WAKACHI;
|
||||
jrec->hinsi = D_MEISI_1;
|
||||
|
||||
if(Chrtbl[*(next - 1)] & TAI_KGU)
|
||||
srchfzk(jrec, next, R_DAIMEISI, 0);
|
||||
srchfzk(SJ3_CONTEXT_PASS jrec, next, R_DAIMEISI, 0);
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
if(!(jrec = argjrec(0, (JREC*)NULL))) return;
|
||||
if(!(jrec = argjrec(SJ3_CONTEXT_PASS 0, (JREC*)NULL))) return;
|
||||
jrec->class = C_WAKACHI;
|
||||
jrec->hinsi = MEISI_6;
|
||||
|
||||
while((int)jrec->jlen < maxlen) {
|
||||
|
||||
count = setconj((TypeGram)MEISI_6, jrec, crec);
|
||||
count = setconj(SJ3_CONTEXT_PASS(TypeGram) MEISI_6, jrec, crec);
|
||||
|
||||
for(i = count; i-- > 0;) {
|
||||
|
||||
|
|
@ -92,17 +92,17 @@ void wakachi() {
|
|||
next = cnvstart + jrec->jlen + gobilen;
|
||||
|
||||
if(gobilen) {
|
||||
if(terminate(right, next)) {
|
||||
if(terminate(SJ3_CONTEXT_PASS right, next)) {
|
||||
fzk_ka_flg = 0;
|
||||
setclrec(jrec, next, right);
|
||||
setclrec(SJ3_CONTEXT_PASS jrec, next, right);
|
||||
}
|
||||
} else if((Chrtbl[*next] & NUMBER) && (jrec->jlen)) {
|
||||
fzk_ka_flg = 0;
|
||||
setclrec(jrec, next, right);
|
||||
setclrec(SJ3_CONTEXT_PASS jrec, next, right);
|
||||
return;
|
||||
}
|
||||
|
||||
srchfzk(jrec, next, right, 0);
|
||||
srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0);
|
||||
}
|
||||
|
||||
if(maxclptr) break;
|
||||
|
|
@ -115,7 +115,7 @@ void wakachi() {
|
|||
return;
|
||||
|
||||
if(jrec->jlen) {
|
||||
if((clrec = argclrec((int)jrec->jlen))) {
|
||||
if((clrec = argclrec(SJ3_CONTEXT_PASS(int) jrec->jlen))) {
|
||||
clrec->jnode = jrec;
|
||||
clrec->right = R_MEISI;
|
||||
clrec->kubun = K_TAIGEN;
|
||||
|
|
|
|||
|
|
@ -1,26 +1,27 @@
|
|||
#include <sj_kanakan.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
DictFile* dict;
|
||||
DICTL* node;
|
||||
char out[64 * 1024];
|
||||
int i = 0;
|
||||
char c[64 * 1024];
|
||||
char b;
|
||||
DictFile* dict;
|
||||
DICTL* node;
|
||||
char out[64 * 1024];
|
||||
int i = 0;
|
||||
char c[64 * 1024];
|
||||
char b;
|
||||
Sj3Context ctx;
|
||||
|
||||
work_base = calloc(1, sizeof(Global));
|
||||
node = calloc(1, sizeof(DICTL));
|
||||
ctx.work = calloc(1, sizeof(Global));
|
||||
|
||||
dictlist = node;
|
||||
node = calloc(1, sizeof(DICTL));
|
||||
ctx.work->Jdictlist = node;
|
||||
|
||||
initwork();
|
||||
initwork(&ctx);
|
||||
|
||||
dict = opendict("dic.bin", "");
|
||||
dict = opendict(&ctx, "dic.bin", "");
|
||||
|
||||
node->dict = &dict->dict;
|
||||
node->next = NULL;
|
||||
|
||||
seldict(dict->dict.dicid);
|
||||
seldict(&ctx, dict->dict.dicid);
|
||||
|
||||
c[0] = 0;
|
||||
|
||||
|
|
@ -36,7 +37,7 @@ int main(int argc, char** argv) {
|
|||
}
|
||||
|
||||
i = 0;
|
||||
while((strlen(c) - i) > 0 && (i += cl2knj((u_char*)c + i, strlen(c) - i, (u_char*)out))) {
|
||||
while((strlen(c) - i) > 0 && (i += cl2knj(&ctx, (u_char*)c + i, strlen(c) - i, (u_char*)out))) {
|
||||
STDYOUT* s = (STDYOUT*)out;
|
||||
|
||||
printf("> %s\n", out + sizeof(STDYOUT));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue