2008-01-11 11:57:08 +00:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2004 Iwata <iwata@quasiquote.org>
|
|
|
|
|
*
|
|
|
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
|
|
|
* copyright notice and this permission notice appear in all copies.
|
|
|
|
|
*
|
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef KANAKAN_H
|
|
|
|
|
#define KANAKAN_H
|
|
|
|
|
|
2026-06-19 01:31:17 +09:00
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
#include <io.h>
|
|
|
|
|
#else
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
2008-01-11 11:57:08 +00:00
|
|
|
#include "sj_kcnv.h"
|
|
|
|
|
#include "sj_struct.h"
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* NOTE:
|
|
|
|
|
* All of these funtions calling rule are not following
|
|
|
|
|
* ANSI like arguement lists, fun(dest, src, ...).
|
|
|
|
|
* There are fun(src, dest, ...).
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* adddic.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_int adddic(u_char*, u_char*, TypeGram);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* addelcmn.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void set_size(u_char*, int, int, int);
|
|
|
|
|
u_int addel_arg(u_char*, u_char*, TypeGram, u_char*, int);
|
|
|
|
|
int cvtknj(u_char*, u_char*, u_char*);
|
|
|
|
|
int srchkana(u_char**, int*);
|
|
|
|
|
int srchgram(u_char*, u_char**, TypeGram);
|
|
|
|
|
int srchkanji(u_char**, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
TypeIdxOfs count_uidx(void);
|
2026-06-19 01:49:53 +09:00
|
|
|
void chg_uidx(TypeDicSeg, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* alloc.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
JREC* alloc_jrec(void);
|
|
|
|
|
void free_jrec(JREC*);
|
|
|
|
|
CLREC* alloc_clrec(void);
|
|
|
|
|
void free_clrec(CLREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* charsize.c */
|
|
|
|
|
int codesize(u_char);
|
|
|
|
|
|
|
|
|
|
/* chrtbl.c */
|
|
|
|
|
extern u_char chrtbl[256];
|
|
|
|
|
|
|
|
|
|
/* cl2knj.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int cl2knj(u_char*, int, u_char*);
|
|
|
|
|
int nextcl(u_char*, int);
|
|
|
|
|
int prevcl(u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
int selectnum(void);
|
|
|
|
|
|
|
|
|
|
/* clstudy.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int clstudy(u_char*, u_char*, STDYOUT*);
|
|
|
|
|
void delclsub(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
void mkclidx(void);
|
|
|
|
|
|
|
|
|
|
/* cmpstr.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int cmpstr(u_char*, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* conjunc.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_char* conjadr[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* connect.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_char connadr[];
|
|
|
|
|
extern u_char* rigtadr[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* cvtclknj.c */
|
|
|
|
|
void cvtclknj(void);
|
|
|
|
|
|
|
|
|
|
/* cvtdict.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void cvtdict(KHREC*, CLREC*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
void cvtminasi(int);
|
2026-06-19 01:49:53 +09:00
|
|
|
void cvtwakachi(CLREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* cvtkanji.c */
|
|
|
|
|
void cvtphknj(void);
|
2026-06-19 01:49:53 +09:00
|
|
|
void cvtkouho(KHREC*);
|
|
|
|
|
void setstyrec(KHREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* deldic.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_int deldic(u_char*, u_char*, TypeGram);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* dict.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void get_askknj(void);
|
|
|
|
|
int seldict(TypeDicID);
|
|
|
|
|
u_char* get_idxptr(TypeDicSeg);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* functbl.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern VFunc cvtnum_func[];
|
2008-01-11 11:57:08 +00:00
|
|
|
extern UCPFunc getkan_func[];
|
2026-06-19 01:49:53 +09:00
|
|
|
extern IFunc setjrec_func[];
|
|
|
|
|
extern IFunc hiraknj_func[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* fuzoku.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void setclrec(JREC*, u_char*, TypeCnct);
|
|
|
|
|
RECURS void srchfzk(JREC*, u_char*, TypeCnct, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* fzkyomi.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_char* fzkadr[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* getkanji.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_char* getkan_none(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_hira(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_kata(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_knj(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_ofs(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
|
|
|
|
|
int getkanji(u_char*, int, u_char*, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* getrank.c */
|
|
|
|
|
void getrank(void);
|
|
|
|
|
|
|
|
|
|
/* hzstrlen.c */
|
|
|
|
|
int euc_codesize(u_char c);
|
2026-06-19 01:49:53 +09:00
|
|
|
int hzstrlen(u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* init.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void seg_count(DICT*);
|
|
|
|
|
void mkidxtbl(DICT*);
|
2008-01-11 11:57:08 +00:00
|
|
|
void initwork(void);
|
|
|
|
|
|
|
|
|
|
/* istrcmp.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int istrcmp(u_char*, u_char*, int, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* memcpy.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void sstrncpy(u_char*, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* memory.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
JREC* free_jlst(JREC*);
|
|
|
|
|
CLREC* free_clst(CLREC*, int);
|
|
|
|
|
void free_clall(CLREC*);
|
|
|
|
|
void free_jall(JREC*);
|
|
|
|
|
void freework(void);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mk2claus.c */
|
|
|
|
|
void mk2claus(void);
|
|
|
|
|
|
|
|
|
|
/* mkbunset.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void mkbunsetu(void);
|
|
|
|
|
CLREC* argclrec(int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mkjiritu.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void mkjiritu(int);
|
|
|
|
|
JREC* argjrec(int, JREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mkkouho.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void mkkouho(void);
|
|
|
|
|
u_char* makekan_none(u_char*, u_char*, int);
|
|
|
|
|
u_char* makekan_1byte(u_char*, u_char*, int);
|
|
|
|
|
u_char* makekan_knj(u_char*, u_char*, int);
|
|
|
|
|
u_char* makekan_ofs(u_char*, u_char*, int);
|
|
|
|
|
u_char* makekan_norm(u_char*, u_char*, int);
|
|
|
|
|
u_char* makekan_ascii(u_char*, u_char*, int);
|
|
|
|
|
int sel_sjmode(JREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mknumber.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void num_type00(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type01(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type02(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type03(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type04(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type05(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type06(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type07(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type08(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type09(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type10(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type11(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type12(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type13(u_char*, u_char*, JREC*);
|
|
|
|
|
void num_type14(u_char*, u_char*, JREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mvmemd.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void mvmemd(u_char*, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* mvmemi.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void mvmemi(u_char*, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* peepdic.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int getusr(u_char*);
|
|
|
|
|
int nextusr(u_char*);
|
|
|
|
|
int prevusr(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* ph2knj.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int ph2knj(u_char*, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* ph_khtbl.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int ph_khtbl(CLREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* priority.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int priority(CLREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
void pritiny(void);
|
|
|
|
|
|
|
|
|
|
/* prtytbl.c */
|
|
|
|
|
extern u_char taipri[7][45];
|
|
|
|
|
extern u_char sttpri[5][31];
|
|
|
|
|
|
|
|
|
|
/* s2ctbl.c */
|
|
|
|
|
extern u_char kigou[];
|
|
|
|
|
|
|
|
|
|
/* sdepend.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
DictFile* opendict(char*, char*);
|
|
|
|
|
int closedict(DictFile*);
|
|
|
|
|
void lock_dict(DictFile*, int);
|
|
|
|
|
void unlock_dict(DictFile*, int);
|
|
|
|
|
int is_dict_locked(DictFile*);
|
|
|
|
|
StdyFile* openstdy(char*, char*);
|
|
|
|
|
int closestdy(StdyFile*);
|
|
|
|
|
int putstydic(void);
|
|
|
|
|
int putcldic(void);
|
|
|
|
|
int makedict(char*, int, int, int);
|
|
|
|
|
int makestdy(char*, int, int, int);
|
|
|
|
|
void sj_closeall(void);
|
|
|
|
|
int set_dictpass(DictFile*, char*);
|
|
|
|
|
int set_stdypass(char*);
|
|
|
|
|
int set_dictcmnt(DictFile*, char*);
|
|
|
|
|
int set_stdycmnt(char*);
|
|
|
|
|
int get_stdysize(int*, int*, int*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* selclrec.c */
|
|
|
|
|
void selclrec(void);
|
|
|
|
|
|
|
|
|
|
/* selsuuji.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_short* selsjadrs[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* setconj.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int setconj(TypeGram, JREC*, CREC*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* setjrec.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int setj_atrb(u_char*);
|
|
|
|
|
int setj_ofs(u_char*);
|
|
|
|
|
int setj_knj(u_char*);
|
|
|
|
|
int setj_norm1(u_char*);
|
|
|
|
|
int setj_norm2(u_char*);
|
|
|
|
|
int setj_norm3(u_char*); /* unused??? */
|
|
|
|
|
void setjrec(u_char*, int);
|
|
|
|
|
void setnumrec(u_char*, JREC*, TypeGram);
|
|
|
|
|
void setcrec(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* setkouho.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
void setkouho(CLREC*, TypeDicOfs, int);
|
|
|
|
|
void ph_setkouho(CLREC*, TypeDicOfs, STDYIN*);
|
|
|
|
|
int hiraknj_atrb(u_char*, int*);
|
|
|
|
|
int hiraknj_ofs(u_char*, int*);
|
|
|
|
|
int hiraknj_knj(u_char*, int*);
|
|
|
|
|
int hiraknj_hask(u_char*, int*);
|
|
|
|
|
int hiraknj_kask(u_char*, int*);
|
|
|
|
|
int hiraknj_norm(u_char*, int*);
|
|
|
|
|
int hiraknj_hira(u_char*, int*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* setubi.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_char* getstb(TypeGram);
|
|
|
|
|
void setubi(JREC*, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* sj2code.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int sj2cd_chr(u_char*, u_char*);
|
|
|
|
|
int sj2cd_str(u_char*, u_char*, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* skiphblk.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_char* skiphblk(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* skipkstr.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
u_char* skipkstr(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* srchdict.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int yomicmp(u_char*, u_char*, u_char*);
|
|
|
|
|
u_char* srchdict(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* srchhead.c */
|
|
|
|
|
int srchhead(void);
|
|
|
|
|
|
|
|
|
|
/* srchidx.c */
|
|
|
|
|
TypeDicSeg srchidx(TypeDicSeg, int);
|
|
|
|
|
|
|
|
|
|
/* srchnum.c*/
|
|
|
|
|
void srchnum(void);
|
2026-06-19 01:49:53 +09:00
|
|
|
void setwdnum(u_char*, int, u_short*);
|
|
|
|
|
int setucnum(u_char*, int, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* sstrcmp.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int sstrcmp(u_char*, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* sstrlen.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int sstrlen(u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* sstrncmp.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int sstrncmp(u_char*, u_char* dst, int);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* stbtbl.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_char* stbadr[];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* stttbl.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
extern u_char* settou_ptr[];
|
|
|
|
|
extern u_char scncttbl[2][24];
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* study.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int study(STDYOUT*);
|
|
|
|
|
STDYIN* srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* suujitbl.c */
|
|
|
|
|
extern u_char suuji_tbl[];
|
|
|
|
|
extern u_char kurai1_tbl[];
|
|
|
|
|
extern u_char kurai2_tbl[];
|
|
|
|
|
extern u_char num1tbl[];
|
|
|
|
|
extern u_char num2tbl[];
|
|
|
|
|
extern u_char num3tbl[];
|
|
|
|
|
extern u_char num4tbl[];
|
|
|
|
|
extern u_char num5tbl[];
|
|
|
|
|
extern u_char num6tbl[];
|
|
|
|
|
|
|
|
|
|
/* terminat.c */
|
2026-06-19 01:49:53 +09:00
|
|
|
int terminate(TypeCnct, u_char*);
|
2008-01-11 11:57:08 +00:00
|
|
|
|
|
|
|
|
/* termtbl.c */
|
|
|
|
|
extern u_char termtbl[];
|
|
|
|
|
|
|
|
|
|
/* wakachi.c */
|
|
|
|
|
void wakachi(void);
|
|
|
|
|
|
|
|
|
|
#endif /* KANAKAN_H */
|