Rename to Sj4

This commit is contained in:
Nishi 2026-06-20 02:12:04 +09:00
commit 0a2839610b
121 changed files with 1471 additions and 1461 deletions

View file

@ -1,103 +0,0 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj3err.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:58 $
*/
#define SJ3_InternalError -1
#define SJ3_NormalEnd 0
#define SJ3_ServerDown 1
#define SJ3_OpenSocket 2
#define SJ3_ConnectSocket 3
#define SJ3_GetHostByName 4
#define SJ3_NotOpened 5
#define SJ3_NotEnoughMemory 6
#define SJ3_IllegalCommand 7
#define SJ3_DifferentVersion 11
#define SJ3_NoHostName 12
#define SJ3_NoUserName 13
#define SJ3_NotAllowedUser 14
#define SJ3_AlreadyConnected 15
#define SJ3_NotConnected 16
#define SJ3_TooLongParameter 21
#define SJ3_IllegalParameter 22
#define SJ3_BadDictID 31
#define SJ3_IllegalDictFile 32
#define SJ3_IllegalStdyFile 33
#define SJ3_IncorrectPasswd 34
#define SJ3_FileNotExist 35
#define SJ3_CannotAccessFile 36
#define SJ3_CannotOpenFile 37
#define SJ3_CannotCreateFile 38
#define SJ3_FileReadError 39
#define SJ3_FileWriteError 40
#define SJ3_FileSeekError 41
#define SJ3_StdyAlreadyOpened 51
#define SJ3_StdyFileNotOpened 52
#define SJ3_TooSmallStdyArea 53
#define SJ3_LockedByOther 61
#define SJ3_NotLocked 62
#define SJ3_NoSuchDict 71
#define SJ3_ReadOnlyDict 72
#define SJ3_DictLocked 73
#define SJ3_BadYomiString 74
#define SJ3_BadKanjiString 75
#define SJ3_BadHinsiCode 76
#define SJ3_AddDictFailed 81
#define SJ3_AlreadyExistWord 82
#define SJ3_NoMoreDouonWord 83
#define SJ3_NoMoreUserDict 84
#define SJ3_NoMoreIndexBlock 85
#define SJ3_DelDictFailed 91
#define SJ3_NoSuchWord 92
#define SJ3_DirAlreadyExist 101
#define SJ3_CannotCreateDir 102
#define SJ3_NoMoreDictData 111
#define SJ3_UserConnected 121
#define SJ3_TooLongPasswd 131
#define SJ3_TooLongComment 132
#define SJ3_CannotCodeConvert 133

View file

@ -1,357 +0,0 @@
/*
* 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
#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
#include "sj_kcnv.h"
#include "sj_struct.h"
#ifdef SJ3_GLOBAL
#define SJ3_CONTEXT
#define SJ3_CONTEXT2 void
#define SJ3_CONTEXT_PASS
#define SJ3_CONTEXT_PASS2
#else
#define SJ3_CONTEXT Sj3Context *ctx,
#define SJ3_CONTEXT2 Sj3Context* ctx
#define SJ3_CONTEXT_PASS ctx,
#define SJ3_CONTEXT_PASS2 ctx
#endif
/*
* NOTE:
* All of these funtions calling rule are not following
* ANSI like arguement lists, fun(dest, src, ...).
* There are fun(src, dest, ...).
*/
/* adddic.c */
u_int adddic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */
void set_size(u_char*, int, int, int);
u_int addel_arg(SJ3_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(SJ3_CONTEXT u_char*, u_char*, u_char*);
int srchkana(SJ3_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(SJ3_CONTEXT2);
void chg_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */
JREC* alloc_jrec(SJ3_CONTEXT2);
void free_jrec(SJ3_CONTEXT JREC*);
CLREC* alloc_clrec(SJ3_CONTEXT2);
void free_clrec(SJ3_CONTEXT CLREC*);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(SJ3_CONTEXT u_char*, int, u_char*);
int nextcl(SJ3_CONTEXT u_char*, int);
int prevcl(SJ3_CONTEXT u_char*, int);
int selectnum(SJ3_CONTEXT2);
/* clstudy.c */
int clstudy(SJ3_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(SJ3_CONTEXT u_char*);
void mkclidx(SJ3_CONTEXT2);
/* cmpstr.c */
int cmpstr(u_char*, u_char*);
/* conjunc.c */
extern u_char* conjadr[];
/* connect.c */
extern u_char connadr[];
extern u_char* rigtadr[];
/* cvtclknj.c */
void cvtclknj(SJ3_CONTEXT2);
/* cvtdict.c */
void cvtdict(SJ3_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(SJ3_CONTEXT int);
void cvtwakachi(SJ3_CONTEXT CLREC*);
/* cvtkanji.c */
void cvtphknj(SJ3_CONTEXT2);
void cvtkouho(SJ3_CONTEXT KHREC*);
void setstyrec(SJ3_CONTEXT KHREC*);
/* deldic.c */
u_int deldic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */
void get_askknj(SJ3_CONTEXT2);
int seldict(SJ3_CONTEXT TypeDicID);
u_char* get_idxptr(SJ3_CONTEXT TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(SJ3_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(SJ3_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */
extern u_char* fzkadr[];
/* getkanji.c */
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(SJ3_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_ofs(SJ3_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(SJ3_CONTEXT u_char*, int, u_char*, u_char*);
/* getrank.c */
void getrank(SJ3_CONTEXT2);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char*, int);
/* init.c */
void seg_count(SJ3_CONTEXT DICT*);
void mkidxtbl(SJ3_CONTEXT DICT*);
void initwork(SJ3_CONTEXT2);
#ifndef SJ3_GLOBAL
Sj3Context* alloccontext(const char*);
void free_context(Sj3Context*);
#endif
/* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */
void sstrncpy(u_char*, u_char*, int);
/* memory.c */
JREC* free_jlst(SJ3_CONTEXT JREC*);
CLREC* free_clst(SJ3_CONTEXT CLREC*, int);
void free_clall(SJ3_CONTEXT CLREC*);
void free_jall(SJ3_CONTEXT JREC*);
void freework(SJ3_CONTEXT2);
/* mk2claus.c */
void mk2claus(SJ3_CONTEXT2);
/* mkbunset.c */
void mkbunsetu(SJ3_CONTEXT2);
CLREC* argclrec(SJ3_CONTEXT int);
/* mkjiritu.c */
void mkjiritu(SJ3_CONTEXT int);
JREC* argjrec(SJ3_CONTEXT int, JREC*);
/* mkkouho.c */
void mkkouho(SJ3_CONTEXT2);
u_char* makekan_none(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_1byte(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_knj(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_norm(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_ascii(SJ3_CONTEXT u_char*, u_char*, int);
int sel_sjmode(JREC*);
/* mknumber.c */
void num_type00(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type01(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type02(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type03(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type04(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type05(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type06(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type07(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type08(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type09(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type10(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type11(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type12(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type13(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type14(SJ3_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */
void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */
void mvmemi(u_char*, u_char*, int);
/* peepdic.c */
int getusr(SJ3_CONTEXT u_char*);
int nextusr(SJ3_CONTEXT u_char*);
int prevusr(SJ3_CONTEXT u_char*);
/* ph2knj.c */
int ph2knj(SJ3_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */
int ph_khtbl(SJ3_CONTEXT CLREC*);
/* priority.c */
int priority(SJ3_CONTEXT CLREC*);
void pritiny(SJ3_CONTEXT2);
/* prtytbl.c */
extern u_char taipri[7][45];
extern u_char sttpri[5][31];
/* s2ctbl.c */
extern u_char kigou[];
/* sdepend.c */
DictFile* opendict(SJ3_CONTEXT char*, char*);
int closedict(SJ3_CONTEXT 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(SJ3_CONTEXT2);
int putcldic(SJ3_CONTEXT2);
int makedict(char*, int, int, int);
int makestdy(char*, int, int, int);
void sj_closeall(SJ3_CONTEXT2);
int set_dictpass(DictFile*, char*);
int set_stdypass(SJ3_CONTEXT char*);
int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(SJ3_CONTEXT char*);
int get_stdysize(SJ3_CONTEXT int*, int*, int*);
/* selclrec.c */
void selclrec(SJ3_CONTEXT2);
/* selsuuji.c */
extern u_short* selsjadrs[];
/* setconj.c */
int setconj(SJ3_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */
int setj_atrb(SJ3_CONTEXT u_char*);
int setj_ofs(SJ3_CONTEXT u_char*);
int setj_knj(SJ3_CONTEXT u_char*);
int setj_norm1(SJ3_CONTEXT u_char*);
int setj_norm2(SJ3_CONTEXT u_char*);
int setj_norm3(SJ3_CONTEXT u_char*); /* unused??? */
void setjrec(SJ3_CONTEXT u_char*, int);
void setnumrec(SJ3_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(SJ3_CONTEXT u_char*);
/* setkouho.c */
void setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(SJ3_CONTEXT u_char*, int*);
int hiraknj_ofs(SJ3_CONTEXT u_char*, int*);
int hiraknj_knj(SJ3_CONTEXT u_char*, int*);
int hiraknj_hask(SJ3_CONTEXT u_char*, int*);
int hiraknj_kask(SJ3_CONTEXT u_char*, int*);
int hiraknj_norm(SJ3_CONTEXT u_char*, int*);
int hiraknj_hira(SJ3_CONTEXT u_char*, int*);
/* setubi.c */
u_char* getstb(TypeGram);
void setubi(SJ3_CONTEXT JREC*, u_char*);
/* sj2code.c */
int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */
u_char* skiphblk(u_char*);
/* skipkstr.c */
u_char* skipkstr(u_char*);
/* srchdict.c */
int yomicmp(SJ3_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(SJ3_CONTEXT u_char*);
/* srchhead.c */
int srchhead(SJ3_CONTEXT2);
/* srchidx.c */
TypeDicSeg srchidx(SJ3_CONTEXT TypeDicSeg, int);
/* srchnum.c*/
void srchnum(SJ3_CONTEXT2);
void setwdnum(SJ3_CONTEXT u_char*, int, u_short*);
int setucnum(SJ3_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */
int sstrcmp(u_char*, u_char*);
/* sstrlen.c */
int sstrlen(u_char*);
/* sstrncmp.c */
int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */
extern u_char* stbadr[];
/* stttbl.c */
extern u_char* settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(SJ3_CONTEXT STDYOUT*);
STDYIN* srchstdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* 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 */
int terminate(SJ3_CONTEXT TypeCnct, u_char*);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(SJ3_CONTEXT2);
#endif /* KANAKAN_H */

View file

@ -63,16 +63,16 @@
#define LOGOUTFILE NULL
#define ERROROUTFILE "/dev/null"
#define ADDRESSFAMILY "unspec"
#define PORTNAME "sj3"
#define PORTNAME "sj4"
#define LOCALHOST "localhost"
#define CHROOTFLAG 1
#define MAINDICTIONARY "sj3main.dic"
#define MAINDICTIONARY "sj4main.dic"
#define USERDICTIONARY "private.dic"
#define STUDYFILE "study.dat"
/*
* Change the default Port number of sj3 for FreeBSD.
* Change the default Port number of sj4 for FreeBSD.
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20
*/
#define PORTNUMBER "3086"

View file

@ -28,72 +28,72 @@
*/
/*
* $SonyRCSfile: sj3cmd.h,v $
* $SonyRCSfile: sj4cmd.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:57 $
*/
#define SJ3SERV_VERSION_NO 2
#define SJ4SERV_VERSION_NO 2
#define SJ3_CONNECT 1
#define SJ3_DISCONNECT 2
#define SJ4_CONNECT 1
#define SJ4_DISCONNECT 2
#define SJ3_OPENDICT 11
#define SJ3_CLOSEDICT 12
#define SJ4_OPENDICT 11
#define SJ4_CLOSEDICT 12
#define SJ3_OPENSTDY 21
#define SJ3_CLOSESTDY 22
#define SJ3_STDYSIZE 23
#define SJ4_OPENSTDY 21
#define SJ4_CLOSESTDY 22
#define SJ4_STDYSIZE 23
#define SJ3_LOCK 31
#define SJ3_UNLOCK 32
#define SJ4_LOCK 31
#define SJ4_UNLOCK 32
#define SJ3_PH2KNJ 41
#define SJ4_PH2KNJ 41
#define SJ3_CL2KNJ 51
#define SJ3_NEXTCL 52
#define SJ3_PREVCL 53
#define SJ3_CL2KNJ_ALL 54
#define SJ3_CL2KNJ_CNT 55
#define SJ4_CL2KNJ 51
#define SJ4_NEXTCL 52
#define SJ4_PREVCL 53
#define SJ4_CL2KNJ_ALL 54
#define SJ4_CL2KNJ_CNT 55
#define SJ3_STUDY 61
#define SJ3_CLSTUDY 62
#define SJ4_STUDY 61
#define SJ4_CLSTUDY 62
#define SJ3_ADDDICT 71
#define SJ3_DELDICT 72
#define SJ4_ADDDICT 71
#define SJ4_DELDICT 72
#define SJ3_MAKEDICT 81
#define SJ3_MAKESTDY 82
#define SJ3_MAKEDIR 83
#define SJ3_ACCESS 84
#define SJ4_MAKEDICT 81
#define SJ4_MAKESTDY 82
#define SJ4_MAKEDIR 83
#define SJ4_ACCESS 84
#define SJ3_GETDICT 91
#define SJ3_NEXTDICT 92
#define SJ3_PREVDICT 93
#define SJ4_GETDICT 91
#define SJ4_NEXTDICT 92
#define SJ4_PREVDICT 93
#define SJ3_WHO 100
#define SJ3_QUIT 101
#define SJ3_KILL 102
#define SJ3_VERSION 103
#define SJ3_DICTPASS 104
#define SJ3_DICTCMNT 105
#define SJ3_STDYPASS 106
#define SJ3_STDYCMNT 107
#define SJ4_WHO 100
#define SJ4_QUIT 101
#define SJ4_KILL 102
#define SJ4_VERSION 103
#define SJ4_DICTPASS 104
#define SJ4_DICTCMNT 105
#define SJ4_STDYPASS 106
#define SJ4_STDYCMNT 107
#define SJ3_SETCVER 110
#define SJ3_PH2KNJ_EUC 111
#define SJ4_SETCVER 110
#define SJ4_PH2KNJ_EUC 111
#define SJ3_CL2KNJ_EUC 112
#define SJ3_NEXTCL_EUC 113
#define SJ3_PREVCL_EUC 114
#define SJ3_CL2KNJ_ALL_EUC 115
#define SJ3_CL2KNJ_CNT_EUC 116
#define SJ4_CL2KNJ_EUC 112
#define SJ4_NEXTCL_EUC 113
#define SJ4_PREVCL_EUC 114
#define SJ4_CL2KNJ_ALL_EUC 115
#define SJ4_CL2KNJ_CNT_EUC 116
#define SJ3_CLSTUDY_EUC 117
#define SJ4_CLSTUDY_EUC 117
#define SJ3_ADDDICT_EUC 118
#define SJ3_DELDICT_EUC 119
#define SJ4_ADDDICT_EUC 118
#define SJ4_DELDICT_EUC 119
#define SJ3_GETDICT_EUC 120
#define SJ3_NEXTDICT_EUC 121
#define SJ3_PREVDICT_EUC 122
#define SJ4_GETDICT_EUC 120
#define SJ4_NEXTDICT_EUC 121
#define SJ4_PREVDICT_EUC 122

103
include/sj4common/sj4err.h Normal file
View file

@ -0,0 +1,103 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj4err.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:58 $
*/
#define SJ4_InternalError -1
#define SJ4_NormalEnd 0
#define SJ4_ServerDown 1
#define SJ4_OpenSocket 2
#define SJ4_ConnectSocket 3
#define SJ4_GetHostByName 4
#define SJ4_NotOpened 5
#define SJ4_NotEnoughMemory 6
#define SJ4_IllegalCommand 7
#define SJ4_DifferentVersion 11
#define SJ4_NoHostName 12
#define SJ4_NoUserName 13
#define SJ4_NotAllowedUser 14
#define SJ4_AlreadyConnected 15
#define SJ4_NotConnected 16
#define SJ4_TooLongParameter 21
#define SJ4_IllegalParameter 22
#define SJ4_BadDictID 31
#define SJ4_IllegalDictFile 32
#define SJ4_IllegalStdyFile 33
#define SJ4_IncorrectPasswd 34
#define SJ4_FileNotExist 35
#define SJ4_CannotAccessFile 36
#define SJ4_CannotOpenFile 37
#define SJ4_CannotCreateFile 38
#define SJ4_FileReadError 39
#define SJ4_FileWriteError 40
#define SJ4_FileSeekError 41
#define SJ4_StdyAlreadyOpened 51
#define SJ4_StdyFileNotOpened 52
#define SJ4_TooSmallStdyArea 53
#define SJ4_LockedByOther 61
#define SJ4_NotLocked 62
#define SJ4_NoSuchDict 71
#define SJ4_ReadOnlyDict 72
#define SJ4_DictLocked 73
#define SJ4_BadYomiString 74
#define SJ4_BadKanjiString 75
#define SJ4_BadHinsiCode 76
#define SJ4_AddDictFailed 81
#define SJ4_AlreadyExistWord 82
#define SJ4_NoMoreDouonWord 83
#define SJ4_NoMoreUserDict 84
#define SJ4_NoMoreIndexBlock 85
#define SJ4_DelDictFailed 91
#define SJ4_NoSuchWord 92
#define SJ4_DirAlreadyExist 101
#define SJ4_CannotCreateDir 102
#define SJ4_NoMoreDictData 111
#define SJ4_UserConnected 121
#define SJ4_TooLongPasswd 131
#define SJ4_TooLongComment 132
#define SJ4_CannotCodeConvert 133

View file

@ -18,20 +18,20 @@
#define SJ_STRING_H
/* string.c */
int sj3_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_sjistoeuclen(unsigned char*, int);
int sj4_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj4_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj4_sjistoeuclen(unsigned char*, int);
int sj3_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj3_euctosjis(unsigned char* s, int, unsigned char*, int);
int sj4_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj4_euctosjis(unsigned char* s, int, unsigned char*, int);
void sj_euc2sjis(unsigned char*);
void sj_jis2sjis(unsigned char*);
void sj_sjis2euc(unsigned char*);
void sj_sjis2jis(unsigned char*);
unsigned short sj3_jis2sjis(unsigned short);
unsigned short sj3_jis2euc(unsigned short);
unsigned short sj3_sjis2jis(unsigned short);
unsigned short sj3_euc2sjis(unsigned short);
unsigned short sj3_sjis2euc(unsigned short);
unsigned short sj4_jis2sjis(unsigned short);
unsigned short sj4_jis2euc(unsigned short);
unsigned short sj4_sjis2jis(unsigned short);
unsigned short sj4_euc2sjis(unsigned short);
unsigned short sj4_sjis2euc(unsigned short);
#endif /* SJ3INTERN_H */
#endif /* SJ4INTERN_H */

View file

@ -116,7 +116,7 @@ typedef struct global {
typedef struct dictfile {
DICT dict;
int refcnt;
#ifdef SJ3_LOCK
#ifdef SJ4_LOCK
fd_set lock;
#endif
FILE* fp;
@ -154,7 +154,7 @@ typedef struct workarea {
Global global;
} WorkArea;
typedef struct sj3context {
typedef struct sj4context {
Global* work;
STDY* stdy;
@ -162,6 +162,6 @@ typedef struct sj3context {
JREC* jrec_pool;
CLREC* clrec_free;
CLREC* clrec_pool;
} Sj3Context;
} Sj4Context;
#endif

View file

@ -28,34 +28,34 @@
*/
/*
* $SonyRCSfile: sj3lowlib.h,v $
* $SonyRCSfile: sj4lowlib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $
*/
#ifndef SJ3LOWLIB_H
#define SJ3LOWLIB_H
#ifndef SJ4LOWLIB_H
#define SJ4LOWLIB_H
typedef struct sj3_client_env {
typedef struct sj4_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ3_CLIENT_ENV;
} SJ4_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH
#define SJ3_NAME_LENGTH 128
#ifndef SJ4_NAME_LENGTH
#define SJ4_NAME_LENGTH 128
#endif
typedef struct sj3_who_struct {
typedef struct sj4_who_struct {
int fd;
char hostname[SJ3_NAME_LENGTH];
char username[SJ3_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH];
} SJ3_WHO_STRUCT;
char hostname[SJ4_NAME_LENGTH];
char username[SJ4_NAME_LENGTH];
char progname[SJ4_NAME_LENGTH];
} SJ4_WHO_STRUCT;
#define MBCODE_SJIS 1
#define MBCODE_EUC 2
#endif /* SJ3LOWLIB_H */
#endif /* SJ4LOWLIB_H */

View file

@ -36,7 +36,7 @@
#ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H
#ifdef SJ3_GLOBAL
#ifdef SJ4_GLOBAL
extern Global* work_base;
extern STDY* stdy_base;
#endif

View file

@ -0,0 +1,357 @@
/*
* 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
#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
#include "sj_kcnv.h"
#include "sj_struct.h"
#ifdef SJ4_GLOBAL
#define SJ4_CONTEXT
#define SJ4_CONTEXT2 void
#define SJ4_CONTEXT_PASS
#define SJ4_CONTEXT_PASS2
#else
#define SJ4_CONTEXT Sj4Context *ctx,
#define SJ4_CONTEXT2 Sj4Context* ctx
#define SJ4_CONTEXT_PASS ctx,
#define SJ4_CONTEXT_PASS2 ctx
#endif
/*
* NOTE:
* All of these funtions calling rule are not following
* ANSI like arguement lists, fun(dest, src, ...).
* There are fun(src, dest, ...).
*/
/* adddic.c */
u_int adddic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */
void set_size(u_char*, int, int, int);
u_int addel_arg(SJ4_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(SJ4_CONTEXT u_char*, u_char*, u_char*);
int srchkana(SJ4_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(SJ4_CONTEXT2);
void chg_uidx(SJ4_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */
JREC* alloc_jrec(SJ4_CONTEXT2);
void free_jrec(SJ4_CONTEXT JREC*);
CLREC* alloc_clrec(SJ4_CONTEXT2);
void free_clrec(SJ4_CONTEXT CLREC*);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(SJ4_CONTEXT u_char*, int, u_char*);
int nextcl(SJ4_CONTEXT u_char*, int);
int prevcl(SJ4_CONTEXT u_char*, int);
int selectnum(SJ4_CONTEXT2);
/* clstudy.c */
int clstudy(SJ4_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(SJ4_CONTEXT u_char*);
void mkclidx(SJ4_CONTEXT2);
/* cmpstr.c */
int cmpstr(u_char*, u_char*);
/* conjunc.c */
extern u_char* conjadr[];
/* connect.c */
extern u_char connadr[];
extern u_char* rigtadr[];
/* cvtclknj.c */
void cvtclknj(SJ4_CONTEXT2);
/* cvtdict.c */
void cvtdict(SJ4_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(SJ4_CONTEXT int);
void cvtwakachi(SJ4_CONTEXT CLREC*);
/* cvtkanji.c */
void cvtphknj(SJ4_CONTEXT2);
void cvtkouho(SJ4_CONTEXT KHREC*);
void setstyrec(SJ4_CONTEXT KHREC*);
/* deldic.c */
u_int deldic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */
void get_askknj(SJ4_CONTEXT2);
int seldict(SJ4_CONTEXT TypeDicID);
u_char* get_idxptr(SJ4_CONTEXT TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(SJ4_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(SJ4_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */
extern u_char* fzkadr[];
/* getkanji.c */
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(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_ofs(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(SJ4_CONTEXT u_char*, int, u_char*, u_char*);
/* getrank.c */
void getrank(SJ4_CONTEXT2);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char*, int);
/* init.c */
void seg_count(SJ4_CONTEXT DICT*);
void mkidxtbl(SJ4_CONTEXT DICT*);
void initwork(SJ4_CONTEXT2);
#ifndef SJ4_GLOBAL
Sj4Context* alloccontext(const char*);
void free_context(Sj4Context*);
#endif
/* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */
void sstrncpy(u_char*, u_char*, int);
/* memory.c */
JREC* free_jlst(SJ4_CONTEXT JREC*);
CLREC* free_clst(SJ4_CONTEXT CLREC*, int);
void free_clall(SJ4_CONTEXT CLREC*);
void free_jall(SJ4_CONTEXT JREC*);
void freework(SJ4_CONTEXT2);
/* mk2claus.c */
void mk2claus(SJ4_CONTEXT2);
/* mkbunset.c */
void mkbunsetu(SJ4_CONTEXT2);
CLREC* argclrec(SJ4_CONTEXT int);
/* mkjiritu.c */
void mkjiritu(SJ4_CONTEXT int);
JREC* argjrec(SJ4_CONTEXT int, JREC*);
/* mkkouho.c */
void mkkouho(SJ4_CONTEXT2);
u_char* makekan_none(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_1byte(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_knj(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_norm(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ascii(SJ4_CONTEXT u_char*, u_char*, int);
int sel_sjmode(JREC*);
/* mknumber.c */
void num_type00(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type01(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type02(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type03(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type04(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type05(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type06(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type07(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type08(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type09(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type10(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type11(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type12(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type13(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type14(SJ4_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */
void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */
void mvmemi(u_char*, u_char*, int);
/* peepdic.c */
int getusr(SJ4_CONTEXT u_char*);
int nextusr(SJ4_CONTEXT u_char*);
int prevusr(SJ4_CONTEXT u_char*);
/* ph2knj.c */
int ph2knj(SJ4_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */
int ph_khtbl(SJ4_CONTEXT CLREC*);
/* priority.c */
int priority(SJ4_CONTEXT CLREC*);
void pritiny(SJ4_CONTEXT2);
/* prtytbl.c */
extern u_char taipri[7][45];
extern u_char sttpri[5][31];
/* s2ctbl.c */
extern u_char kigou[];
/* sdepend.c */
DictFile* opendict(SJ4_CONTEXT char*, char*);
int closedict(SJ4_CONTEXT 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(SJ4_CONTEXT2);
int putcldic(SJ4_CONTEXT2);
int makedict(char*, int, int, int);
int makestdy(char*, int, int, int);
void sj_closeall(SJ4_CONTEXT2);
int set_dictpass(DictFile*, char*);
int set_stdypass(SJ4_CONTEXT char*);
int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(SJ4_CONTEXT char*);
int get_stdysize(SJ4_CONTEXT int*, int*, int*);
/* selclrec.c */
void selclrec(SJ4_CONTEXT2);
/* selsuuji.c */
extern u_short* selsjadrs[];
/* setconj.c */
int setconj(SJ4_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */
int setj_atrb(SJ4_CONTEXT u_char*);
int setj_ofs(SJ4_CONTEXT u_char*);
int setj_knj(SJ4_CONTEXT u_char*);
int setj_norm1(SJ4_CONTEXT u_char*);
int setj_norm2(SJ4_CONTEXT u_char*);
int setj_norm3(SJ4_CONTEXT u_char*); /* unused??? */
void setjrec(SJ4_CONTEXT u_char*, int);
void setnumrec(SJ4_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(SJ4_CONTEXT u_char*);
/* setkouho.c */
void setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(SJ4_CONTEXT u_char*, int*);
int hiraknj_ofs(SJ4_CONTEXT u_char*, int*);
int hiraknj_knj(SJ4_CONTEXT u_char*, int*);
int hiraknj_hask(SJ4_CONTEXT u_char*, int*);
int hiraknj_kask(SJ4_CONTEXT u_char*, int*);
int hiraknj_norm(SJ4_CONTEXT u_char*, int*);
int hiraknj_hira(SJ4_CONTEXT u_char*, int*);
/* setubi.c */
u_char* getstb(TypeGram);
void setubi(SJ4_CONTEXT JREC*, u_char*);
/* sj2code.c */
int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */
u_char* skiphblk(u_char*);
/* skipkstr.c */
u_char* skipkstr(u_char*);
/* srchdict.c */
int yomicmp(SJ4_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(SJ4_CONTEXT u_char*);
/* srchhead.c */
int srchhead(SJ4_CONTEXT2);
/* srchidx.c */
TypeDicSeg srchidx(SJ4_CONTEXT TypeDicSeg, int);
/* srchnum.c*/
void srchnum(SJ4_CONTEXT2);
void setwdnum(SJ4_CONTEXT u_char*, int, u_short*);
int setucnum(SJ4_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */
int sstrcmp(u_char*, u_char*);
/* sstrlen.c */
int sstrlen(u_char*);
/* sstrncmp.c */
int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */
extern u_char* stbadr[];
/* stttbl.c */
extern u_char* settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(SJ4_CONTEXT STDYOUT*);
STDYIN* srchstdy(SJ4_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* 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 */
int terminate(SJ4_CONTEXT TypeCnct, u_char*);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(SJ4_CONTEXT2);
#endif /* KANAKAN_H */

View file

@ -118,7 +118,7 @@
#define setnspr Jsetnspr
#define regetrank Jregetrank
#ifdef SJ3_GLOBAL
#ifdef SJ4_GLOBAL
#define work_base Jwork_base
#define stdy_base Jstdy_base
#else

View file

@ -47,23 +47,23 @@ typedef unsigned short u_short;
typedef unsigned int u_int;
typedef void (*VFunc)(
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
void*,
#endif
void*, void*, void*);
typedef u_char* (*UCPFunc)(
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
void*,
#endif
u_char*, u_char*, int);
typedef int (*IFunc)(
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
void*,
#endif
void*, int);
typedef int (*IFuncDict)(
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
void*,
#endif
void*);

View file

@ -37,13 +37,13 @@
#ifndef __KCTYPE
#define __KCTYPE
#define sjis2euc sj3_sjis2euc
#define jis2sjis sj3_jis2sjis
#define euctosjis sj3_euctosjis
#define sjis2jis sj3_sjis2jis
#define euc2sjis sj3_euc2sjis
#define jis2euc sj3_jis2euc
#define sjistoeuc sj3_sjistoeuc
#define sjis2euc sj4_sjis2euc
#define jis2sjis sj4_jis2sjis
#define euctosjis sj4_euctosjis
#define sjis2jis sj4_sjis2jis
#define euc2sjis sj4_euc2sjis
#define jis2euc sj4_jis2euc
#define sjistoeuc sj4_sjistoeuc
#ifdef issjis1
#undef issjis1

View file

@ -14,8 +14,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef SJ3RKCV_H
#define SJ3RKCV_H
#ifndef SJ4RKCV_H
#define SJ4RKCV_H
#include "rk.h"
@ -43,20 +43,20 @@ typedef struct ymibufrec {
wchar16_t* ymiend;
struct ymibufrec* ymibufp;
} YmibufRec;
extern RkTabl* sj3_rcode[MAXCODE];
extern RkTablW16* sj3_rcode_w16[MAXCODE];
extern RkTabl* sj4_rcode[MAXCODE];
extern RkTablW16* sj4_rcode_w16[MAXCODE];
extern RkTablW16* rktblp;
extern wchar16_t rline[MAXLLEN];
extern wchar16_t lstr[MAXLLEN];
void sj3_rkcode(int);
int sj3_rkinit2(char*, int);
void sj4_rkcode(int);
int sj4_rkinit2(char*, int);
int rcode_sjis_init();
int rcode_euc_init();
int sj3_rkinit(char*);
int sj3_rkinit_euc(char*);
int sj3_rkinit_mb(char*);
int sj3_rkinit_sub(char* rkfile, int (*)());
int sj4_rkinit(char*);
int sj4_rkinit_euc(char*);
int sj4_rkinit_mb(char*);
int sj4_rkinit_sub(char* rkfile, int (*)());
char* rkgetyomi(char*, wchar16_t*, int*);
char* getkey(char*, wchar16_t*, int*);
void cltable();
@ -65,33 +65,33 @@ RkTablW16* rkalloc();
int stradd(wchar16_t**, wchar16_t*, int);
int kstradd(wchar16_t**, wchar16_t*, int);
RkTablW16* mktable(wchar16_t*, int);
void sj3_rkebell(int);
void sj3_rkclear();
void sj3_rkreset();
void sj3_rkconvc(wchar16_t, u_int*);
int sj3_rkconv2(wchar16_t*, u_int*, int);
int sj3_rkconv(u_char*, u_char*);
int sj3_rkconv_euc(u_char*, u_char*);
int sj3_rkconv_mb(u_char*, u_char*);
int sj3_rkconv_w16(wchar16_t*, wchar16_t*);
void sj4_rkebell(int);
void sj4_rkclear();
void sj4_rkreset();
void sj4_rkconvc(wchar16_t, u_int*);
int sj4_rkconv2(wchar16_t*, u_int*, int);
int sj4_rkconv(u_char*, u_char*);
int sj4_rkconv_euc(u_char*, u_char*);
int sj4_rkconv_mb(u_char*, u_char*);
int sj4_rkconv_w16(wchar16_t*, wchar16_t*);
int rkmatch(wchar16_t*, wchar16_t*, int);
/* sj3_rkcv.h */
/* sj4_rkcv.h */
#ifdef ADDHK
void setl_hktozh();
#endif
void mkkigou();
int sj_addten(u_short, u_short);
int sj_han2zen(u_short);
int sj3_hantozen_euc(u_char*, u_char*);
int sj3_hantozen_mb(u_char*, u_char*);
int sj3_hantozen_w16(wchar16_t*, wchar16_t*);
int sj4_hantozen_euc(u_char*, u_char*);
int sj4_hantozen_mb(u_char*, u_char*);
int sj4_hantozen_w16(wchar16_t*, wchar16_t*);
int sj_hantozen(wchar16_t*, wchar16_t*, int);
int sj_zen2han(u_short);
int sj3_zentohan(u_char*, u_char*);
int sj3_zentohan_euc(u_char*, u_char*);
int sj3_zentohan_mb(u_char*, u_char*);
int sj3_zentohan_w16(wchar16_t*, wchar16_t*);
int sj4_zentohan(u_char*, u_char*);
int sj4_zentohan_euc(u_char*, u_char*);
int sj4_zentohan_mb(u_char*, u_char*);
int sj4_zentohan_w16(wchar16_t*, wchar16_t*);
int sj_zentohan(wchar16_t*, wchar16_t*, int);
int sj_tokata(wchar16_t);
int sj_tohira(wchar16_t);
@ -99,26 +99,26 @@ int sj_htok(wchar16_t*, wchar16_t*);
int sj_ktoh(wchar16_t*, wchar16_t*);
/* wc16_str.c */
int sj3_iswcntrl16(wchar16_t);
int sj3_iswupper16(wchar16_t);
int sj3_iswdigit16(wchar16_t);
int sj3_iswxdigit16(wchar16_t);
int sj3_wslen16(wchar16_t*);
int sj3_wscmp16(wchar16_t*, wchar16_t*);
int sj3_wsncmp16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj3_wscpy16(wchar16_t*, wchar16_t*);
wchar16_t* sj3_wsncpy16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj3_wscat16(wchar16_t*, wchar16_t*);
wchar16_t sj3_euc2wc16(unsigned int);
wchar16_t sj3_sjis2wc16(unsigned int);
unsigned int sj3_wc2euc16(wchar16_t);
unsigned int sj3_wc2sjis16(wchar16_t);
int sj3_wcs2eucs16(unsigned char*, wchar16_t*, int);
int sj3_wcs2sjiss16(unsigned char*, wchar16_t*, int);
int sj3_eucs2wcs16(wchar16_t*, unsigned char*, int);
int sj3_sjiss2wcs16(wchar16_t*, unsigned char*, int);
int sj3_mbstowcs16(wchar16_t*, unsigned char*, int);
int sj3_wcstombs16(unsigned char*, unsigned char*, int);
int sj4_iswcntrl16(wchar16_t);
int sj4_iswupper16(wchar16_t);
int sj4_iswdigit16(wchar16_t);
int sj4_iswxdigit16(wchar16_t);
int sj4_wslen16(wchar16_t*);
int sj4_wscmp16(wchar16_t*, wchar16_t*);
int sj4_wsncmp16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj4_wscpy16(wchar16_t*, wchar16_t*);
wchar16_t* sj4_wsncpy16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj4_wscat16(wchar16_t*, wchar16_t*);
wchar16_t sj4_euc2wc16(unsigned int);
wchar16_t sj4_sjis2wc16(unsigned int);
unsigned int sj4_wc2euc16(wchar16_t);
unsigned int sj4_wc2sjis16(wchar16_t);
int sj4_wcs2eucs16(unsigned char*, wchar16_t*, int);
int sj4_wcs2sjiss16(unsigned char*, wchar16_t*, int);
int sj4_eucs2wcs16(wchar16_t*, unsigned char*, int);
int sj4_sjiss2wcs16(wchar16_t*, unsigned char*, int);
int sj4_mbstowcs16(wchar16_t*, unsigned char*, int);
int sj4_wcstombs16(unsigned char*, unsigned char*, int);
/* XXX */
extern int current_locale;

View file

@ -61,51 +61,51 @@ typedef unsigned short wchar16_t;
#ifdef iswcntrl
#undef iswcntrl
#endif
#define iswcntrl(wc) sj3_iswcntrl16(wc)
#define iswcntrl(wc) sj4_iswcntrl16(wc)
#ifdef iswupper
#undef iswupper
#endif
#define iswupper(wc) sj3_iswupper16(wc)
#define iswupper(wc) sj4_iswupper16(wc)
#ifdef iswdigit
#undef iswdigit
#endif
#define iswdigit(wc) sj3_iswdigit16(wc)
#define iswdigit(wc) sj4_iswdigit16(wc)
#ifdef iswxdigit
#undef iswxdigit
#endif
#define iswxdigit(wc) sj3_iswxdigit16(wc)
#define iswxdigit(wc) sj4_iswxdigit16(wc)
#ifdef wslen
#undef wslen
#endif
#define wslen(ws) sj3_wslen16(ws)
#define wslen(ws) sj4_wslen16(ws)
#ifdef wscmp
#undef wscmp
#endif
#define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2)
#define wscmp(ws1, ws2) sj4_wscmp16(ws1, ws2)
#ifdef wsncmp
#undef wsncmp
#endif
#define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n)
#define wsncmp(ws1, ws2, n) sj4_wsncmp16(ws1, ws2, n)
#ifdef wscpy
#undef wscpy
#endif
#define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2)
#define wscpy(ws1, ws2) sj4_wscpy16(ws1, ws2)
#ifdef wsncpy
#undef wsncpy
#endif
#define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n)
#define wsncpy(ws1, ws2, n) sj4_wsncpy16(ws1, ws2, n)
#ifdef wscat
#undef wscat
#endif
#define wscat(ws1, ws2) sj3_wscat16(ws1, ws2)
#define wscat(ws1, ws2) sj4_wscat16(ws1, ws2)
#ifdef mbstowcs
#undef mbstowcs
#endif
#define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n)
#define mbstowcs(mb, ws, n) sj4_mbstowcs16(mb, ws, n)
#ifdef wcstombs
#undef wcstombs
#endif
#define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n)
#define wcstombs(ws, mb, n) sj4_wcstombs16(ws, mb, n)
#endif
#define LC_CTYPE_SHIFTJIS 1