This commit is contained in:
iratqq 2008-01-11 11:57:08 +00:00
commit c5d964c617
284 changed files with 125357 additions and 0 deletions

6
include/Makefile.am Normal file
View file

@ -0,0 +1,6 @@
SUBDIRS = \
sj3common \
sj3compat \
sj3core \
sj3lib \
sj3rkcv

99
include/sj3common/Const.h Normal file
View file

@ -0,0 +1,99 @@
/*
* 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: Const.h,v $
* $SonyRevision: 1.4 $
* $SonyDate: 1997/01/23 11:20:52 $
*/
#ifndef CONST_H
#define CONST_H
/*
* Change some default values.
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
*/
#define PASSWORDLEN 16
#define YOMIBUFSIZE 1024
#define KANJIBUFSIZE 2048
#define MINIDXLEN 512
#define MINSEGLEN 512
#define MINSEGNUM 1
#define MINSTYNUM 512
#define MAXSTYNUM 0x7fff
#define MINCLSTEP 1
#define MAXCLSTEP 256
#define MINCLLEN 512
#define MAXCLLEN 0x7fff
#define DEBUGOUTFILE NULL
#define DEBUGLEVEL 0
#define FORKFLAG 1
#define MAXCLIENTNUM 512
#define LOGOUTFILE NULL
#define ERROROUTFILE "/dev/null"
#define ADDRESSFAMILY "unspec"
#define PORTNAME "sj3"
#define LOCALHOST "localhost"
#define CHROOTFLAG 1
#define MAINDICTIONARY "sj3main.dic"
#define USERDICTIONARY "private.dic"
#define STUDYFILE "study.dat"
/*
* Change the default Port number of sj3 for FreeBSD.
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20
*/
#define PORTNUMBER "3086"
#define DIRECTRYMODE 0755
#define DICTFILEMODE 0644
#define MODE_MASK 0777
#define DEFIDXLEN 2048
#define DEFSEGLEN 2048
#define DEFSEGNUM 256
#define DEFSTYNUM 2048
#define DEFCLSTEP 1
#define DEFCLLEN 2048
#define NOTLOCKED -1
#define ERROR -1
#ifndef FALSE
# define TRUE -1
# define FALSE (!TRUE)
#endif
#endif /* CONST_H */

View file

@ -0,0 +1,9 @@
EXTRA_DIST = \
Const.h \
sj3cmd.h \
sj3err.h \
sj_const.h \
sj_euc.h \
sj_hinsi.h \
sj_string.h

107
include/sj3common/sj3cmd.h Normal file
View file

@ -0,0 +1,107 @@
/*
* 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: sj3cmd.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:57 $
*/
#define SJ3SERV_VERSION_NO 2
#define SJ3_CONNECT 1
#define SJ3_DISCONNECT 2
#define SJ3_OPENDICT 11
#define SJ3_CLOSEDICT 12
#define SJ3_OPENSTDY 21
#define SJ3_CLOSESTDY 22
#define SJ3_STDYSIZE 23
#define SJ3_LOCK 31
#define SJ3_UNLOCK 32
#define SJ3_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 SJ3_STUDY 61
#define SJ3_CLSTUDY 62
#define SJ3_ADDDICT 71
#define SJ3_DELDICT 72
#define SJ3_MAKEDICT 81
#define SJ3_MAKESTDY 82
#define SJ3_MAKEDIR 83
#define SJ3_ACCESS 84
#define SJ3_GETDICT 91
#define SJ3_NEXTDICT 92
#define SJ3_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 SJ3_SETCVER 110
#define SJ3_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 SJ3_CLSTUDY_EUC 117
#define SJ3_ADDDICT_EUC 118
#define SJ3_DELDICT_EUC 119
#define SJ3_GETDICT_EUC 120
#define SJ3_NEXTDICT_EUC 121
#define SJ3_PREVDICT_EUC 122

107
include/sj3common/sj3err.h Normal file
View file

@ -0,0 +1,107 @@
/*
* 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

@ -0,0 +1,155 @@
/*
* 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: sj_const.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:01 $
*/
#ifndef _SJ_CONST
#define _SJ_CONST
#include "sj_euc.h"
#define MATCH 0
#define OVER 1
#define PARTLY 2
#define CONT 3
#define UNDER 4
#define FALSE 0
#define TRUE -1
#define AD_DONE 0x0000
#define AD_NOTUSERDICT 0x0001
#define AD_BADYOMI 0x0002
#define AD_BADKANJI 0x0004
#define AD_BADHINSI 0x0008
#define AD_AREXIST 0x0010
#define AD_OVFLWDOUBLK 0x0020
#define AD_OVFLWDOUNUM 0x0040
#define AD_OVFLWUSRDIC 0x0080
#define AD_OVFLWINDEX 0x0100
#define AD_NOMIDASI 0x0010
#define AD_NOHINSI 0x0020
#define AD_NOKANJI 0x0040
#define C_WAKACHI 0x00
#define C_MINASI 0x01
#define C_BUNSETU 0x02
#define C_DICT 0x03
#define C_N_ARABIA 0x04
#define C_N_ARACMA 0x05
#define C_N_KAZU 0x06
#define C_N_SUUJI 0x07
#define C_N_NANSUU 0x08
#define C_N_KANKURA 0x09
#define C_N_ARAKURA 0x0a
#define C_N_KAZULONG 0x0b
#define C_N_KAZULCMA 0x0c
#define C_N_SUUJILONG 0x0d
#define JFLAG_N10 (1 << 15)
#define JFLAG_N_1 (1 << 14)
#define JFLAG_NS1 (1 << 13)
#define JFLAG_N01 (1 << 12)
#define JFLAG_N23 (1 << 11)
#define JFLAG_NK2 (1 << 10)
#define JFLAG_NK4 (1 << 9)
#define JFLAG_NN0 (1 << 8)
#define JFLAG_NSN (1 << 7)
#define JFLAG_KA (1 << 0)
#define DO_CLSTUDY 0x01
#define DO_IKKATU 0x02
#define K_DOUSHI 1
#define K_YOUGEN 2
#define K_TAIGEN 3
#define K_FUKUSI 4
#define K_RENTAISI 5
#define K_SONOTA 6
#define EUC_a1 (u_char)0xa1
#define EUC_a2 (u_char)0xa2
#define EUC_a3 (u_char)0xa3
#define EUC_a4 (u_char)0xa4
#define EUC_a5 (u_char)0xa5
#define EUC_START (u_char)0xa1
#define EUC_END (u_char)0xfe
#define EUC_END_KIGOU (u_char)0xae
#define EUC_0 (u_char)0xb0
#define EUC_END_0 (u_char)0xb9
#define EUC_A (u_char)0xc1
#define EUC_END_A (u_char)0xda
#define EUC_a (u_char)0xe1
#define EUC_END_a (u_char)0xfa
#define EUC_END_HIRA (u_char)0xf3
#define EUC_VU (u_char)0xf4
#define EUC_XKA (u_char)0xf5
#define EUC_XKE (u_char)0xf6
#define isknj1(c) (((c) == SS2) || (((c) & 0x80) && ((c) != SS3)))
#define SHU 0x01
#define T_KANOU 0x80
#define T_SHUUJO 0x40
#define DICTOP 0x01
#define FZKTOP 0x02
#define DEPEND 0x04
#define NUMBER 0x08
#define FZK_KGU 0x10
#define TAI_KGU 0x20
#define BEFORNUM 0x40
#define MIDNUM 0x80
#define NOTNRM 0xFE
#define CNJEND 0xff
#define TYOUONFLG 0x80
#define MAXFREC 32
#define MAXFLVL 10
#define FZKEND 0xff
#define SETTOU_O 1
#define SETTOU_GO 2
#define SETTOU_DAI 3
#define SETTOU_KIGOU 4
#define NUMKETALENGTH 16
#define NUMWORDBUF ((NUMKETALENGTH+3)/4)
#endif

View file

@ -0,0 +1,47 @@
/*
* Copyright (c) 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: sj_euc.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:05 $
*/
#ifndef _SJ_EUC
#define _SJ_EUC
#ifndef SS2
#define SS2 0x8e
#endif
#ifndef SS3
#define SS3 0x8f
#endif
#endif

View file

@ -0,0 +1,231 @@
/*
* 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: sj_hinsi.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:07 $
*/
#ifndef _SJ_HINSHI
#define _SJ_HINSHI
#define MEISI_1 1
#define MEISI_2 2
#define MEISI_3 3
#define MEISI_4 4
#define MEISI_5 5
#define MEISI_6 6
#define MEISI_7 7
#define MEISI_8 8
#define MEISI_9 9
#define MEISI_10 10
#define MEISI_11 11
#define D_MEISI_1 12
#define D_MEISI_2 13
#define D_MEISI_3 14
#define D_MEISI_4 15
#define D_MEISI_5 16
#define D_MEISI_6 17
#define MEISI_20 18
#define MYOUJI 21
#define NAMAE 22
#define KIGYOU 23
#define TIMEI 24
#define KEN_KU 25
#define RENTAISI 26
#define SETUZOKU 27
#define KANDOUSI 28
#define JOSUUSI 29
#define SUUSI 30
#define SETTOU_1 31
#define SETTOU_2 32
#define SETTOU_3 33
#define SETTOU_4 34
#define SETTOU_5 35
#define SETUBI_1 36
#define SETUBI_2 37
#define SETUBI_3 38
#define SETUBI_4 39
#define SETUBI_5 40
#define SETUBI_6 41
#define SETUBI_7 42
#define SETUBI_8 43
#define SETUBI_9 44
#define FUKUSI_1 45
#define FUKUSI_2 46
#define FUKUSI_3 47
#define FUKUSI_4 48
#define FUKUSI_5 49
#define FUKUSI_6 50
#define FUKUSI_7 51
#define FUKUSI_8 52
#define FUKUSI_9 53
#define JOSUUSI2 54
#define KEIYOUSI_1 60
#define KEIYOUSI_2 61
#define KEIYOUSI_3 62
#define KEIYOUSI_4 63
#define KEIYOUSI_5 64
#define KEIYOUSI_6 65
#define KEIYOUSI_7 66
#define KEIYOUSI_8 67
#define KEIYOUSI_9 68
#define KEIYOUSI_10 69
#define KEIYOUSI_11 70
#define KE_DOUSI_1 71
#define KE_DOUSI_2 72
#define KE_DOUSI_3 73
#define KE_DOUSI_4 74
#define KE_DOUSI_5 75
#define KE_DOUSI_6 76
#define KE_DOUSI_7 77
#define KE_DOUSI_8 78
#define KE_DOUSI_9 79
#define DO_SAHEN 80
#define DO_ZAHEN 81
#define DO_1DAN_1 90
#define DO_KAGO_1 91
#define DO_GAGO_1 92
#define DO_SAGO_1 93
#define DO_TAGO_1 94
#define DO_NAGO_1 95
#define DO_BAGO_1 96
#define DO_MAGO_1 97
#define DO_RAGO_1 98
#define DO_WAGO_1 99
#define DO_1DAN_2 100
#define DO_KAGO_2 101
#define DO_GAGO_2 102
#define DO_SAGO_2 103
#define DO_TAGO_2 104
#define DO_BAGO_2 105
#define DO_MAGO_2 106
#define DO_RAGO_2 107
#define DO_WAGO_2 108
#define DO_KAGO_5 111
#define DO_GAGO_5 112
#define DO_SAGO_5 113
#define DO_TAGO_5 114
#define DO_BAGO_5 115
#define DO_MAGO_5 116
#define DO_RAGO_5 117
#define DO_WAGO_5 118
#define DO_KAGO_6 121
#define DO_GAGO_6 122
#define DO_SAGO_6 123
#define DO_TAGO_6 124
#define DO_BAGO_6 125
#define DO_MAGO_6 126
#define DO_RAGO_6 127
#define DO_WAGO_6 128
#define DO_1DAN_3 130
#define DO_KAGO_3 131
#define DO_GAGO_3 132
#define DO_SAGO_3 133
#define DO_TAGO_3 134
#define DO_BAGO_3 135
#define DO_MAGO_3 136
#define DO_RAGO_3 137
#define DO_WAGO_3 138
#define DO_1DAN_4 140
#define DO_KAGO_4 141
#define DO_GAGO_4 142
#define DO_SAGO_4 143
#define DO_TAGO_4 144
#define DO_BAGO_4 145
#define DO_MAGO_4 146
#define DO_RAGO_4 147
#define DO_WAGO_4 148
#define DO_KAGO_7 151
#define DO_GAGO_7 152
#define DO_SAGO_7 153
#define DO_TAGO_7 154
#define DO_BAGO_7 155
#define DO_MAGO_7 156
#define DO_RAGO_7 157
#define DO_WAGO_7 158
#define DO_KAGO_8 161
#define DO_GAGO_8 162
#define DO_SAGO_8 163
#define DO_TAGO_8 164
#define DO_BAGO_8 165
#define DO_MAGO_8 166
#define DO_RAGO_8 167
#define DO_WAGO_8 168
#define SP_SA_MI1 171
#define SP_SA_MI2 172
#define SP_SA_YOU 173
#define SP_SA_SYU 174
#define SP_SA_KAT 175
#define SP_SA_ME1 176
#define SP_SA_ME2 177
#define SP_KA_MIZ 178
#define SP_KA_YOU 179
#define SP_KA_SYU 180
#define SP_KA_KAT 181
#define SP_KA_MEI 182
#define TEINEI1 183
#define TEINEI2 184
#define SP_KA_ONB 185
#define SP_FUKUSI 186
#define AISATU 187
#define SP_KEIYOUSI 188
#define TANKANJI 189
#define IKKATU 200
#endif

View file

@ -0,0 +1,37 @@
/*
* 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 SJ_STRING_H
#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 sj3_sjistoeuc(unsigned char *s, int, unsigned char *, int);
int sj3_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);
#endif /* SJ3INTERN_H */

View file

@ -0,0 +1,2 @@
EXTRA_DIST = sj3compat.h sys-queue.h

View file

@ -0,0 +1,128 @@
/*
* 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 SJ3COMPAT_H
#define SJ3COMPAT_H
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/param.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 128
#endif
#ifndef MAXLOGNAME
#define MAXLOGNAME 32
#endif
#ifndef FILENAME_MAX
#define FILENAME_MAX 1024
#endif
/* bsd-asprintf.c */
#ifndef HAVE_VASPRINTF
#define vasprintf sj3_vasprintf
int sj3_vasprintf(char **ret, const char *format, va_list ap);
#endif
#ifndef HAVE_ASPRINTF
#define asprintf sj3_asprintf
int sj3_asprintf(char **ret, const char *format, ...);
#endif
/* getopt.c */
#ifndef HAVE_GETOPT_OPTRESET
# undef getopt
# undef opterr
# undef optind
# undef optopt
# undef optreset
# undef optarg
# define getopt(ac, av, o) BSDgetopt(ac, av, o)
# define opterr BSDopterr
# define optind BSDoptind
# define optopt BSDoptopt
# define optreset BSDoptreset
# define optarg BSDoptarg
#endif
/* bsd-getpeereid.c */
#ifndef HAVE_GETPEEREID
#define getpeereid sj3_getpeereid
int sj3_getpeereid(int s, uid_t *euid, gid_t *egid);
#endif
/* bsd-misc.c */
#if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR)
#define strerror sj3_strerror
const char *sj3_strerror(int e);
#endif
#ifndef HAVE_STRDUP
#define strdup sj3_strdup
char *sj3_strdup(const char *str);
#endif
/* bsd-snprintf.c */
#ifndef HAVE_VSNPRINTF
#define vsnprintf sj3_vsnprintf
int sj3_vsnprintf(char *str, size_t size, const char *format, va_list ap);
#endif
#ifndef HAVE_SNPRINTF
#define snprintf sj3_snprintf
int sj3_snprintf(char *str, size_t size, const char *format, ...);
#endif
/* daemon.c */
#ifndef HAVE_DAEMON
#define daemon sj3_daemon
int sj3_daemon(int, int);
#endif
/* #include "fake-rfc2553.h" */
/* inet_ntoa.c */
#if defined(BROKEN_INET_NTOA) || !defined(HAVE_INET_NTOA)
#define inet_ntoa sj3_inet_ntoa
char* sj3_inet_ntoa(struct in_addr in);
#endif
/* setproctitle.c */
#ifndef HAVE_SETPROCTITLE
#define setproctitle sj3_setproctitle
void setproctitle(const char *fmt, ...);
#endif
/* strlcat.c */
#ifndef HAVE_STRLCAT
#define strlcat sj3_strlcat
size_t sj3_strlcat(char *, const char *, size_t);
#endif
/* strlcpy.c */
#ifndef HAVE_STRLCPY
#define strlcpy sj3_strlcpy
size_t sj3_strlcpy(char *, const char *, size_t);
#endif
#endif /* SJ3COMPAT_H */

View file

@ -0,0 +1,610 @@
/* $OpenBSD: queue.h,v 1.32 2007/04/30 18:42:34 pedro Exp $ */
/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */
/*
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)queue.h 8.5 (Berkeley) 8/20/94
*/
#ifndef _FAKE_QUEUE_H_
#define _FAKE_QUEUE_H_
/*
* Require for OS/X and other platforms that have old/broken/incomplete
* <sys/queue.h>.
*/
#undef SLIST_HEAD
#undef SLIST_HEAD_INITIALIZER
#undef SLIST_ENTRY
#undef SLIST_FOREACH_PREVPTR
#undef SLIST_FIRST
#undef SLIST_END
#undef SLIST_EMPTY
#undef SLIST_NEXT
#undef SLIST_FOREACH
#undef SLIST_INIT
#undef SLIST_INSERT_AFTER
#undef SLIST_INSERT_HEAD
#undef SLIST_REMOVE_HEAD
#undef SLIST_REMOVE
#undef SLIST_REMOVE_NEXT
#undef LIST_HEAD
#undef LIST_HEAD_INITIALIZER
#undef LIST_ENTRY
#undef LIST_FIRST
#undef LIST_END
#undef LIST_EMPTY
#undef LIST_NEXT
#undef LIST_FOREACH
#undef LIST_INIT
#undef LIST_INSERT_AFTER
#undef LIST_INSERT_BEFORE
#undef LIST_INSERT_HEAD
#undef LIST_REMOVE
#undef LIST_REPLACE
#undef SIMPLEQ_HEAD
#undef SIMPLEQ_HEAD_INITIALIZER
#undef SIMPLEQ_ENTRY
#undef SIMPLEQ_FIRST
#undef SIMPLEQ_END
#undef SIMPLEQ_EMPTY
#undef SIMPLEQ_NEXT
#undef SIMPLEQ_FOREACH
#undef SIMPLEQ_INIT
#undef SIMPLEQ_INSERT_HEAD
#undef SIMPLEQ_INSERT_TAIL
#undef SIMPLEQ_INSERT_AFTER
#undef SIMPLEQ_REMOVE_HEAD
#undef TAILQ_HEAD
#undef TAILQ_HEAD_INITIALIZER
#undef TAILQ_ENTRY
#undef TAILQ_FIRST
#undef TAILQ_END
#undef TAILQ_NEXT
#undef TAILQ_LAST
#undef TAILQ_PREV
#undef TAILQ_EMPTY
#undef TAILQ_FOREACH
#undef TAILQ_FOREACH_REVERSE
#undef TAILQ_INIT
#undef TAILQ_INSERT_HEAD
#undef TAILQ_INSERT_TAIL
#undef TAILQ_INSERT_AFTER
#undef TAILQ_INSERT_BEFORE
#undef TAILQ_REMOVE
#undef TAILQ_REPLACE
#undef CIRCLEQ_HEAD
#undef CIRCLEQ_HEAD_INITIALIZER
#undef CIRCLEQ_ENTRY
#undef CIRCLEQ_FIRST
#undef CIRCLEQ_LAST
#undef CIRCLEQ_END
#undef CIRCLEQ_NEXT
#undef CIRCLEQ_PREV
#undef CIRCLEQ_EMPTY
#undef CIRCLEQ_FOREACH
#undef CIRCLEQ_FOREACH_REVERSE
#undef CIRCLEQ_INIT
#undef CIRCLEQ_INSERT_AFTER
#undef CIRCLEQ_INSERT_BEFORE
#undef CIRCLEQ_INSERT_HEAD
#undef CIRCLEQ_INSERT_TAIL
#undef CIRCLEQ_REMOVE
#undef CIRCLEQ_REPLACE
/*
* This file defines five types of data structures: singly-linked lists,
* lists, simple queues, tail queues, and circular queues.
*
*
* A singly-linked list is headed by a single forward pointer. The elements
* are singly linked for minimum space and pointer manipulation overhead at
* the expense of O(n) removal for arbitrary elements. New elements can be
* added to the list after an existing element or at the head of the list.
* Elements being removed from the head of the list should use the explicit
* macro for this purpose for optimum efficiency. A singly-linked list may
* only be traversed in the forward direction. Singly-linked lists are ideal
* for applications with large datasets and few or no removals or for
* implementing a LIFO queue.
*
* A list is headed by a single forward pointer (or an array of forward
* pointers for a hash table header). The elements are doubly linked
* so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before
* or after an existing element or at the head of the list. A list
* may only be traversed in the forward direction.
*
* A simple queue is headed by a pair of pointers, one the head of the
* list and the other to the tail of the list. The elements are singly
* linked to save space, so elements can only be removed from the
* head of the list. New elements can be added to the list before or after
* an existing element, at the head of the list, or at the end of the
* list. A simple queue may only be traversed in the forward direction.
*
* A tail queue is headed by a pair of pointers, one to the head of the
* list and the other to the tail of the list. The elements are doubly
* linked so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before or
* after an existing element, at the head of the list, or at the end of
* the list. A tail queue may be traversed in either direction.
*
* A circle queue is headed by a pair of pointers, one to the head of the
* list and the other to the tail of the list. The elements are doubly
* linked so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before or after
* an existing element, at the head of the list, or at the end of the list.
* A circle queue may be traversed in either direction, but has a more
* complex end of list detection.
*
* For details on the use of these macros, see the queue(3) manual page.
*/
#if defined(QUEUE_MACRO_DEBUG) || (defined(_KERNEL) && defined(DIAGNOSTIC))
#define _Q_INVALIDATE(a) (a) = ((void *)-1)
#else
#define _Q_INVALIDATE(a)
#endif
/*
* Singly-linked List definitions.
*/
#define SLIST_HEAD(name, type) \
struct name { \
struct type *slh_first; /* first element */ \
}
#define SLIST_HEAD_INITIALIZER(head) \
{ NULL }
#define SLIST_ENTRY(type) \
struct { \
struct type *sle_next; /* next element */ \
}
/*
* Singly-linked List access methods.
*/
#define SLIST_FIRST(head) ((head)->slh_first)
#define SLIST_END(head) NULL
#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head))
#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
#define SLIST_FOREACH(var, head, field) \
for((var) = SLIST_FIRST(head); \
(var) != SLIST_END(head); \
(var) = SLIST_NEXT(var, field))
#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
for ((varp) = &SLIST_FIRST((head)); \
((var) = *(varp)) != SLIST_END(head); \
(varp) = &SLIST_NEXT((var), field))
/*
* Singly-linked List functions.
*/
#define SLIST_INIT(head) { \
SLIST_FIRST(head) = SLIST_END(head); \
}
#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
(elm)->field.sle_next = (slistelm)->field.sle_next; \
(slistelm)->field.sle_next = (elm); \
} while (0)
#define SLIST_INSERT_HEAD(head, elm, field) do { \
(elm)->field.sle_next = (head)->slh_first; \
(head)->slh_first = (elm); \
} while (0)
#define SLIST_REMOVE_NEXT(head, elm, field) do { \
(elm)->field.sle_next = (elm)->field.sle_next->field.sle_next; \
} while (0)
#define SLIST_REMOVE_HEAD(head, field) do { \
(head)->slh_first = (head)->slh_first->field.sle_next; \
} while (0)
#define SLIST_REMOVE(head, elm, type, field) do { \
if ((head)->slh_first == (elm)) { \
SLIST_REMOVE_HEAD((head), field); \
} else { \
struct type *curelm = (head)->slh_first; \
\
while (curelm->field.sle_next != (elm)) \
curelm = curelm->field.sle_next; \
curelm->field.sle_next = \
curelm->field.sle_next->field.sle_next; \
_Q_INVALIDATE((elm)->field.sle_next); \
} \
} while (0)
/*
* List definitions.
*/
#define LIST_HEAD(name, type) \
struct name { \
struct type *lh_first; /* first element */ \
}
#define LIST_HEAD_INITIALIZER(head) \
{ NULL }
#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
}
/*
* List access methods
*/
#define LIST_FIRST(head) ((head)->lh_first)
#define LIST_END(head) NULL
#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head))
#define LIST_NEXT(elm, field) ((elm)->field.le_next)
#define LIST_FOREACH(var, head, field) \
for((var) = LIST_FIRST(head); \
(var)!= LIST_END(head); \
(var) = LIST_NEXT(var, field))
/*
* List functions.
*/
#define LIST_INIT(head) do { \
LIST_FIRST(head) = LIST_END(head); \
} while (0)
#define LIST_INSERT_AFTER(listelm, elm, field) do { \
if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
(listelm)->field.le_next->field.le_prev = \
&(elm)->field.le_next; \
(listelm)->field.le_next = (elm); \
(elm)->field.le_prev = &(listelm)->field.le_next; \
} while (0)
#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
(elm)->field.le_prev = (listelm)->field.le_prev; \
(elm)->field.le_next = (listelm); \
*(listelm)->field.le_prev = (elm); \
(listelm)->field.le_prev = &(elm)->field.le_next; \
} while (0)
#define LIST_INSERT_HEAD(head, elm, field) do { \
if (((elm)->field.le_next = (head)->lh_first) != NULL) \
(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
(head)->lh_first = (elm); \
(elm)->field.le_prev = &(head)->lh_first; \
} while (0)
#define LIST_REMOVE(elm, field) do { \
if ((elm)->field.le_next != NULL) \
(elm)->field.le_next->field.le_prev = \
(elm)->field.le_prev; \
*(elm)->field.le_prev = (elm)->field.le_next; \
_Q_INVALIDATE((elm)->field.le_prev); \
_Q_INVALIDATE((elm)->field.le_next); \
} while (0)
#define LIST_REPLACE(elm, elm2, field) do { \
if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \
(elm2)->field.le_next->field.le_prev = \
&(elm2)->field.le_next; \
(elm2)->field.le_prev = (elm)->field.le_prev; \
*(elm2)->field.le_prev = (elm2); \
_Q_INVALIDATE((elm)->field.le_prev); \
_Q_INVALIDATE((elm)->field.le_next); \
} while (0)
/*
* Simple queue definitions.
*/
#define SIMPLEQ_HEAD(name, type) \
struct name { \
struct type *sqh_first; /* first element */ \
struct type **sqh_last; /* addr of last next element */ \
}
#define SIMPLEQ_HEAD_INITIALIZER(head) \
{ NULL, &(head).sqh_first }
#define SIMPLEQ_ENTRY(type) \
struct { \
struct type *sqe_next; /* next element */ \
}
/*
* Simple queue access methods.
*/
#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
#define SIMPLEQ_END(head) NULL
#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))
#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
#define SIMPLEQ_FOREACH(var, head, field) \
for((var) = SIMPLEQ_FIRST(head); \
(var) != SIMPLEQ_END(head); \
(var) = SIMPLEQ_NEXT(var, field))
/*
* Simple queue functions.
*/
#define SIMPLEQ_INIT(head) do { \
(head)->sqh_first = NULL; \
(head)->sqh_last = &(head)->sqh_first; \
} while (0)
#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
(head)->sqh_last = &(elm)->field.sqe_next; \
(head)->sqh_first = (elm); \
} while (0)
#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
(elm)->field.sqe_next = NULL; \
*(head)->sqh_last = (elm); \
(head)->sqh_last = &(elm)->field.sqe_next; \
} while (0)
#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
(head)->sqh_last = &(elm)->field.sqe_next; \
(listelm)->field.sqe_next = (elm); \
} while (0)
#define SIMPLEQ_REMOVE_HEAD(head, field) do { \
if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
(head)->sqh_last = &(head)->sqh_first; \
} while (0)
/*
* Tail queue definitions.
*/
#define TAILQ_HEAD(name, type) \
struct name { \
struct type *tqh_first; /* first element */ \
struct type **tqh_last; /* addr of last next element */ \
}
#define TAILQ_HEAD_INITIALIZER(head) \
{ NULL, &(head).tqh_first }
#define TAILQ_ENTRY(type) \
struct { \
struct type *tqe_next; /* next element */ \
struct type **tqe_prev; /* address of previous next element */ \
}
/*
* tail queue access methods
*/
#define TAILQ_FIRST(head) ((head)->tqh_first)
#define TAILQ_END(head) NULL
#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
#define TAILQ_LAST(head, headname) \
(*(((struct headname *)((head)->tqh_last))->tqh_last))
/* XXX */
#define TAILQ_PREV(elm, headname, field) \
(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
#define TAILQ_EMPTY(head) \
(TAILQ_FIRST(head) == TAILQ_END(head))
#define TAILQ_FOREACH(var, head, field) \
for((var) = TAILQ_FIRST(head); \
(var) != TAILQ_END(head); \
(var) = TAILQ_NEXT(var, field))
#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
for((var) = TAILQ_LAST(head, headname); \
(var) != TAILQ_END(head); \
(var) = TAILQ_PREV(var, headname, field))
/*
* Tail queue functions.
*/
#define TAILQ_INIT(head) do { \
(head)->tqh_first = NULL; \
(head)->tqh_last = &(head)->tqh_first; \
} while (0)
#define TAILQ_INSERT_HEAD(head, elm, field) do { \
if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
(head)->tqh_first->field.tqe_prev = \
&(elm)->field.tqe_next; \
else \
(head)->tqh_last = &(elm)->field.tqe_next; \
(head)->tqh_first = (elm); \
(elm)->field.tqe_prev = &(head)->tqh_first; \
} while (0)
#define TAILQ_INSERT_TAIL(head, elm, field) do { \
(elm)->field.tqe_next = NULL; \
(elm)->field.tqe_prev = (head)->tqh_last; \
*(head)->tqh_last = (elm); \
(head)->tqh_last = &(elm)->field.tqe_next; \
} while (0)
#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
(elm)->field.tqe_next->field.tqe_prev = \
&(elm)->field.tqe_next; \
else \
(head)->tqh_last = &(elm)->field.tqe_next; \
(listelm)->field.tqe_next = (elm); \
(elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
} while (0)
#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
(elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
(elm)->field.tqe_next = (listelm); \
*(listelm)->field.tqe_prev = (elm); \
(listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
} while (0)
#define TAILQ_REMOVE(head, elm, field) do { \
if (((elm)->field.tqe_next) != NULL) \
(elm)->field.tqe_next->field.tqe_prev = \
(elm)->field.tqe_prev; \
else \
(head)->tqh_last = (elm)->field.tqe_prev; \
*(elm)->field.tqe_prev = (elm)->field.tqe_next; \
_Q_INVALIDATE((elm)->field.tqe_prev); \
_Q_INVALIDATE((elm)->field.tqe_next); \
} while (0)
#define TAILQ_REPLACE(head, elm, elm2, field) do { \
if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \
(elm2)->field.tqe_next->field.tqe_prev = \
&(elm2)->field.tqe_next; \
else \
(head)->tqh_last = &(elm2)->field.tqe_next; \
(elm2)->field.tqe_prev = (elm)->field.tqe_prev; \
*(elm2)->field.tqe_prev = (elm2); \
_Q_INVALIDATE((elm)->field.tqe_prev); \
_Q_INVALIDATE((elm)->field.tqe_next); \
} while (0)
/*
* Circular queue definitions.
*/
#define CIRCLEQ_HEAD(name, type) \
struct name { \
struct type *cqh_first; /* first element */ \
struct type *cqh_last; /* last element */ \
}
#define CIRCLEQ_HEAD_INITIALIZER(head) \
{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
#define CIRCLEQ_ENTRY(type) \
struct { \
struct type *cqe_next; /* next element */ \
struct type *cqe_prev; /* previous element */ \
}
/*
* Circular queue access methods
*/
#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
#define CIRCLEQ_LAST(head) ((head)->cqh_last)
#define CIRCLEQ_END(head) ((void *)(head))
#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
#define CIRCLEQ_EMPTY(head) \
(CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
#define CIRCLEQ_FOREACH(var, head, field) \
for((var) = CIRCLEQ_FIRST(head); \
(var) != CIRCLEQ_END(head); \
(var) = CIRCLEQ_NEXT(var, field))
#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
for((var) = CIRCLEQ_LAST(head); \
(var) != CIRCLEQ_END(head); \
(var) = CIRCLEQ_PREV(var, field))
/*
* Circular queue functions.
*/
#define CIRCLEQ_INIT(head) do { \
(head)->cqh_first = CIRCLEQ_END(head); \
(head)->cqh_last = CIRCLEQ_END(head); \
} while (0)
#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
(elm)->field.cqe_next = (listelm)->field.cqe_next; \
(elm)->field.cqe_prev = (listelm); \
if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \
(head)->cqh_last = (elm); \
else \
(listelm)->field.cqe_next->field.cqe_prev = (elm); \
(listelm)->field.cqe_next = (elm); \
} while (0)
#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
(elm)->field.cqe_next = (listelm); \
(elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \
(head)->cqh_first = (elm); \
else \
(listelm)->field.cqe_prev->field.cqe_next = (elm); \
(listelm)->field.cqe_prev = (elm); \
} while (0)
#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
(elm)->field.cqe_next = (head)->cqh_first; \
(elm)->field.cqe_prev = CIRCLEQ_END(head); \
if ((head)->cqh_last == CIRCLEQ_END(head)) \
(head)->cqh_last = (elm); \
else \
(head)->cqh_first->field.cqe_prev = (elm); \
(head)->cqh_first = (elm); \
} while (0)
#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
(elm)->field.cqe_next = CIRCLEQ_END(head); \
(elm)->field.cqe_prev = (head)->cqh_last; \
if ((head)->cqh_first == CIRCLEQ_END(head)) \
(head)->cqh_first = (elm); \
else \
(head)->cqh_last->field.cqe_next = (elm); \
(head)->cqh_last = (elm); \
} while (0)
#define CIRCLEQ_REMOVE(head, elm, field) do { \
if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \
(head)->cqh_last = (elm)->field.cqe_prev; \
else \
(elm)->field.cqe_next->field.cqe_prev = \
(elm)->field.cqe_prev; \
if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \
(head)->cqh_first = (elm)->field.cqe_next; \
else \
(elm)->field.cqe_prev->field.cqe_next = \
(elm)->field.cqe_next; \
_Q_INVALIDATE((elm)->field.cqe_prev); \
_Q_INVALIDATE((elm)->field.cqe_next); \
} while (0)
#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \
if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \
CIRCLEQ_END(head)) \
(head).cqh_last = (elm2); \
else \
(elm2)->field.cqe_next->field.cqe_prev = (elm2); \
if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \
CIRCLEQ_END(head)) \
(head).cqh_first = (elm2); \
else \
(elm2)->field.cqe_prev->field.cqe_next = (elm2); \
_Q_INVALIDATE((elm)->field.cqe_prev); \
_Q_INVALIDATE((elm)->field.cqe_next); \
} while (0)
#endif /* !_SYS_QUEUE_H_ */

82
include/sj3core/Dict.h Normal file
View file

@ -0,0 +1,82 @@
/*
* 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: Dict.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:55 $
*/
#define VERSIONPOS 0
#define PASSWDPOS 16
#define PASSWDLEN 16
#define STDYNORMPOS 32
#define STDYNORMLEN 36
#define STDYNORMNUM 40
#define STDYNORMCNT 44
#define STDYCLIDXPOS 48
#define STDYCLIDXLEN 52
#define STDYCLIDXSTEP 56
#define STDYCLSEGPOS 64
#define STDYCLSEGLEN 68
#define DICTIDXPOS 32
#define DICTIDXLEN 36
#define DICTSEGPOS 48
#define DICTSEGLEN 52
#define DICTSEGNUM 56
#define DICTSEGMAX 60
#define DICTAIDXPOS 64
#define DICTAIDXLEN 68
#define DICTASEGPOS 80
#define DICTASEGLEN 84
#define HEADERPOS 0
#define HEADERLENGTH 128
#define COMMENTPOS 128
#define COMMENTLENGTH 128
#define Byte2Long(c3,c2,c1,c0) (((c3) << (8*3)) | ((c2) << (8*2)) | \
((c1) << (8*1)) | ((c0) << (8*0)))
#define STDYVERSION Byte2Long('S', 2, 0, 0)
#define DICTVERSION Byte2Long('D', 2, 0, 0)

View file

@ -0,0 +1,21 @@
EXTRA_DIST = \
Dict.h \
Struct.h \
sj3lowlib.h \
sj_connect.h \
sj_const.h \
sj_dict.h \
sj_global.h \
sj_kanakan.h \
sj_kcnv.h \
sj_left.h \
sj_prty.h \
sj_rename.h \
sj_right.h \
sj_struct.h \
sj_study.h \
sj_suuji.h \
sj_table.h \
sj_typedef.h \
sj_var.h \
sj_yomi.h

173
include/sj3core/Struct.h Normal file
View file

@ -0,0 +1,173 @@
/*
* 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: Struct.h,v $
* $SonyRevision: 1.3 $
* $SonyDate: 1994/10/21 05:13:34 $
*/
#ifndef STRUCT_H
#define STRUCT_H
typedef struct global {
JREC *Jmaxjptr;
CLREC *Jmaxclptr;
JREC *Jjrt1st;
CLREC *Jclt1st;
JREC *Jjrt2nd;
CLREC *Jclt2nd;
CLREC *Jselcl;
short Jselectid;
short Jtrank;
short Jnrank;
u_char *Jinputyomi;
u_char *Jcnvstart;
short Jcnvlen;
u_char *Jystart;
u_char Jhyomi[MAXPHINPUTLEN + 1];
u_char Jorgyomi[MAXCLINPUTLEN*2 + 1];
u_char Jkanjibuf[MINPHOUTPUTLEN];
u_char *Jkanjipos;
u_char *Jkanjitmp;
short Jkanjilen;
u_char Jdicinl;
u_char Jdicsaml;
TypeDicSeg Jprevseg;
u_char Jfzkcount;
u_char Jfzk_ka_flg;
FREC Jfzktbl[MAXFREC];
u_char Jheadcode;
u_char Jheadlen;
u_char Jgobilen;
TypeGram Jprevclgrm;
TypeCnct Jprevclrow;
u_char Jnextcllen;
short Jkhcount;
short Jnkhcount;
KHREC Jkouhotbl[MAXKOUHONUMBER];
STDYIN *Jstdytop;
DICT *Jcurdict;
DICTL *Jdictlist;
u_char *Jdicbuf;
u_char *Jidxbuf;
TypeIdxOfs *Jidxofs;
u_char *Jaskknj[MAXKNJASKNUMBER];
u_char *Jaskknj_k[MAXKNJASKNUMBER];
STDY *Jcurstdy;
u_short Jsuuji_wbuf[NUMWORDBUF];
u_char Jsuuji_ubuf[NUMKETALENGTH];
TypeClass Jsuuji_class;
u_char Jsuuji_comma;
u_char Jsuuji_keta;
u_char *Jsuuji_yptr;
u_char Jsuuji_len;
u_char Jsuuji_exit;
u_short *Jsuuji_wkeep;
u_char *Jsuuji_ukeep;
u_char Jpeepyomi[MAXWDYOMILEN * 2 + 1];
u_char Jpeepknj[MAXWDKANJILEN + 1];
TypeGram Jpeepgrm;
u_char *Jpeepdptr;
u_char *Jpeephptr;
u_char *Jpeepkptr;
TypeDicSeg Jpeepidx;
} Global;
typedef struct dictfile {
DICT dict;
int refcnt;
fd_set lock;
FILE *fp;
int fd;
u_char *buffer;
long bufsiz;
long idxstrt;
long segstrt;
TypeIdxOfs *ofsptr;
struct dictfile *link;
} DictFile;
typedef struct stdyfile {
STDY stdy;
int refcnt;
ino_t inode;
FILE *fp;
int fd;
u_char *header;
struct stdyfile *link;
} StdyFile;
typedef struct workarea {
int refcnt;
int lock;
struct workarea *link;
Global global;
} WorkArea;
typedef struct client {
int fd;
char host[MAXHOSTNAMELEN];
char user[MAXLOGNAME];
char prog[FILENAME_MAX];
WorkArea *work;
StdyFile *stdy;
short version;
unsigned char def_char[2];
#if (defined(TLI) && defined(SOCK_UNIX))
int unix_flag;
#endif
uid_t uid;
struct client *next;
} Client;
#endif

View file

@ -0,0 +1,69 @@
/*
* 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: sj3lowlib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $
*/
#ifndef SJ3LOWLIB_H
#define SJ3LOWLIB_H
typedef struct sj3_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ3_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH
# define SJ3_NAME_LENGTH 128
#endif
typedef struct sj3_who_struct {
int fd;
char hostname[SJ3_NAME_LENGTH];
char username[SJ3_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH];
} SJ3_WHO_STRUCT;
#define MBCODE_SJIS 1
#define MBCODE_EUC 2
#endif /* SJ3LOWLIB_H */

View file

@ -0,0 +1,524 @@
/*
* 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: sj_connect.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:00 $
*/
#ifndef _SJ_CONNECT
#define _SJ_CONNECT
#define wo_x 0
#define ttatte_x 0
#define ttara_x 0
#define tte1_x 0
#define tte2_x 0
#define ppanasi_x 0
#define ppoi_x 0
#define ue_x 0
#define uti_x 0
#define oite_x 0
#define okeru_x 0
#define ori_x 0
#define ka1_x 0
#define ka2_x 0
#define kai_x 0
#define kasira_x 0
#define katagata_x 0
#define kadouka_x 0
#define kana_x 0
#define kane_x 0
#define kamo_x 0
#define kara1_x 0
#define kara2_x 0
#define ga1_x 0
#define ga2_x 0
#define gatera_x 0
#define kiri_x 0
#define kuseni_x 0
#define kurai_x 0
#define gurumi_x 0
#define kedo_x 0
#define koso_x 0
#define koto_x 0
#define sa2_x 0
#define sae_x 0
#define si2_x 0
#define sika_x 0
#define sura_x 0
#define zutu_x 0
#define zo_x 0
#define tame_x 0
#define dake_x 0
#define dano_x 0
#define darake_x 0
#define tuite_x 0
#define tuki_x 0
#define tutu_x 0
#define tumori_x 0
#define te1_x 0
#define te2_x 0
#define teru_x 0
#define dearou_x 0
#define deru_x 0
#define to1_x 0
#define to2_x 0
#define totte_x 0
#define toiu_x 0
#define toori_x 0
#define toki_x 0
#define tokoro_x 0
#define tote_x 0
#define tohaie_x 0
#define tomo_x 0
#define do_x 0
#define doori_x 0
#define dokoro_x 0
#define dokoroka_x 0
#define domo_x 0
#define na1_x 0
#define naa_x 0
#define nagara_x 0
#define nazo_x 0
#define nado_x 0
#define nari_x 0
#define nanka_x 0
#define nanzo_x 0
#define nante_x 0
#define ni1_x 0
#define ni2_x 0
#define ni3_x 0
#define nite_x 0
#define nimo_x 0
#define ne1_x 0
#define nee_x 0
#define no1_x 0
#define no2_x 0
#define node_x 0
#define noni_x 0
#define nomi_x 0
#define nominrz_x 0
#define ha_x 0
#define hazu_x 0
#define ba_x 0
#define bakari_x 0
#define he_x 0
#define hou_x 0
#define hoka_x 0
#define hodo_x 0
#define made_x 0
#define mama_x 0
#define mo1_x 0
#define mo2_x 0
#define motte_x 0
#define mono_x 0
#define ya1_x 0
#define ya2_x 0
#define yara_x 0
#define yue_x 0
#define yo_x 0
#define yori_x 0
#define wa_x 0
#define wake_x 0
#define wane_x 0
#define wayo_x 0
#define nn1_x 0
#define jya_x 0
#define tya_x 0
#define nagara2_x 0
#define wo_s_x 0
#define ze_x 0
#define kke_x 0
#define n_si_x 0
#define deha_x 0
#define gotosi_x 0
#define saseru_x 0
#define zaru_x 0
#define zu_x 0
#define zunba_x 0
#define seru_x 0
#define souda_x 0
#define youtai_x 0
#define denbun_x 0
#define ta_x 0
#define tai_x 0
#define tagaru_x 0
#define taru_x 0
#define da1_x 0
#define da2_x 0
#define daxtu_x 0
#define darou_x 0
#define de_x 0
#define desi_x 0
#define desho_x 0
#define desu_x 0
#define na2_x 0
#define nara_x 0
#define nai_x 0
#define nu_x 0
#define ne2_x 0
#define nn2_x 0
#define fuuda_x 0
#define besi_x 0
#define mai_x 0
#define masu_x 0
#define masure_x 0
#define mase_x 0
#define mitaida_x 0
#define you_x 0
#define youda_x 0
#define rasii_x 0
#define rareru_x 0
#define reru_x 0
#define site_x 0
#define yougen_x 0
#define aru_x 0
#define ara_x 0
#define ari1_x 0
#define ari2_x 0
#define ari3_x 0
#define are1_x 0
#define are2_x 0
#define arou_x 0
#define ii_x 0
#define itasi_x 0
#define itadaku_x 0
#define iru_x 0
#define eru_x 0
#define kakeru_x 0
#define kaneru_x 0
#define karazu_x 0
#define gatai_x 0
#define gatida_x 0
#define kudasaru_x 0
#define gozai_x 0
#define sa1_x 0
#define si1_x 0
#define siro_x 0
#define jyau_x 0
#define jimau_x 0
#define sugiru_x 0
#define subesi_x 0
#define suru_x 0
#define sure_x 0
#define se_x 0
#define seyo_x 0
#define tamau_x 0
#define tayu_x 0
#define timau_x 0
#define dekiru_x 0
#define naru_x 0
#define nasai_x 0
#define nasaru_x 0
#define nikui_x 0
#define yasui_x 0
#define yoi_x 0
#define yaru_x 0
#ifdef HORI
\244\303\244\277\244\351\244\267\244\244\244\316 \244\316\276\360\312\363\244\362\304\311\262\303 1/31
#endif
#define ttarasii_x 0
#define wo_o 0x80
#define ttatte_o 0x40
#define ttara_o 0x20
#define tte1_o 0x10
#define tte2_o 0x08
#define ppanasi_o 0x04
#define ppoi_o 0x02
#define ue_o 0x01
#define uti_o 0x80
#define oite_o 0x40
#define okeru_o 0x20
#define ori_o 0x10
#define ka1_o 0x08
#define ka2_o 0x04
#define kai_o 0x02
#define kasira_o 0x01
#define katagata_o 0x80
#define kadouka_o 0x40
#define kana_o 0x20
#define kane_o 0x10
#define kamo_o 0x08
#define kara1_o 0x04
#define kara2_o 0x02
#define ga1_o 0x01
#define ga2_o 0x80
#define gatera_o 0x40
#define kiri_o 0x20
#define kuseni_o 0x10
#define kurai_o 0x08
#define gurumi_o 0x04
#define kedo_o 0x02
#define koso_o 0x01
#define koto_o 0x80
#define sa2_o 0x40
#define sae_o 0x20
#define si2_o 0x10
#define sika_o 0x08
#define sura_o 0x04
#define zutu_o 0x02
#define zo_o 0x01
#define tame_o 0x80
#define dake_o 0x40
#define dano_o 0x20
#define darake_o 0x10
#define tuite_o 0x08
#define tuki_o 0x04
#define tutu_o 0x02
#define tumori_o 0x01
#define te1_o 0x80
#define te2_o 0x40
#define teru_o 0x20
#define dearou_o 0x10
#define deru_o 0x08
#define to1_o 0x04
#define to2_o 0x02
#define totte_o 0x01
#define toiu_o 0x80
#define toori_o 0x40
#define toki_o 0x20
#define tokoro_o 0x10
#define tote_o 0x08
#define tohaie_o 0x04
#define tomo_o 0x02
#define do_o 0x01
#define doori_o 0x80
#define dokoro_o 0x40
#define dokoroka_o 0x20
#define domo_o 0x10
#define na1_o 0x08
#define naa_o 0x04
#define nagara_o 0x02
#define nazo_o 0x01
#define nado_o 0x80
#define nari_o 0x40
#define nanka_o 0x20
#define nanzo_o 0x10
#define nante_o 0x08
#define ni1_o 0x04
#define ni2_o 0x02
#define ni3_o 0x01
#define nite_o 0x80
#define nimo_o 0x40
#define ne1_o 0x20
#define nee_o 0x10
#define no1_o 0x08
#define no2_o 0x04
#define node_o 0x02
#define noni_o 0x01
#define nomi_o 0x80
#define nominrz_o 0x40
#define ha_o 0x20
#define hazu_o 0x10
#define ba_o 0x08
#define bakari_o 0x04
#define he_o 0x02
#define hou_o 0x01
#define hoka_o 0x80
#define hodo_o 0x40
#define made_o 0x20
#define mama_o 0x10
#define mo1_o 0x08
#define mo2_o 0x04
#define motte_o 0x02
#define mono_o 0x01
#define ya1_o 0x80
#define ya2_o 0x40
#define yara_o 0x20
#define yue_o 0x10
#define yo_o 0x08
#define yori_o 0x04
#define wa_o 0x02
#define wake_o 0x01
#define wane_o 0x80
#define wayo_o 0x40
#define nn1_o 0x20
#define jya_o 0x10
#define tya_o 0x08
#define nagara2_o 0x04
#define wo_s_o 0x02
#define ze_o 0x80
#define kke_o 0x40
#define n_si_o 0x20
#define deha_o 0x10
#define gotosi_o 0x80
#define saseru_o 0x40
#define zaru_o 0x20
#define zu_o 0x10
#define zunba_o 0x08
#define seru_o 0x04
#define souda_o 0x02
#define youtai_o 0x01
#define denbun_o 0x80
#define ta_o 0x40
#define tai_o 0x20
#define tagaru_o 0x10
#define taru_o 0x08
#define da1_o 0x04
#define da2_o 0x02
#define daxtu_o 0x01
#define darou_o 0x80
#define de_o 0x40
#define desi_o 0x20
#define desho_o 0x10
#define desu_o 0x08
#define na2_o 0x04
#define nara_o 0x02
#define nai_o 0x01
#define nu_o 0x80
#define ne2_o 0x40
#define nn2_o 0x20
#define fuuda_o 0x10
#define besi_o 0x08
#define mai_o 0x04
#define masu_o 0x02
#define masure_o 0x01
#define mase_o 0x80
#define mitaida_o 0x40
#define you_o 0x20
#define youda_o 0x10
#define rasii_o 0x08
#define rareru_o 0x04
#define reru_o 0x02
#define site_o 0x01
#define yougen_o 0x80
#define aru_o 0x40
#define ara_o 0x20
#define ari1_o 0x10
#define ari2_o 0x08
#define ari3_o 0x04
#define are1_o 0x02
#define are2_o 0x01
#define arou_o 0x80
#define ii_o 0x40
#define itasi_o 0x20
#define itadaku_o 0x10
#define iru_o 0x08
#define eru_o 0x04
#define kakeru_o 0x02
#define kaneru_o 0x01
#define karazu_o 0x80
#define gatai_o 0x40
#define gatida_o 0x20
#define kudasaru_o 0x10
#define gozai_o 0x08
#define sa1_o 0x04
#define si1_o 0x02
#define siro_o 0x01
#define jyau_o 0x80
#define jimau_o 0x40
#define sugiru_o 0x20
#define subesi_o 0x10
#define suru_o 0x08
#define sure_o 0x04
#define se_o 0x02
#define seyo_o 0x01
#define tamau_o 0x80
#define tayu_o 0x40
#define timau_o 0x20
#define dekiru_o 0x10
#define naru_o 0x08
#define nasai_o 0x04
#define nasaru_o 0x02
#define nikui_o 0x01
#define yasui_o 0x80
#define yoi_o 0x40
#define yaru_o 0x20
#ifdef HORI
\244\303\244\277\244\351\244\267\244\244\244\316 \244\316\276\360\312\363\244\362\304\311\262\303 1/31
#endif
#define ttarasii_o 0x10
#endif

155
include/sj3core/sj_const.h Normal file
View file

@ -0,0 +1,155 @@
/*
* 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: sj_const.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:01 $
*/
#ifndef _SJ_CONST
#define _SJ_CONST
#include "sj_euc.h"
#define MATCH 0
#define OVER 1
#define PARTLY 2
#define CONT 3
#define UNDER 4
#define FALSE 0
#define TRUE -1
#define AD_DONE 0x0000
#define AD_NOTUSERDICT 0x0001
#define AD_BADYOMI 0x0002
#define AD_BADKANJI 0x0004
#define AD_BADHINSI 0x0008
#define AD_AREXIST 0x0010
#define AD_OVFLWDOUBLK 0x0020
#define AD_OVFLWDOUNUM 0x0040
#define AD_OVFLWUSRDIC 0x0080
#define AD_OVFLWINDEX 0x0100
#define AD_NOMIDASI 0x0010
#define AD_NOHINSI 0x0020
#define AD_NOKANJI 0x0040
#define C_WAKACHI 0x00
#define C_MINASI 0x01
#define C_BUNSETU 0x02
#define C_DICT 0x03
#define C_N_ARABIA 0x04
#define C_N_ARACMA 0x05
#define C_N_KAZU 0x06
#define C_N_SUUJI 0x07
#define C_N_NANSUU 0x08
#define C_N_KANKURA 0x09
#define C_N_ARAKURA 0x0a
#define C_N_KAZULONG 0x0b
#define C_N_KAZULCMA 0x0c
#define C_N_SUUJILONG 0x0d
#define JFLAG_N10 (1 << 15)
#define JFLAG_N_1 (1 << 14)
#define JFLAG_NS1 (1 << 13)
#define JFLAG_N01 (1 << 12)
#define JFLAG_N23 (1 << 11)
#define JFLAG_NK2 (1 << 10)
#define JFLAG_NK4 (1 << 9)
#define JFLAG_NN0 (1 << 8)
#define JFLAG_NSN (1 << 7)
#define JFLAG_KA (1 << 0)
#define DO_CLSTUDY 0x01
#define DO_IKKATU 0x02
#define K_DOUSHI 1
#define K_YOUGEN 2
#define K_TAIGEN 3
#define K_FUKUSI 4
#define K_RENTAISI 5
#define K_SONOTA 6
#define EUC_a1 (u_char)0xa1
#define EUC_a2 (u_char)0xa2
#define EUC_a3 (u_char)0xa3
#define EUC_a4 (u_char)0xa4
#define EUC_a5 (u_char)0xa5
#define EUC_START (u_char)0xa1
#define EUC_END (u_char)0xfe
#define EUC_END_KIGOU (u_char)0xae
#define EUC_0 (u_char)0xb0
#define EUC_END_0 (u_char)0xb9
#define EUC_A (u_char)0xc1
#define EUC_END_A (u_char)0xda
#define EUC_a (u_char)0xe1
#define EUC_END_a (u_char)0xfa
#define EUC_END_HIRA (u_char)0xf3
#define EUC_VU (u_char)0xf4
#define EUC_XKA (u_char)0xf5
#define EUC_XKE (u_char)0xf6
#define isknj1(c) (((c) == SS2) || (((c) & 0x80) && ((c) != SS3)))
#define SHU 0x01
#define T_KANOU 0x80
#define T_SHUUJO 0x40
#define DICTOP 0x01
#define FZKTOP 0x02
#define DEPEND 0x04
#define NUMBER 0x08
#define FZK_KGU 0x10
#define TAI_KGU 0x20
#define BEFORNUM 0x40
#define MIDNUM 0x80
#define NOTNRM 0xFE
#define CNJEND 0xff
#define TYOUONFLG 0x80
#define MAXFREC 32
#define MAXFLVL 10
#define FZKEND 0xff
#define SETTOU_O 1
#define SETTOU_GO 2
#define SETTOU_DAI 3
#define SETTOU_KIGOU 4
#define NUMKETALENGTH 16
#define NUMWORDBUF ((NUMKETALENGTH+3)/4)
#endif

98
include/sj3core/sj_dict.h Normal file
View file

@ -0,0 +1,98 @@
/*
* 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: sj_dict.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:03 $
*/
#ifndef _SJ_DICT
#define _SJ_DICT
#define DIC_MAIN 0
#define DIC_USER 1
#define DICSEGBASE 0
#define MAXDOUONBLK 0xfff
#define DOUONBLKSIZENUMBER 3
#define DICSEGTERM 0xff
#define DOUONBLKTERM 0xff
#define HINSIBLKTERM 0xff
#define MAXSEGMENTNUMBER 0xffff
#define NORMALKANJIMASK 0x7f
#define SS3KANJI 0x0080
#define ZENHIRAASSYUKU 0x80
#define OFFSETASSYUKU 0x90
#define ZENKATAASSYUKU 0xa0
#define AIATTRIBUTE 0xb0
#define KANJIASSYUKU 0xc0
#define LEADINGHANKAKU 0xd0
#define KANJISTREND 0x00
#define ISASSYUKU 0x80
#define ASSUKUUSE2BYTE 0x90
#define KNJASSYUKUMASK 0x0f
#define KANJICODEMASK 0x0f
#define KANJIMODEMASK 0xf0
#define ATRMSKANJIOFS 0xc0c0
#define MAXKNJASKNUMBER 16
#define MAXYOMIASKNUMBER 16
#define MAXWDYOMILEN 31
#define MAXWDKANJILEN 64
#define ASSYUKUYOMITOP 0x80
#define NOKORIYOMITOP 0x40
#define getsize(p) (((int)(*(p) & 0x0f) * 0x100) + *((p) + 1))
#define getntag(p) ((*(p) == DICSEGTERM) ? (p) : (p) + getsize(p))
#define getplen(p) (((*(p) & ASSYUKUYOMITOP) ? 0x10 : 0) + (*((p) + 2) >> 4))
#define getnlen(p) (((*(p) & NOKORIYOMITOP) ? 0x10 : 0) + (*((p) + 2) & 0x0f))
#define segtop() (dicbuf + *dicbuf + 1)
#define segend(p) (*(p) == DICSEGTERM || (p) >= dicbuf + curdict->seglen)
#endif

View file

@ -0,0 +1,44 @@
/*
* 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: sj_global.h,v $
* $SonyRevision: 1.2 $
* $SonyDate: 1994/12/09 11:27:06 $
*/
#ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H
extern Global *global_work_base;
extern Global *work_base;
extern STDY *stdy_base;
extern int serv_errno;
#endif

View file

@ -0,0 +1,332 @@
/*
* 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 "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 */
u_int adddic(u_char *, u_char *, TypeGram);
/* addelcmn.c */
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);
TypeIdxOfs count_uidx(void);
void chg_uidx(TypeDicSeg, u_char *, int);
/* alloc.c */
JREC *alloc_jrec(void);
void free_jrec(JREC *);
CLREC *alloc_clrec(void);
void free_clrec(CLREC *);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(u_char *, int, u_char *);
int nextcl(u_char *, int);
int prevcl(u_char *, int);
int selectnum(void);
/* clstudy.c */
int clstudy(u_char *, u_char *, STDYOUT *);
void delclsub(u_char *);
void mkclidx(void);
/* 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(void);
/* cvtdict.c */
void cvtdict(KHREC *, CLREC *, int);
void cvtminasi(int);
void cvtwakachi(CLREC *);
/* cvtkanji.c */
void cvtphknj(void);
void cvtkouho(KHREC *);
void setstyrec(KHREC *);
/* deldic.c */
u_int deldic(u_char *, u_char *, TypeGram);
/* dict.c */
void get_askknj(void);
int seldict(TypeDicID);
u_char *get_idxptr(TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(JREC *, u_char *, TypeCnct);
RECURS void srchfzk(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(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 *);
/* getrank.c */
void getrank(void);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char *, int);
/* init.c */
void seg_count(DICT *);
void mkidxtbl(DICT *);
void initwork(void);
/* istrcmp.c */
int istrcmp(u_char *, u_char *, int, int);
/* memcpy.c */
void sstrncpy(u_char *, u_char *, int);
/* memory.c */
JREC *free_jlst(JREC *);
CLREC *free_clst(CLREC *, int);
void free_clall(CLREC *);
void free_jall(JREC *);
void freework(void);
/* mk2claus.c */
void mk2claus(void);
/* mkbunset.c */
void mkbunsetu(void);
CLREC *argclrec(int);
/* mkjiritu.c */
void mkjiritu(int);
JREC *argjrec(int, JREC *);
/* mkkouho.c */
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 *);
/* mknumber.c */
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 *);
/* mvmemd.c */
void mvmemd(u_char *, u_char *, int);
/* mvmemi.c */
void mvmemi(u_char *, u_char *, int);
/* peepdic.c */
int getusr(u_char *);
int nextusr(u_char *);
int prevusr(u_char *);
/* ph2knj.c */
int ph2knj(u_char *, u_char *, int);
/* ph_khtbl.c */
int ph_khtbl(CLREC *);
/* priority.c */
int priority(CLREC *);
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 */
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 *);
/* selclrec.c */
void selclrec(void);
/* selsuuji.c */
extern u_short *selsjadrs[];
/* setconj.c */
int setconj(TypeGram, JREC *, CREC *);
/* setjrec.c */
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 *);
/* setkouho.c */
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 *);
/* setubi.c */
u_char *getstb(TypeGram);
void setubi(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(u_char *, u_char *, u_char *);
u_char *srchdict(u_char *);
/* srchhead.c */
int srchhead(void);
/* srchidx.c */
TypeDicSeg srchidx(TypeDicSeg, int);
/* srchnum.c*/
void srchnum(void);
void setwdnum(u_char *, int, u_short *);
int setucnum(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 *dst, int);
/* stbtbl.c */
extern u_char *stbadr[];
/* stttbl.c */
extern u_char *settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(STDYOUT *);
STDYIN *srchstdy(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(TypeCnct, u_char *);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(void);
#endif /* KANAKAN_H */

48
include/sj3core/sj_kcnv.h Normal file
View file

@ -0,0 +1,48 @@
/*
* 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: sj_kcnv.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:10 $
*/
#include <stdio.h>
#include <sys/param.h>
#include "sj_typedef.h"
#include "sj_rename.h"
#include "sj_const.h"
#include "sj_var.h"
#include "sj_dict.h"
#include "sj_study.h"
#include "sj_table.h"
#include "sj_struct.h"
#include "Const.h"
#include "Struct.h"
#include "sj_global.h"

286
include/sj3core/sj_left.h Normal file
View file

@ -0,0 +1,286 @@
/*
* 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: sj_left.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:12 $
*/
#ifndef _SJ_LEFT
#define _SJ_LEFT
#define L_WO 0x01
#define L_TTATTE 0x02
#define L_TTARA 0x03
#define L_TTE1 0x04
#define L_TTE2 0x05
#define L_PPANASI 0x06
#define L_PPOI 0x07
#define L_UE 0x08
#define L_UTI 0x09
#define L_OITE 0x0a
#define L_OKERU 0x0b
#define L_ORI 0x0c
#define L_KA1 0x0d
#define L_KA2 0x0e
#define L_KAI 0x0f
#define L_KASIRA 0x10
#define L_KATAGATA 0x11
#define L_KADOUKA 0x12
#define L_KANA 0x13
#define L_KANE 0x14
#define L_KAMO 0x15
#define L_KARA1 0x16
#define L_KARA2 0x17
#define L_GA1 0x18
#define L_GA2 0x19
#define L_GATERA 0x1a
#define L_KIRI 0x1b
#define L_KUSENI 0x1c
#define L_KURAI 0x1d
#define L_GURUMI 0x1e
#define L_KEDO 0x1f
#define L_KOSO 0x20
#define L_KOTO 0x21
#define L_SA2 0x22
#define L_SAE 0x23
#define L_SI2 0x24
#define L_SIKA 0x25
#define L_SURA 0x26
#define L_ZUTU 0x27
#define L_ZO 0x28
#define L_TAME 0x29
#define L_DAKE 0x2a
#define L_DANO 0x2b
#define L_DARAKE 0x2c
#define L_TUITE 0x2d
#define L_TUKI 0x2e
#define L_TUTU 0x2f
#define L_TUMORI 0x30
#define L_TE1 0x31
#define L_TE2 0x32
#define L_TERU 0x33
#define L_DEAROU 0x34
#define L_DERU 0x35
#define L_TO1 0x36
#define L_TO2 0x37
#define L_TOTTE 0x38
#define L_TOIU 0x39
#define L_TOORI 0x3a
#define L_TOKI 0x3b
#define L_TOKORO 0x3c
#define L_TOTE 0x3d
#define L_TOHAIE 0x3e
#define L_TOMO 0x3f
#define L_DO 0x40
#define L_DOORI 0x41
#define L_DOKORO 0x42
#define L_DOKOROKA 0x43
#define L_DOMO 0x44
#define L_NA1 0x45
#define L_NAA 0x46
#define L_NAGARA 0x47
#define L_NAZO 0x48
#define L_NADO 0x49
#define L_NARI 0x4a
#define L_NANKA 0x4b
#define L_NANZO 0x4c
#define L_NANTE 0x4d
#define L_NI1 0x4e
#define L_NI2 0x4f
#define L_NI3 0x50
#define L_NITE 0x51
#define L_NIMO 0x52
#define L_NE1 0x53
#define L_NEE 0x54
#define L_NO1 0x55
#define L_NO2 0x56
#define L_NODE 0x57
#define L_NONI 0x58
#define L_NOMI 0x59
#define L_NOMINRZ 0x5a
#define L_HA 0x5b
#define L_HAZU 0x5c
#define L_BA 0x5d
#define L_BAKARI 0x5e
#define L_HE 0x5f
#define L_HOU 0x60
#define L_HOKA 0x61
#define L_HODO 0x62
#define L_MADE 0x63
#define L_MAMA 0x64
#define L_MO1 0x65
#define L_MO2 0x66
#define L_MOTTE 0x67
#define L_MONO 0x68
#define L_YA1 0x69
#define L_YA2 0x6a
#define L_YARA 0x6b
#define L_YUE 0x6c
#define L_YO 0x6d
#define L_YORI 0x6e
#define L_WA 0x6f
#define L_WAKE 0x70
#define L_WANE 0x71
#define L_WAYO 0x72
#define L_NN1 0x73
#define L_JYA 0x74
#define L_TYA 0x75
#define L_NAGARA2 0x76
#define L_WO_S 0x77
#define L_ZE 0x79
#define L_KKE 0x7a
#define L_N_SI 0x7b
#define L_DEHA 0x7c
#define L_GOTOSI 0x81
#define L_SASERU 0x82
#define L_ZARU 0x83
#define L_ZU 0x84
#define L_ZUNBA 0x85
#define L_SERU 0x86
#define L_SOUDA 0x87
#define L_YOUTAI 0x88
#define L_DENBUN 0x89
#define L_TA 0x8a
#define L_TAI 0x8b
#define L_TAGARU 0x8c
#define L_TARU 0x8d
#define L_DA1 0x8e
#define L_DA2 0x8f
#define L_DAXTU 0x90
#define L_DAROU 0x91
#define L_DE 0x92
#define L_DESI 0x93
#define L_DESHO 0x94
#define L_DESU 0x95
#define L_NA2 0x96
#define L_NARA 0x97
#define L_NAI 0x98
#define L_NU 0x99
#define L_NE2 0x9a
#define L_NN2 0x9b
#define L_FUUDA 0x9c
#define L_BESI 0x9d
#define L_MAI 0x9e
#define L_MASU 0x9f
#define L_MASURE 0xa0
#define L_MASE 0xa1
#define L_MITAIDA 0xa2
#define L_YOU 0xa3
#define L_YOUDA 0xa4
#define L_RASII 0xa5
#define L_RARERU 0xa6
#define L_RERU 0xa7
#define L_SITE 0xa8
#define L_YOUGEN 0xa9
#define L_ARU 0xaa
#define L_ARA 0xab
#define L_ARI1 0xac
#define L_ARI2 0xad
#define L_ARI3 0xae
#define L_ARE1 0xaf
#define L_ARE2 0xb0
#define L_AROU 0xb1
#define L_II 0xb2
#define L_ITASI 0xb3
#define L_ITADAKU 0xb4
#define L_IRU 0xb5
#define L_ERU 0xb6
#define L_KAKERU 0xb7
#define L_KANERU 0xb8
#define L_KARAZU 0xb9
#define L_GATAI 0xba
#define L_GATIDA 0xbb
#define L_KUDASARU 0xbc
#define L_GOZAI 0xbd
#define L_SA1 0xbe
#define L_SI1 0xbf
#define L_SIRO 0xc0
#define L_JYAU 0xc1
#define L_JIMAU 0xc2
#define L_SUGIRU 0xc3
#define L_SUBESI 0xc4
#define L_SURU 0xc5
#define L_SURE 0xc6
#define L_SE 0xc7
#define L_SEYO 0xc8
#define L_TAMAU 0xc9
#define L_TYAU 0xca
#define L_TIMAU 0xcb
#define L_DEKIRU 0xcc
#define L_NARU 0xcd
#define L_NASAI 0xce
#define L_NASARU 0xcf
#define L_NIKUI 0xd0
#define L_YASUI 0xd1
#define L_YOI 0xd2
#define L_YORU 0xd3
#define L_TTARASII 0xd4
#endif

81
include/sj3core/sj_prty.h Normal file
View file

@ -0,0 +1,81 @@
/*
* 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: sj_prty.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:13 $
*/
#ifndef _SJ_PRIORITY
#define _SJ_PRIORITY
#define RENTAI 0x10
#define GETPRI 0x0f
#define P_FUKA 1
#define P_TANKAN 1
#define P_SHUUSI 2
#define P_MEIREI 2
#define P_KATEI 2
#define P_KAMEI 2
#define P_DAIMEISI 4
#define P_MEISI 6
#define P_KEISIKI 4
#define P_RENYOU_F 3
#define P_RENYOU_J 11
#define P_RENYOU_M 12
#define P_JOSHI_F 3
#define P_JOSHI_E 4
#define P_JOSHI_D 6
#define P_JOSHI_C 7
#define P_JOSHI_B 8
#define P_JOSHI_A 9
#define P_SETTOU 6
#define P_SETUBI 6
#define P_SUUSI 4
#define P_FUKUSI 13
#define P_F_FUKUSI 10
#define P_RENTAISI 10
#define P_KANDOU 6
#define P_SETUZOKU 14
#define P_FZKKGU 9
#define P_JOSUUSI 10
#endif

563
include/sj3core/sj_rename.h Normal file
View file

@ -0,0 +1,563 @@
/*
* 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: sj_rename.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:14 $
*/
#ifndef _SJ_RENAME
#define _SJ_RENAME
#include <config.h>
#define adddic Jadddic
#define checksub Jchecksub
#define checkdict Jcheckdict
#define cal_nextym Jcal_nextym
#define cmpknj Jcmpknj
#define usr_freelen Jusr_freelen
#define sprt_seg Jsprt_seg
#define apnd_uidx Japnd_uidx
#define set_size Jset_size
#define isvyomi Jisvyomi
#define isvknj Jisvknj
#define isgrm Jisgrm
#define addel_arg Jaddel_arg
#define yomi2kata Jyomi2kata
#define top_strcmp Jtop_strcmp
#define last_strcmp Jlast_strcmp
#define cvtknj Jcvtknj
#define srchkana Jsrchkana
#define srchgram Jsrchgram
#define srchkanji Jsrchkanji
#define count_uidx Jcount_uidx
#define chg_uidx Jchg_uidx
#define cl2knj Jcl2knj
#define nextcl Jnextcl
#define nextrecblk Jnextrecblk
#define prevcl Jprevcl
#define prevrecblk Jprevrecblk
#define initkbuf Jinitkbuf
#define selectnum Jselectnum
#define kouhonum Jkouhonum
#define clstudy Jclstudy
#define delcldata Jdelcldata
#define delclsub Jdelclsub
#define delclold Jdelclold
#define srchclpos Jsrchclpos
#define mkclidx Jmkclidx
#define cvtclknj Jcvtclknj
#define cvtdict Jcvtdict
#define cvtminasi Jcvtminasi
#define cvtwakachi Jcvtwakachi
#define cvtphknj Jcvtphknj
#define cvtkouho Jcvtkouho
#define setstyrec Jsetstyrec
#define deldic Jdeldic
#define del_douon Jdel_douon
#define del_segment Jdel_segment
#define del_uidx Jdel_uidx
#define del_stdy Jdel_stdy
#define get_askknj Jget_askknj
#define seldict Jseldict
#define sel_udict Jsel_udict
#define get_idxofs Jget_idxofs
#define get_idxptr Jget_idxptr
#define fzkstrcmp Jfzkstrcmp
#define setclrec Jsetclrec
#define fzkcnct Jfzkcnct
#define srchfzk Jsrchfzk
#define getkan_none Jgetkan_none
#define getkan_hira Jgetkan_hira
#define getkan_kata Jgetkan_kata
#define getkan_knj Jgetkan_knj
#define getkan_ofs Jgetkan_ofs
#define getkan_norm Jgetkan_norm
#define code2kanji Jcode2kanji
#define getkanji Jgetkanji
#define getrank Jgetrank
#define setstynum Jsetstynum
#define setnspr Jsetnspr
#define regetrank Jregetrank
#define work_base Jwork_base
#define stdy_base Jstdy_base
#define maxjptr (work_base -> Jmaxjptr)
#define maxclptr (work_base -> Jmaxclptr)
#define jrt1st (work_base -> Jjrt1st)
#define clt1st (work_base -> Jclt1st)
#define jrt2nd (work_base -> Jjrt2nd)
#define clt2nd (work_base -> Jclt2nd)
#define selcl (work_base -> Jselcl)
#define selectid (work_base -> Jselectid)
#define trank (work_base -> Jtrank)
#define nrank (work_base -> Jnrank)
#define buninf (work_base -> Jbuninf)
#define buncnt (work_base -> Jbuncnt)
#define knjnew (work_base -> Jknjnew)
#define knjidx (work_base -> Jknjidx)
#define knjmax (work_base -> Jknjmax)
#define score (work_base -> Jscore)
#define pathnum (work_base -> Jpathnum)
#define usedpath (work_base -> Jusedpath)
#define inputyomi (work_base -> Jinputyomi)
#define cnvstart (work_base -> Jcnvstart)
#define cnvlen (work_base -> Jcnvlen)
#define ystart (work_base -> Jystart)
#define hyomi (work_base -> Jhyomi)
#define orgyomi (work_base -> Jorgyomi)
#define kanjibuf (work_base -> Jkanjibuf)
#define kanjipos (work_base -> Jkanjipos)
#define kanjitmp (work_base -> Jkanjitmp)
#define kanjilen (work_base -> Jkanjilen)
#define dicinl (work_base -> Jdicinl)
#define dicsaml (work_base -> Jdicsaml)
#define prevseg (work_base -> Jprevseg)
#define fzkcount (work_base -> Jfzkcount)
#define fzk_ka_flg (work_base -> Jfzk_ka_flg)
#define fzktbl (work_base -> Jfzktbl)
#define headcode (work_base -> Jheadcode)
#define headlen (work_base -> Jheadlen)
#define gobilen (work_base -> Jgobilen)
#define prevclgrm (work_base -> Jprevclgrm)
#define prevclrow (work_base -> Jprevclrow)
#define nextcllen (work_base -> Jnextcllen)
#define khcount (work_base -> Jkhcount)
#define nkhcount (work_base -> Jnkhcount)
#define kouhotbl (work_base -> Jkouhotbl)
#define stdytop (work_base -> Jstdytop)
#define curdict (work_base -> Jcurdict)
#define dictlist (work_base -> Jdictlist)
#define dicbuf (work_base -> Jdicbuf)
#define idxbuf (work_base -> Jidxbuf)
#define idxofs (work_base -> Jidxofs)
#define askknj (work_base -> Jaskknj)
#define askknj_k (work_base -> Jaskknj_k)
#define grp_ptr (work_base -> Jgrp_ptr)
#define grp_seg (work_base -> Jgrp_seg)
#define grp_grp (work_base -> Jgrp_grp)
#define suuji_wbuf (work_base -> Jsuuji_wbuf)
#define suuji_ubuf (work_base -> Jsuuji_ubuf)
#define suuji_class (work_base -> Jsuuji_class)
#define suuji_comma (work_base -> Jsuuji_comma)
#define suuji_keta (work_base -> Jsuuji_keta)
#define suuji_yptr (work_base -> Jsuuji_yptr)
#define suuji_len (work_base -> Jsuuji_len)
#define suuji_exit (work_base -> Jsuuji_exit)
#define suuji_wkeep (work_base -> Jsuuji_wkeep)
#define suuji_ukeep (work_base -> Jsuuji_ukeep)
#define peepyomi (work_base -> Jpeepyomi)
#define peepknj (work_base -> Jpeepknj)
#define peepgrm (work_base -> Jpeepgrm)
#define peepdptr (work_base -> Jpeepdptr)
#define peephptr (work_base -> Jpeephptr)
#define peepkptr (work_base -> Jpeepkptr)
#define peepidx (work_base -> Jpeepidx)
#define seg_count Jseg_count
#define mkidxtbl Jmkidxtbl
#define initwork Jinitwork
#define free_jlst Jfree_jlst
#define free_clst Jfree_clst
#define free_clall Jfree_clall
#define free_jall Jfree_jall
#define freework Jfreework
#define free_kjall Jfree_kjall
#define set2nd Jset2nd
#define mk2claus Jmk2claus
#define mkbunsetu Jmkbunsetu
#define argclrec Jargclrec
#define mkjiritu Jmkjiritu
#define dic_mu Jdic_mu
#define argjrec Jargjrec
#define dic_cl Jdic_cl
#define mkkouho Jmkkouho
#define getkhtbl Jgetkhtbl
#define cl_kanji Jcl_kanji
#define sameknj Jsameknj
#define skipatr Jskipatr
#define diffknj Jdiffknj
#define chrck_numtbl Jchrck_numtbl
#define sel_sjmode Jsel_sjmode
#define cl_numcmn Jcl_numcmn
#define word2char Jword2char
#define words2num Jwords2num
#define num_type00 Jnum_type00
#define num_type01 Jnum_type01
#define num_type02 Jnum_type02
#define num_type03 Jnum_type03
#define num_type04 Jnum_type04
#define num_type05 Jnum_type05
#define num_type06 Jnum_type06
#define num_type07 Jnum_type07
#define kan_num Jkan_num
#define num_type08 Jnum_type08
#define num_type09 Jnum_type09
#define num_type10 Jnum_type10
#define num_type11 Jnum_type11
#define num_type12 Jnum_type12
#define num_kurai Jnum_kurai
#define num_type13 Jnum_type13
#define num_type14 Jnum_type14
#define getusr Jgetusr
#define nextusr Jnextusr
#define prevusr Jprevusr
#define set_kanji Jset_kanji
#define set_buf Jset_buf
#define prev_kanji Jprev_kanji
#define prev_hinsi Jprev_hinsi
#define prev_douon Jprev_douon
#define next_kanji Jnext_kanji
#define next_hinsi Jnext_hinsi
#define next_douon Jnext_douon
#define add_yomi Jadd_yomi
#define cd2sjh_chr Jcd2sjh_chr
#define ph2knj Jph2knj
#define ph_setsty Jph_setsty
#define nextkptr Jnextkptr
#define maxpset Jmaxpset
#define mkknjmax Jmkknjmax
#define ph_khtbl Jph_khtbl
#define isfukusi Jisfukusi
#define istaigen Jistaigen
#define taicnt Jtaicnt
#define sttcnt Jsttcnt
#define priority Jpriority
#define pritiny Jpritiny
#define selclrec Jselclrec
#define initknjall Jinitknjall
#define knjtouroku Jknjtouroku
#define knjitti Jknjitti
#define hikakusub Jhikakusub
#define knjhikaku Jknjhikaku
#define setgroupai Jsetgroupai
#define select_dsub Jselect_dsub
#define select_tsub Jselect_tsub
#define select_ysub Jselect_ysub
#define selectknj Jselectknj
#define selknj Jselknj
#define cnjstrcmp Jcnjstrcmp
#define cnvrow Jcnvrow
#define setconj Jsetconj
#define setj_atrb Jsetj_atrb
#define setj_ofs Jsetj_ofs
#define setj_knj Jsetj_knj
#define setj_norm1 Jsetj_norm1
#define setj_norm2 Jsetj_norm2
#define chkhead Jchkhead
#define setjrec Jsetjrec
#define setnumrec Jsetnumrec
#define setcrec Jsetcrec
#define setkouho Jsetkouho
#define ph_setkouho Jph_setkouho
#define hiraknj Jhiraknj
#define hiraknj_atrb Jhiraknj_atrb
#define hiraknj_ofs Jhiraknj_ofs
#define hiraknj_knj Jhiraknj_knj
#define hiraknj_hask Jhiraknj_hask
#define hiraknj_kask Jhiraknj_kask
#define hiraknj_norm Jhiraknj_norm
#define hiraknj_hira Jhiraknj_hira
#define getstb Jgetstb
#define setubi Jsetubi
#define sj2cd_chr Jsj2cd_chr
#define sj2cd_str Jsj2cd_str
#define retaiofs Jretaiofs
#define srchai2nd Jsrchai2nd
#define srchai1st Jsrchai1st
#define srchai4th Jsrchai4th
#define srchai3rd Jsrchai3rd
#define srchai6th Jsrchai6th
#define srchai5th Jsrchai5th
#define yomicmp_sub Jyomicmp_sub
#define yomicmp Jyomicmp
#define srchdict Jsrchdict
#define srchg_atrb Jsrchg_atrb
#define srchg_ofs Jsrchg_ofs
#define srchg_knj Jsrchg_knj
#define srchg_norm1 Jsrchg_norm1
#define srchg_norm2 Jsrchg_norm2
#define srchgrp2nd Jsrchgrp2nd
#define srchgrp1st Jsrchgrp1st
#define srchhead Jsrchhead
#define srchidx Jsrchidx
#define srch_josuu_sub Jsrch_josuu_sub
#define srch_josuu Jsrch_josuu
#define setnrec_sub Jsetnrec_sub
#define setnrec Jsetnrec
#define srchtbl Jsrchtbl
#define isconnect Jisconnect
#define string_cmp Jstring_cmp
#define check_num Jcheck_num
#define srch_number1 Jsrch_number1
#define srch_kurai1 Jsrch_kurai1
#define srch_kurai2 Jsrch_kurai2
#define srch_number2 Jsrch_number2
#define srchnum_sub Jsrchnum_sub
#define srchnum Jsrchnum
#define setwdnum Jsetwdnum
#define setucnum Jsetucnum
#define study Jstudy
#define srchstdy Jsrchstdy
#define terminate Jterminate
#define wakachi Jwakachi
#define cmpstr Jcmpstr
#define hzstrlen Jhzstrlen
#define istrcmp Jistrcmp
#define mvmemd Jmvmemd
#define mvmemi Jmvmemi
#define skiphblk Jskiphblk
#define skipkstr Jskipkstr
#define sstrcmp Jsstrcmp
#define sstrlen Jsstrlen
#define sstrncmp Jsstrncmp
#define charsize Jcharsize
#define chrtbl Jchrtbl
#define conjadr Jconjadr
#define connadr Jconnadr
#define rigtadr Jrigtadr
#define cvtnum_func Jcvtnum_func
#define getkan_func Jgetkan_func
#define setjrec_func Jsetjrec_func
#define srchg_func Jsrchg_func
#define hiraknj_func Jhiraknj_func
#define fzkadr Jfzkadr
#define taipri Jtaipri
#define sttpri Jsttpri
#define kigou Jkigou
#define selsjadrs Jselsjadrs
#define stbadr Jstbadr
#define settou_ptr Jsettou_ptr
#define scncttbl Jscncttbl
#define suuji_tbl Jsuuji_tbl
#define kurai1_tbl Jkurai1_tbl
#define kurai2_tbl Jkurai2_tbl
#define num1tbl Jnum1tbl
#define num2tbl Jnum2tbl
#define num3tbl Jnum3tbl
#define num4tbl Jnum4tbl
#define num5tbl Jnum5tbl
#define num6tbl Jnum6tbl
#define termtbl Jtermtbl
#endif

373
include/sj3core/sj_right.h Normal file
View file

@ -0,0 +1,373 @@
/*
* 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: sj_right.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:15 $
*/
#ifndef _SJ_RIGHT
#define _SJ_RIGHT
#define R_DE 1
#define R_WO 2
#define R_KARA1 3
#define R_GA1 4
#define R_TO1 5
#define R_NI1 6
#define R_NO1 7
#define R_HA 8
#define R_HE 9
#define R_MO1 10
#define R_YA1 11
#define R_YORI1 12
#define R_SAE 13
#define R_SIKA 14
#define R_DAKE 15
#define R_I 16
#define R_E 17
#define R_KAKE 18
#define R_KANE2 19
#define R_SUGI 20
#define R_DEKI 21
#define R_MI 22
#define R_SASE 23
#define R_RARE 24
#define R_ITADAKE 25
#define R_EXP 26
#define R_RENYOU1 27
#define R_RENYOU5 28
#define R_SA5RENYOU1 29
#define R_RENYOU3 30
#define R_RENYOU7 31
#define R_SA5RENYOU3 32
#define R_RENYOU4 33
#define R_RENYOU8 34
#define R_SA5RENYOU4 35
#define R_KRENYOU 39
#define R_DRENYOU1 40
#define R_DRENYOU2 41
#define R_DRENYOU3 42
#define R_ONBIN1 43
#define R_ONBIN2 44
#define R_ONBIN3 45
#define R_DESHI 46
#define R_AXTU 47
#define R_ONBIN6 48
#define R_ONBIN8 49
#define R_ARI1 50
#define R_ARI2 51
#define R_ARI3 52
#define R_IKI 53
#define R_ITASI 54
#define R_ITADAKI 55
#define R_ORI2 56
#define R_GATAKU 57
#define R_KI 58
#define R_KUDASAI 59
#define R_GOZAI 60
#define R_GOTOKU 61
#define R_BEKU 62
#define R_SOUDE 63
#define R_SOUNI 64
#define R_TAGARI 65
#define R_TAKU 66
#define R_MIZEN1 67
#define R_NAIDE 68
#define R_NAKU 69
#define R_NASAI 70
#define R_FUUNI 71
#define R_YORI2 72
#define R_RASHUU 73
#define R_DSHUUSI1 74
#define R_DSHUUSI2 75
#define R_GOTOSI 76
#define R_BESI 77
#define R_ZU 78
#define R_SOUDA 79
#define R_MAI 80
#define R_MITAIDA 81
#define R_SHUUSI 82
#define R_KSHUUSI 83
#define R_ZARU 84
#define R_SOUDESU 85
#define R_TA 86
#define R_TAI 87
#define R_DESU 88
#define R_NAI 89
#define R_NU 90
#define R_MASU 91
#define R_NN2 92
#define R_RASII 93
#define R_DRENTAI1 94
#define R_DRENTAI2 95
#define R_DRENTAI3 96
#define R_KRENTAI 97
#define R_GOTOKI 98
#define R_BEKI 99
#define R_SOUNA1 100
#define R_SOUNA2 101
#define R_NA2 102
#define R_KATEI1 103
#define R_KATEI2 104
#define R_KATEI3 105
#define R_KAMEI 106
#define R_IKE 107
#define R_KURE 108
#define R_MEIREI1 109
#define R_MEIREI2 110
#define R_DGOKAN 111
#define R_KGOKAN 112
#define R_SGOKAN 113
#define R_GATI 114
#define R_JYA 115
#define R_SOU 116
#define R_MITAI 117
#define R_YOTTE 118
#define R_YOU2 119
#define R_SHO 120
#define R_FZKMEISI 121
#define R_AISATU 122
#define R_KOSODO 123
#define R_YOU1 124
#define R_HASI 125
#define R_DAIMEISI 126
#define R_DAIMEISI6 127
#define R_FZKKI 128
#define R_DEHA 129
#define R_NAGARA2 130
#define R_WO_S 131
#define R_WO_MEISI 132
#define R_SITE 133
#define R_N_SI 134
#define R_F_FUKUSI 135
#define R_CUT 137
#define R_MIZEN2 140
#define R_MIZEN3 141
#define R_MIZEN4 142
#define R_SI1 143
#define R_JI 144
#define R_AGE 145
#define R_MIZEN5 146
#define R_AROU 147
#define R_KAROU 148
#define R_DAROU 149
#define R_DESHOU 150
#define R_KO 151
#define R_BEKARA 152
#define R_TAGARA 153
#define R_SHUUJO 154
#define R_TTATTE 155
#define R_TTARA 156
#define R_TTE1 157
#define R_TTE2 158
#define R_PPANASI 159
#define R_PPOI 160
#define R_UE 161
#define R_UTI 162
#define R_OITE 163
#define R_OKERU 164
#define R_ORI1 165
#define R_KA1 166
#define R_KA2 167
#define R_KATAGATA 168
#define R_KADOUKA 169
#define R_KAMO 170
#define R_KARA2 171
#define R_GA2 172
#define R_GATERA 173
#define R_KIRI 174
#define R_KUSENI 175
#define R_KURAI 176
#define R_GURUMI 177
#define R_KEDO 178
#define R_KOSO 179
#define R_KOTO 180
#define R_SI2 181
#define R_SURA 182
#define R_ZUTU 183
#define R_TAME 184
#define R_TARI 185
#define R_DANO 186
#define R_DARAKE 187
#define R_TUITE 188
#define R_TUKI 189
#define R_TUTU 190
#define R_TUMORI 191
#define R_TE1 192
#define R_TE2 193
#define R_TERU 194
#define R_TO2 195
#define R_TOTTE 196
#define R_TOIU 197
#define R_TOORI 198
#define R_TOKI 199
#define R_TOKORO 200
#define R_TOTE 201
#define R_TOHAIE 202
#define R_TOMO 203
#define R_DO 204
#define R_DOORI 205
#define R_DOKORO 206
#define R_DOKOROKA 207
#define R_DOMO 208
#define R_NAGARA 209
#define R_NAZO 210
#define R_NADO 211
#define R_NARI 212
#define R_NANKA 213
#define R_NANZO 214
#define R_NANTE 215
#define R_NI2 216
#define R_NI3 217
#define R_NITE 218
#define R_NIMO 219
#define R_NO2 220
#define R_NODE 221
#define R_NONI 222
#define R_NOMI 223
#define R_NOMINRZ 224
#define R_HAZU 225
#define R_BA 226
#define R_BAKARI 227
#define R_HOU 228
#define R_HOKA 229
#define R_HODO 230
#define R_MADE 231
#define R_MAMA 232
#define R_MO2 233
#define R_MOTTE 234
#define R_MONO 235
#define R_YA2 236
#define R_YARA 237
#define R_YUE 238
#define R_WAKE 239
#define R_NN1 240
#define R_SUUSI 241
#define R_SETUZOKU 242
#define R_KANDOU 243
#define R_SETTOU 244
#define R_FUKUSI 245
#define R_FZKKGU 246
#define R_MEISI 247
#define R_DMEISI 248
#define R_SMEISI1 249
#define R_SMEISI2 250
#define R_KSTB 251
#define R_ICHISETUBI 252
#define R_JOSUUSI 253
#define R_RENTAISI 254
#define R_TANKAN 255
#endif

200
include/sj3core/sj_struct.h Normal file
View file

@ -0,0 +1,200 @@
/*
* 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: sj_struct.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:16 $
*/
#ifndef _SJ_STRUCT
#define _SJ_STRUCT
typedef struct jiritu {
struct jiritu *jsort;
TypeDicSeg jseg;
TypeDicOfs jofsst;
TypeDicOfs jofsed;
u_short flags;
TypeClass class;
TypeDicID dicid;
u_char jlen;
TypeGram hinsi;
u_char sttofs;
u_char stbofs;
u_char count;
u_char numlen;
} JREC;
typedef struct bunsetu {
JREC *jnode;
struct bunsetu *clsort;
u_char gobiln;
u_char cllen;
TypeCnct right;
u_char cl2len;
u_char kubun;
#if __STDC__
unsigned fzk_ka : 1;
#else
u_char fzk_ka : 1;
#endif
} CLREC;
typedef struct kouho {
CLREC *clrec;
TypeDicOfs offs;
TypeStyNum styno;
u_char rank;
#if __STDC__
unsigned sttfg : 1;
unsigned sttkj : 1;
unsigned ka_fg : 1;
unsigned ka_kj : 1;
unsigned mode : 4;
#else
u_char sttfg : 1;
u_char sttkj : 1;
u_char ka_fg : 1;
u_char ka_kj : 1;
u_char mode : 4;
#endif
} KHREC;
typedef struct conj {
u_char len;
TypeCnct right;
} CREC;
typedef struct fuzoku {
u_char *yomip;
u_char *fzkp;
} FREC;
typedef struct study_in {
TypeDicOfs offset;
TypeDicSeg seg;
TypeStyNum styno;
TypeDicID dicid;
#if __STDC__
unsigned sttkj : 1;
unsigned ka_kj : 1;
unsigned nmflg : 1;
#else
u_char sttkj : 1;
u_char ka_kj : 1;
u_char nmflg : 1;
#endif
} STDYIN;
typedef struct study_out {
STDYIN stdy1;
TypeGram hinshi;
u_char len;
#if __STDC__
unsigned sttlen : 2;
unsigned sttfg : 1;
unsigned ka_fg : 1;
#else
u_char sttlen : 2;
u_char sttfg : 1;
u_char ka_fg : 1;
#endif
} STDYOUT;
typedef struct dict {
TypeDicID dicid;
TypeIdxOfs idxlen;
TypeDicOfs seglen;
TypeDicSeg segunit;
TypeDicSeg maxunit;
IFunc getofs;
IFunc getidx;
IFunc getdic;
IFunc putidx;
IFunc putdic;
IFunc rszdic;
} DICT;
typedef struct dictl {
DICT *dict;
struct dictl *next;
} DICTL;
typedef struct stdy {
short stdycnt;
short stdymax;
STDYIN *stdydic;
short clstdystep;
u_short *clstdyidx;
short clstdylen;
u_char *clstdydic;
} STDY;
#endif

View file

@ -0,0 +1,92 @@
/*
* 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: sj_study.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:18 $
*/
#ifndef _SJ_STUDY
#define _SJ_STUDY
#define StudyExist() (stdy_base)
#define STUDYCOUNT (stdy_base -> stdycnt)
#define STUDYMAX (stdy_base -> stdymax)
#define STUDYDICT (stdy_base -> stdydic)
#define CLSTUDYIDX (stdy_base -> clstdyidx)
#define CLSTUDYSTEP (stdy_base -> clstdystep)
#define CLSTUDYLEN (stdy_base -> clstdylen)
#define CLSTUDYDICT (stdy_base -> clstdydic)
#define STUDYTAIL (STUDYDICT + STUDYMAX)
#define STUDYRECSIZE (sizeof(STDYIN))
#define CLSTUDYTAIL (CLSTUDYDICT + CLSTUDYLEN)
#define STUDYNORMEND 0
#define STUDYNODICT 1
#define STUDYFULLAREA 2
#define STUDYNOTSTUDY 3
#define STUDYERROR 4
#define CLSTDY_TMPLEN 256
#define CLSTUDYNORMEND 0
#define CLSTUDYNODICT 1
#define CLSTUDYPARAERR 2
#define CLSTUDYYOMIERR 3
#define CLSTUDYNOAREA 4
#define CL_YLEN 0
#define CL_GRAM2 1
#define CL_Y1LEN 2
#define CL_NUMH 3
#define CL_NUML 4
#define CL_YDATA 5
#define CL_HDLEN 5
#define iseocl(p) (!ClYomiLen(p) || (u_char *)(p) >= CLSTUDYTAIL)
#define ClGramCode(p) *((p) + CL_GRAM2)
#define ClYomiLen(p) *((p) + CL_YLEN)
#define ClYomi1Len(p) *((p) + CL_Y1LEN)
#define ClHighNum(p) *(p + CL_NUMH)
#define ClLowNum(p) *(p + CL_NUML)
#define ClGetNum(p) (ClHighNum(p) * 0x100 + ClLowNum(p))
#define ClSetNum(p, n) (ClHighNum(p)=(u_char)((n) >> 8), ClLowNum(p)=(u_char)(n))
#define ClYomiPos(p) ((p) + CL_YDATA)
#define ClBlkLen(p) (ClYomiLen(p) + CL_HDLEN)
#define ClNextTag(p) ((p) + ClBlkLen(p))
#endif

137
include/sj3core/sj_suuji.h Normal file
View file

@ -0,0 +1,137 @@
/*
* 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: sj_suuji.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:19 $
*/
#ifndef _SJ_SUUJI
#define _SJ_SUUJI
#define SJTBLRECLEN 6
#define SJTBLRECNUM 34
#define SjTblYPos(p) (p)
#define SJTBLYLEN 3
#define SjTblModeP(p) ((p) + 3)
#define SjTblNumber(md) ((md) & 0x0f)
#define SJTBLNARABIAF 0x80
#define SJTBLNYOMIF 0x40
#define SJTBLNNARABIF 0x20
#define SJTBLNNANSUUF 0x10
#define SjTblNCont(md) ((md) & SJTBLNCONTF)
#define SjTblCnctP(p) ((p) + 4)
#define KR1TBLRECLEN 5
#define KR1TBLRECNUM 10
#define Kr1TblYPos(p) (p)
#define KR1TBLYLEN 3
#define Kr1TblModeP(p) ((p) + 3)
#define KR1TBLTOPF 0x80
#define Kr1TblTop(md) ((md) & KR1TBLTOPF)
#define Kr1TblKeta(md) (((md) >> 4) & 7)
#define Kr1TblCnct(md) ((md) & 0x0f)
#define Kr1TblCnctP(p) ((p) + 3)
#define KR2TBLRECLEN 4
#define KR2TBLRECNUM 3
#define Kr2TblYPos(p) (p)
#define KR2TBLYLEN 3
#define Kr2TblModeP(p) ((p) + 3)
#define Kr2TblCnct(md) ((md) & 0x0f)
#define Kr2TblKeta(md) (((md) >> 4) & 0x0f)
#define _NUM0 0x01
#define _NUM1 0x02
#define _NUM2 0x03
#define _NUM3 0x04
#define _NUM4 0x05
#define _NUM5 0x06
#define _NUM6 0x07
#define _NUM7 0x08
#define _NUM8 0x09
#define _NUM9 0x0a
#define _NUM1S 0x0b
#define _NUMS 0x0c
#define _NUMN 0x0d
#define COMMAHIGH 0xa1
#define COMMALOW 0xa4
#define SELARB 1
#define SELARB0 2
#define SELARBCMA 3
#define SELKANSJ0 5
#define SELKANSJ20 8
#define SELKANSJYM 9
#define SELKANSJYM2 10
#define SELLONGARB 11
#define SELLONGARBCMA 12
#define SELLONGSJ 13
#define SELARBKR 14
#define SELKANSJKR 15
#define SELNUMTERM 0xffff
#define SELKANSJ 4
#define SELKANSJ2 7
#define SELKANSJCMA 6
#define SELNUM0123 (JFLAG_N01 | JFLAG_N23)
#define SELNUM1_23_10_1 (JFLAG_N_1 | JFLAG_N23 | JFLAG_N10 | JFLAG_NS1)
#define SELNUMMUST (JFLAG_NK2 | JFLAG_NK4 | JFLAG_NN0 | JFLAG_NSN)
#define SELNUMALL (JFLAG_N10 | JFLAG_N_1 | JFLAG_NS1 | JFLAG_N01 \
| JFLAG_N23 | JFLAG_NK2 | JFLAG_NK4 \
| JFLAG_NN0 | JFLAG_NSN)
#define SelNumFunc(c) ((c) & (~SELNUMALL))
#define SelNumCond(c) ((c) & SELNUMALL)
#define NUMBER123456789NS ((1<<_NUM1)|(1<<_NUM2)|(1<<_NUM3)|(1<<_NUM4) \
|(1<<_NUM5)|(1<<_NUM6)|(1<<_NUM7)|(1<<_NUM8) \
|(1<<_NUM9)|(1<<_NUM1S)\
|(1<<_NUMN)|(1<<_NUMS))
#define NUMBER0 (1<<_NUM0)
#define NUMBER1 ((1<<_NUM1)|(1<<_NUM1S))
#define NUMBERS1 (1<<_NUM1S)
#define NUMBER01 (NUMBER0|NUMBER1)
#define NUMBER23 ((1<<_NUM2)|(1<<_NUM3))
#endif

124
include/sj3core/sj_table.h Normal file
View file

@ -0,0 +1,124 @@
/*
* 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: sj_table.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:21 $
*/
#ifndef _SJ_TABLE
#define _SJ_TABLE
#define isdpnd(c) (Chrtbl[c] & DEPEND)
#define CnjAskLen(p) (((unsigned int) *(p) & 0x70) >> 4)
#define CnjNkrLen(p) (*(p) & 0x0f)
#define CnjRight(p) *(p + CnjNkrLen(p) + 1)
#define CnjRecLen(p) (CnjNkrLen(p) + 2)
#define FzkAskLen(p) ((unsigned int) *(p) >> 5)
#define FzkNkrLen(p) (*(p) & 0x07)
#define FzkStrKa(p) (((unsigned int) *(p) >> 3) & 1)
#define FzkHasCode(p) (*(p) & 0x10)
#define FzkLeft(p) (*((p) + nlen + 1))
#define FzkRight(p) (*((p) + nlen + 2))
#define SttYomiLen(p) (*(p) & 0x0f)
#define SttHiraKnj(p) (*(p) & 0x80)
#define StbKnjLen(p) (*(p) & 0x07)
#define StbYomiLen(p) (*(p) >> 4)
#define StbYomiTop(p) ((p) + 2)
#define StbBakeru(p) (*(p) & 0x08)
#define StbHinsi(p) (*((p) + 1))
#define Charsize charsize
#define Chrtbl chrtbl
#define Conjadr(i) conjadr[i]
#define Connadr connadr
#define Cvtnum_func cvtnum_func
#define Fzkadr(i) fzkadr[i]
#define Getkan_func getkan_func
#define Hiraknj_func hiraknj_func
#define Kigou kigou
#define Kurai1_tbl kurai1_tbl
#define Kurai2_tbl kurai2_tbl
#define Makekan_func makekan_func
#define Num1tbl num1tbl
#define Num2tbl num2tbl
#define Num3tbl num3tbl
#define Num4tbl num4tbl
#define Num5tbl num5tbl
#define Num6tbl num6tbl
#define Rigtadr(i) rigtadr[i]
#define Scncttbl(i, j) scncttbl[i][j]
#define Selsjadrs(i) selsjadrs[i]
#define Setjrec_func setjrec_func
#define Settou_ptr(i) settou_ptr[i]
#define Srchg_func srchg_func
#define Stbadr(i) stbadr[i]
#define Sttpri(i, j) sttpri[i][j]
#define Suuji_tbl suuji_tbl
#define Taipri(i, j) taipri[i][j]
#define Termtbl termtbl
#endif

View file

@ -0,0 +1,65 @@
/*
* 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: sj_typedef.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:22 $
*/
#ifndef _SJ_TYPEDEF
#define _SJ_TYPEDEF
#include <stdlib.h>
#include <sys/types.h>
#define RECURS
typedef void (*VFunc)();
typedef u_char *(*UCPFunc)();
typedef int (*IFunc)();
#include <sys/types.h>
typedef u_char TypeGroup;
typedef u_char TypeGram;
typedef u_short TypeIdxOfs;
typedef short TypeDicSeg;
typedef u_short TypeDicOfs;
typedef ino_t TypeDicID;
typedef u_char TypeCnct;
typedef short TypeStyNum;
typedef u_char TypeClass;
typedef u_char TypeBunNum;
#endif

47
include/sj3core/sj_var.h Normal file
View file

@ -0,0 +1,47 @@
/*
* 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: sj_var.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:23 $
*/
#ifndef _SJ_VAR
#define _SJ_VAR
#define MAXKOUHONUMBER 255
#define MAXPHINPUTLEN 256
#define MAXCLINPUTLEN 64
#define MINCLOUTPUTLEN 512
#define MINPHOUTPUTLEN 288
#endif

217
include/sj3core/sj_yomi.h Normal file
View file

@ -0,0 +1,217 @@
/*
* 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: sj_yomi.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:24 $
*/
#ifndef _SJ_YOMICODE
#define _SJ_YOMICODE
#define _TYOUON 0x01
#define _IGETA 0x02
#define _ATTO 0x03
#define _YUUBIN 0x04
#define N_0 0x10
#define N_1 0x11
#define N_2 0x12
#define N_3 0x13
#define N_4 0x14
#define N_5 0x15
#define N_6 0x16
#define N_7 0x17
#define N_8 0x18
#define N_9 0x19
#define A_A 0x1A
#define A_B 0x1B
#define A_C 0x1C
#define A_D 0x1D
#define A_E 0x1E
#define A_F 0x1F
#define A_G 0x20
#define A_H 0x21
#define A_I 0x22
#define A_J 0x23
#define A_K 0x24
#define A_L 0x25
#define A_M 0x26
#define A_N 0x27
#define A_O 0x28
#define A_P 0x29
#define A_Q 0x2A
#define A_R 0x2B
#define A_S 0x2C
#define A_T 0x2D
#define A_U 0x2E
#define A_V 0x2F
#define A_W 0x30
#define A_X 0x31
#define A_Y 0x32
#define A_Z 0x33
#define A_a 0x34
#define A_b 0x35
#define A_c 0x36
#define A_d 0x37
#define A_e 0x38
#define A_f 0x39
#define A_g 0x3A
#define A_h 0x3B
#define A_i 0x3C
#define A_j 0x3D
#define A_k 0x3E
#define A_l 0x3F
#define A_m 0x40
#define A_n 0x41
#define A_o 0x42
#define A_p 0x43
#define A_q 0x44
#define A_r 0x45
#define A_s 0x46
#define A_t 0x47
#define A_u 0x48
#define A_v 0x49
#define A_w 0x4A
#define A_x 0x4B
#define A_y 0x4C
#define A_z 0x4D
#define _XA 0x4E
#define _A 0x4F
#define _XI 0x50
#define _I 0x51
#define _XU 0x52
#define _U 0x53
#define _XE 0x54
#define _E 0x55
#define _XO 0x56
#define _O 0x57
#define _KA 0x58
#define _GA 0x59
#define _KI 0x5A
#define _GI 0x5B
#define _KU 0x5C
#define _GU 0x5D
#define _KE 0x5E
#define _GE 0x5F
#define _KO 0x60
#define _GO 0x61
#define _SA 0x62
#define _ZA 0x63
#define _SI 0x64
#define _ZI 0x65
#define _SU 0x66
#define _ZU 0x67
#define _SE 0x68
#define _ZE 0x69
#define _SO 0x6A
#define _ZO 0x6B
#define _TA 0x6C
#define _DA 0x6D
#define _TI 0x6E
#define _DI 0x6F
#define _XTU 0x70
#define _TU 0x71
#define _DU 0x72
#define _TE 0x73
#define _DE 0x74
#define _TO 0x75
#define _DO 0x76
#define _NA 0x77
#define _NI 0x78
#define _NU 0x79
#define _NE 0x7A
#define _NO 0x7B
#define _HA 0x7C
#define _BA 0x7D
#define _PA 0x7E
#define _HI 0x7F
#define _BI 0x80
#define _PI 0x81
#define _HU 0x82
#define _BU 0x83
#define _PU 0x84
#define _HE 0x85
#define _BE 0x86
#define _PE 0x87
#define _HO 0x88
#define _BO 0x89
#define _PO 0x8A
#define _MA 0x8B
#define _MI 0x8C
#define _MU 0x8D
#define _ME 0x8E
#define _MO 0x8F
#define _XYA 0x90
#define _YA 0x91
#define _XYU 0x92
#define _YU 0x93
#define _XYO 0x94
#define _YO 0x95
#define _RA 0x96
#define _RI 0x97
#define _RU 0x98
#define _RE 0x99
#define _RO 0x9A
#define _XWA 0x9B
#define _WA 0x9C
#define _WI 0x9D
#define _WE 0x9E
#define _WO 0x9F
#define _NN 0xA0
#define _VU 0xA1
#define _XKA 0xA2
#define _XKE 0xA3
#define Y_KUTEN 0xF2
#define Y_TOUTEN 0xF3
#define Y_COMMA 0xF4
#define Y_PERIOD 0xF5
#define Y_QUOTA 0xF6
#define Y_BIKKURI 0xF7
#define Y_S_KIGOU1 0xF8
#define Y_S_KIGOU2 0xF9
#define Y_L_KAKKO 0xFA
#define Y_R_KAKKO 0xFB
#define Y_KIGOU 0xFC
#define Y_HANKAKU 0xFD
#define Y_ZENKAKU 0xFE
#define _NIL 0
#endif

View file

@ -0,0 +1,6 @@
EXTRA_DIST = \
sj3intern.h \
sj3lowlib.h
include_HEADERS = sj3lib.h

View file

@ -0,0 +1,55 @@
/*
* 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 SJ3INTERN_H
#define SJ3INTERN_H
#include "sj3lowlib.h"
/* level1.c */
void sj3_set_timeout(int);
int sj3_make_connection(SJ3_CLIENT_ENV *, char *, char *, char *);
int sj3_erase_connection(SJ3_CLIENT_ENV *);
long sj3_open_dictionary(SJ3_CLIENT_ENV *, char *, char *);
int sj3_close_dictionary(SJ3_CLIENT_ENV *, long);
int sj3_open_study_file(SJ3_CLIENT_ENV *, char *, char *);
int sj3_close_study_file(SJ3_CLIENT_ENV *);
int sj3_get_id_size(SJ3_CLIENT_ENV *);
int sj3_lock_server(SJ3_CLIENT_ENV *);
int sj3_unlock_server(SJ3_CLIENT_ENV *);
int sj3_ikkatu_henkan(SJ3_CLIENT_ENV *, u_char *, u_char *, int, int);
int sj3_bunsetu_henkan(SJ3_CLIENT_ENV *, u_char *, int, u_char *, int);
int sj3_bunsetu_jikouho(SJ3_CLIENT_ENV *, u_char *, int, int);
int sj3_bunsetu_maekouho(SJ3_CLIENT_ENV *, u_char *, int, int);
int sj3_bunsetu_kouhosuu(SJ3_CLIENT_ENV *, u_char *, int, int);
int sj3_bunsetu_zenkouho(SJ3_CLIENT_ENV *, u_char *, int, SJ3_DOUON *, int);
int sj3_tango_gakusyuu(SJ3_CLIENT_ENV *, SJ3_STUDYREC *);
int sj3_bunsetu_gakusyuu(SJ3_CLIENT_ENV *, u_char *, u_char *, SJ3_STUDYREC *, int);
int sj3_tango_touroku(SJ3_CLIENT_ENV *, long, u_char *, u_char *, int, int);
int sj3_tango_sakujo(SJ3_CLIENT_ENV *, long, u_char *, u_char *, int, int);
int sj3_tango_syutoku(SJ3_CLIENT_ENV *, int, u_char *, int);
int sj3_tango_jikouho(SJ3_CLIENT_ENV *, int, u_char *, int);
int sj3_tango_maekouho(SJ3_CLIENT_ENV *, int, u_char *, int);
int sj3_make_dict_file(SJ3_CLIENT_ENV *, char *, int, int, int);
int sj3_make_study_file(SJ3_CLIENT_ENV *, char *, int, int, int);
int sj3_make_directory(SJ3_CLIENT_ENV *, char *);
int sj3_access(SJ3_CLIENT_ENV *, char *, int);
int sj3_who(SJ3_CLIENT_ENV *, SJ3_WHO_STRUCT *, int);
int sj3_quit(SJ3_CLIENT_ENV *);
int sj3_kill(SJ3_CLIENT_ENV *);
int sj3_version(SJ3_CLIENT_ENV *, char *, int);
#endif /* SJ3INTERN_H */

207
include/sj3lib/sj3lib.h Normal file
View file

@ -0,0 +1,207 @@
/*
* 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: sj3lib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:57 $
*/
#ifndef SJ3LIB_H
#define SJ3LIB_H
#include <sys/types.h>
#define SJ3_NORMAL_END 0
#define SJ3_SERVER_DEAD (1 << 0)
#define SJ3_CONNECT_ERROR (1 << 1)
#define SJ3_ALREADY_CONNECTED (1 << 2)
#define SJ3_CANNOT_OPEN_MDICT (1 << 3)
#define SJ3_CANNOT_OPEN_UDICT (1 << 4)
#define SJ3_CANNOT_OPEN_STUDY (1 << 5)
#define SJ3_CANNOT_MAKE_UDIR (1 << 6)
#define SJ3_CANNOT_MAKE_UDICT (1 << 7)
#define SJ3_CANNOT_MAKE_STUDY (1 << 8)
#define SJ3_DISCONNECT_ERROR (1 << 1)
#define SJ3_NOT_CONNECTED (1 << 2)
#define SJ3_NOT_OPENED_MDICT (1 << 3)
#define SJ3_NOT_OPENED_UDICT (1 << 4)
#define SJ3_NOT_OPENED_STUDY (1 << 5)
#define SJ3_CLOSE_MDICT_ERROR (1 << 6)
#define SJ3_CLOSE_UDICT_ERROR (1 << 7)
#define SJ3_CLOSE_STUDY_ERROR (1 << 8)
#define SJ3_DICT_ERROR 1
#define SJ3_DICT_LOCKED 2
#define SJ3_BAD_YOMI_STR 3
#define SJ3_BAD_KANJI_STR 4
#define SJ3_BAD_HINSI_CODE 5
#define SJ3_WORD_EXIST 6
#define SJ3_DOUON_FULL 7
#define SJ3_DICT_FULL 8
#define SJ3_INDEX_FULL 9
#define SJ3_TOUROKU_FAILED 10
#define SJ3_WORD_NOT_EXIST 6
#define SJ3_SYOUKYO_FAILED 10
#define SJ3_IKKATU_YOMI 512
#define SJ3_BUNSETU_YOMI 128
#define SJ3_BUNSETU_KANJI 512
#ifndef SJ3_WORD_ID_SIZE
# define SJ3_WORD_ID_SIZE 32
#endif
typedef struct studyrec {
unsigned char dummy[SJ3_WORD_ID_SIZE];
} SJ3_STUDYREC;
typedef struct bunsetu {
int srclen;
int destlen;
unsigned char *srcstr;
unsigned char *deststr;
struct studyrec dcid;
} SJ3_BUNSETU;
typedef struct douon {
unsigned char ddata[SJ3_BUNSETU_KANJI];
int dlen;
SJ3_STUDYREC dcid;
} SJ3_DOUON;
#define SJ3_H_NRMNOUN 1
#define SJ3_H_PRONOUN 12
#define SJ3_H_LNAME 21
#define SJ3_H_FNAME 22
#define SJ3_H_LOCNAME 24
#define SJ3_H_PREFIC 25
#define SJ3_H_RENTAI 26
#define SJ3_H_CONJUNC 27
#define SJ3_H_SUBNUM 29
#define SJ3_H_NUMERAL 30
#define SJ3_H_PREFIX 31
#define SJ3_H_POSTFIX 36
#define SJ3_H_ADVERB 45
#define SJ3_H_ADJECT 60
#define SJ3_H_ADJVERB 71
#define SJ3_H_SILVERB 80
#define SJ3_H_ZILVERB 81
#define SJ3_H_ONEVERB 90
#define SJ3_H_KAVERB 91
#define SJ3_H_GAVERB 92
#define SJ3_H_SAVERB 93
#define SJ3_H_TAVERB 94
#define SJ3_H_NAVERB 95
#define SJ3_H_BAVERB 96
#define SJ3_H_MAVERB 97
#define SJ3_H_RAVERB 98
#define SJ3_H_WAVERB 99
#define SJ3_H_SINGLE 189
/* sj3.c */
int sj3_open(char *, char *);
int sj3_open_with_list(char *, char *, int, char **, int *, int **);
int sj3_close();
int sj3_getkan(u_char *, SJ3_BUNSETU *, u_char *, int);
int sj3_getkan_euc(u_char *, SJ3_BUNSETU *, u_char *, int);
int sj3_getkan_mb(u_char *, SJ3_BUNSETU *, u_char *, int);
int sj3_douoncnt(u_char *);
int sj3_douoncnt_euc(u_char *);
int sj3_douoncnt_mb(u_char *);
int sj3_getdouon(u_char *, SJ3_DOUON *);
int sj3_getdouon_euc(u_char *, SJ3_DOUON *);
int sj3_getdouon_mb(u_char *, SJ3_DOUON *);
int sj3_gakusyuu(SJ3_STUDYREC *);
int sj3_gakusyuu2(u_char *, u_char *, SJ3_STUDYREC *);
int sj3_gakusyuu2_euc(u_char *, u_char *, SJ3_STUDYREC *);
int sj3_gakusyuu2_mb(u_char *, u_char *, SJ3_STUDYREC *);
int sj3_touroku(u_char *, u_char *, int);
int sj3_touroku_euc(u_char *, u_char *, int);
int sj3_touroku_mb(u_char *, u_char *, int);
int sj3_syoukyo(u_char *, u_char *, int);
int sj3_syoukyo_euc(u_char *, u_char *, int);
int sj3_syoukyo_mb(u_char *, u_char *, int);
int sj3_getdict(u_char *);
int sj3_getdict_euc(u_char *);
int sj3_getdict_mb(u_char *);
int sj3_nextdict(u_char *);
int sj3_nextdict_euc(u_char *);
int sj3_nextdict_mb(u_char *);
int sj3_prevdict(u_char *);
int sj3_prevdict_euc(u_char *);
int sj3_prevdict_mb(u_char *);
int sj3_lockserv();
int sj3_unlockserv();
extern int sj3_error_number;
#endif /* SJ3LIB_H */

View file

@ -0,0 +1,69 @@
/*
* 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: sj3lowlib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $
*/
#ifndef SJ3LOWLIB_H
#define SJ3LOWLIB_H
typedef struct sj3_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ3_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH
# define SJ3_NAME_LENGTH 128
#endif
typedef struct sj3_who_struct {
int fd;
char hostname[SJ3_NAME_LENGTH];
char username[SJ3_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH];
} SJ3_WHO_STRUCT;
#define MBCODE_SJIS 1
#define MBCODE_EUC 2
#endif /* SJ3LOWLIB_H */

View file

@ -0,0 +1,8 @@
EXTRA_DIST = \
kana.h \
kctype.h \
key.h \
rk.h \
wchar16.h
include_HEADERS = sj3rkcv.h

92
include/sj3rkcv/kana.h Normal file
View file

@ -0,0 +1,92 @@
/*
* Copyright (c) 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: kana.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:45 $
*/
#define ZKATA1 0xa5
#define ZHIRA1 0xa4
#define ZKATAF2 0xa1
#define ZKATAE2 0xf6
#define ZHIRAF2 0xa1
#define ZHIRAE2 0xf3
#define ZKATAMU 0xe0
#define ZHIRAMU 0xe0
#define ZKATAn (ZKATAE2-ZKATAF2+1)
#define ZEN_SPACE 0xa1a1
#define ZEN_KTEN 0xa1a3
#define ZEN_FKAKKO 0xa1d6
#define ZEN_EKAKKO 0xa1d7
#define ZEN_TTEN 0xa1a2
#define ZEN_CTEN 0xa1a6
#define ZEN_CHOUON 0xa1bc
#define ZEN_DTEN 0xa1ab
#define ZEN_HDTEN 0xa1ac
#define ZEN_VU 0xa5f4
#define KANA_KTEN 0xa1
#define KANA_FKAKKO 0xa2
#define KANA_EKAKKO 0xa3
#define KANA_TTEN 0xa4
#define KANA_CTEN 0xa5
#define KANA_CHOUON 0xb0
#define KANA_DTEN 0xde
#define KANA_HDTEN 0xdf
#define KANA_XA 0xa7
#define KANA_XYA 0xac
#define KANA_XTSU 0xaf
#define KANA_A 0xb1
#define KANA_KA 0xb6
#define KANA_SA 0xbb
#define KANA_TA 0xc0
#define KANA_NA 0xc5
#define KANA_HA 0xca
#define KANA_MA 0xcf
#define KANA_YA 0xd4
#define KANA_RA 0xd7
#define KANA_WA 0xdc
#define KANA_WO 0xa6
#define KANA_GA (KANA_KA << 8) + KANA_DTEN
#define KANA_ZA (KANA_SA << 8) + KANA_DTEN
#define KANA_DA (KANA_TA << 8) + KANA_DTEN
#define KANA_BA (KANA_HA << 8) + KANA_DTEN
#define KANA_PA (KANA_HA << 8) + KANA_HDTEN

115
include/sj3rkcv/kctype.h Normal file
View file

@ -0,0 +1,115 @@
/*
* Copyright (c) 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: kctype.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:46 $
*/
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
#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
#ifdef issjis1
#undef issjis1
#endif
#define issjis1(c) (((0x81 <= (c)) && ((c) <= 0x9f)) || \
((0xe0 <= (c)) && ((c) <= 0xfc)))
#ifdef issjis2
#undef issjis2
#endif
#define issjis2(c) (((0x40 <= (c)) && ((c) <= 0xfc)) && ((c) != 0x7f))
#ifdef iseuc
#undef iseuc
#endif
#define iseuc(c) ((0xa1 <= (c)) && ((c) <= 0xfe))
#ifdef iseuckana
#undef iseuckana
#endif
#define iseuckana(c) ((c) == 0x8e)
#ifdef iskana2
#undef iskana2
#endif
#define iskana2(c) ((0xa1 <= (c)) && ((c) <= 0xdf))
#ifdef jiszen
#undef jiszen
#endif
#define jiszen(c) (issjis1(((c) >> 8) & 0xff) && issjis2((c) & 0xff))
#ifdef isjjis
#undef isjjis
#endif
#define isjjis(c) ((0x21 <= (c)) && ((c) <= 0x7e))
#ifdef jstrlen
#undef jstrlen
#endif
#define jstrlen(s) euclen(s, 65535)
#ifdef iseuc3byte
#undef iseuc3byte
#endif
#define iseuc3byte(c) ((c) == 0x8f)
#ifdef iseuc2byte
#undef iseuc2byte
#endif
#define iseuc2byte(c) (iseuc(c) || ((c) == 0x8e))
#ifdef iskanji
#undef iskanji
#endif
#define iskanji issjis1
#ifdef iskanji2
#undef iskanji2
#endif
#define iskanji2 issjis2
#ifdef iskana
#undef iskana
#endif
#define iskana iskana2
#endif
#endif

98
include/sj3rkcv/key.h Normal file
View file

@ -0,0 +1,98 @@
/*
* Copyright (c) 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: key.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:47 $
*/
#define KEY_NORMAL 0
#define KEY_CONV 1
#define KEY_HENKAN 2
#define KEY_MUHENKAN 3
#define KEY_KETTEI 4
#define KEY_ZHIRA 5
#define KEY_HALPHA 6
#define KEY_ZALPHA 7
#define KEY_HKATA 8
#define KEY_ZKATA 9
#define KEY_CODE 10
#define KEY_ETC 11
#define KEY_RIGHT 12
#define KEY_LEFT 13
#define KEY_UP 14
#define KEY_DOWN 15
#define KEY_TOGGLE 16
#define KEY_EDIT 17
#define KEY_WRAP 18
#define KEY_WRAPBACK 19
#define KEY_HELP 20
#define KEY_TOROKU 21
#define KEY_SYOUKYO 22
#define KEY_SJRC 23
#define KEY_HA_KET 24
#define KEY_FLUSH 25
#define KEY_BUFFER 26
#define KEY_HANKAKU 27
#define KEY_ZENKAKU 28
#define KEY_HIRAGANA 29
#define KEY_KATAKANA 30
#define KEY_EISUU 31
#define KEY_EIDAI 32
#define KEY_ROMA 33
#define KEY_CANCEL 34
#define KEY_RECONV 35
#define KEY_IGNORE 36
#define KEY_DEBUG 37
#define KEY_TOP 38
#define KEY_END 39
#define KEY_RECONNECT 40
#define KEY_KILL 41
#define KEY_OTHER 42
#define KEY_MORE 43
#define UKEYNUM 64
#define SEQLEN 8
#define COMNUM 64

85
include/sj3rkcv/rk.h Normal file
View file

@ -0,0 +1,85 @@
/*
* Copyright (c) 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: rk.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:48 $
*/
#ifndef RK_H
#define RK_H
#include <sys/types.h>
#include "wchar16.h"
#define SPACE 0x20
#define TAB 0x09
#define EOL 0x0a
#define NSTR '\0'
#ifndef ESC
#define ESC 0x1b
#endif
#define QUOTA '\''
#define BSL '\\'
#define MASK 0xff
#define MAXLEN 256
#define MAXWLEN 16
#define MAXLLEN 64
#define MAXCODE 256
#define CONTINUE 0
#define NOMACH -1
#define FAIL -1
#define RKEND 0xffffffff
#define ERRBEL 0xfffffffc
#define ERRCODE 0x80000000
#define RKMASK 0x0000ffff
#define RKZEN 0xff00
#define SetMojilen(c) ((c << 16) & 0x00ff0000)
#define GetMojilen(c) ((c & ERRCODE) ? (1) : ((c >> 16) & 0xff))
typedef struct rktable_w16 {
wchar16_t *r_key;
u_short *k_yomi;
wchar16_t *r_str;
struct rktable_w16 *next;
} RkTablW16;
typedef struct rktable {
u_char *r_key;
u_short *k_yomi;
u_char *r_str;
struct rktable *next;
} RkTabl;
#endif /* RK_H */

127
include/sj3rkcv/sj3rkcv.h Normal file
View file

@ -0,0 +1,127 @@
/*
* 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 SJ3RKCV_H
#define SJ3RKCV_H
#include "rk.h"
/* rk_conv.c */
#define RKSIZE 256
#define RKINCZ 32
typedef struct rkbufrec {
RkTablW16 *rkbuf;
RkTablW16 *rkend;
struct rkbufrec *rkbufp;
} RkbufRec;
#define STRSIZE 1024
#define STRINCZ 256
typedef struct strbufrec {
wchar16_t *strbuf;
wchar16_t *strend;
struct strbufrec *strbufp;
} StrbufRec;
#define YMISIZE 512
#define YMIINCZ 64
typedef struct ymibufrec {
wchar16_t *ymibuf;
wchar16_t *ymiend;
struct ymibufrec *ymibufp;
} YmibufRec;
extern RkTabl *sj3_rcode[MAXCODE];
extern RkTablW16 *sj3_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);
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 (*)());
char *rkgetyomi(char *, wchar16_t *, int *);
char *getkey(char *, wchar16_t *, int *);
void cltable();
int chk_rstr(wchar16_t *, wchar16_t *, int, int);
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 *);
int rkmatch(wchar16_t *, wchar16_t *, int);
/* sj3_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 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 sj_zentohan(wchar16_t *, wchar16_t *, int);
int sj_tokata(wchar16_t);
int sj_tohira(wchar16_t);
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);
/* XXX */
extern int current_locale;
#endif

392
include/sj3rkcv/wchar16.h Normal file
View file

@ -0,0 +1,392 @@
/*
* Copyright (c) 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: wchar16.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:52 $
*/
#ifndef _WCHARH
#define _WCHARH
#if defined(__sony_news) && defined(SVR4)
#define _WCHAR_T
typedef unsigned short wchar_t;
#include <stdlib.h>
#include <ctype.h>
#include <widec.h>
#include <wctype.h>
typedef wchar_t wchar16_t;
#else
#include <stdlib.h>
#include <ctype.h>
typedef unsigned short wchar16_t;
#endif
#include "key.h"
#ifndef SS2
#define SS2 0x8e
#define SS3 0x8f
#endif
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
#ifdef iswcntrl
#undef iswcntrl
#endif
#define iswcntrl(wc) sj3_iswcntrl16(wc)
#ifdef iswupper
#undef iswupper
#endif
#define iswupper(wc) sj3_iswupper16(wc)
#ifdef iswdigit
#undef iswdigit
#endif
#define iswdigit(wc) sj3_iswdigit16(wc)
#ifdef iswxdigit
#undef iswxdigit
#endif
#define iswxdigit(wc) sj3_iswxdigit16(wc)
#ifdef wslen
#undef wslen
#endif
#define wslen(ws) sj3_wslen16(ws)
#ifdef wscmp
#undef wscmp
#endif
#define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2)
#ifdef wsncmp
#undef wsncmp
#endif
#define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n)
#ifdef wscpy
#undef wscpy
#endif
#define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2)
#ifdef wsncpy
#undef wsncpy
#endif
#define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n)
#ifdef wscat
#undef wscat
#endif
#define wscat(ws1, ws2) sj3_wscat16(ws1, ws2)
#ifdef mbstowcs
#undef mbstowcs
#endif
#define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n)
#ifdef wcstombs
#undef wcstombs
#endif
#define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n)
#endif
#define LC_CTYPE_SHIFTJIS 1
#define LC_CTYPE_EUC 2
#define IsEUCHojo(x) (((unsigned char) (x)) == SS3)
#define WcX0208MASK 0xffff
#define WcX0212MASK 0xff7f
#define WcJISMASK 0x7f7f
#define WcLowMASK 0x00ff
#define WcHighMASK 0xff00
#define WcASCIIFLAG 0x0000
#define WcX0208FLAG 0x8080
#define WcX0212FLAG 0x8000
#define WcX0201FLAG 0x0080
#define WcLowByte(w) ((w) & 0xff)
#define WcHighByte(w) (((w) >> 8) & 0xff)
#define WcIsASCII(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcASCIIFLAG)
#define WcIsX0208(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0208FLAG)
#define WcIsX0201(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0201FLAG)
#define WcIsX0212(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0212FLAG)
#define WcIsZENKAKU(w) ((((wchar16_t) (w)) & WcX0212FLAG) == WcX0212FLAG)
#define WcIsHANKAKU(w) ((((wchar16_t) (w)) & WcX0212FLAG) == WcASCIIFLAG)
#define WcIsKANJI(w) WcIsZENKAKU(w)
#define WcIsKANA(w) WcIsX0201(w)
#define WcSetX0212(c1, c2) ((((c1) & 0xff) << 8) + ((c2) & 0x7f))
#define WcJIS2X0208(w) ((w) | WcX0208FLAG)
#define WcJIS2X0212(w) ((w) | WcX0212FLAG)
#define Wc2JIS(w) ((w) & WcJISMASK)
#define WCSJrun WcMessages[0]
#define WCMode_buff WcMessages[1]
#define WCMode_unbuff WcMessages[2]
#define WCMode_Zhira WcMessages[3]
#define WCMode_Zkata WcMessages[4]
#define WCMode_Hkata WcMessages[5]
#define WCMode_Zalpha WcMessages[6]
#define WCMode_Halpha WcMessages[7]
#define WCGmode WcMessages[8]
#define WCGEtc WcMessages[9]
#define WCGetc WcMessages[10]
#define WCGHelp WcMessages[11]
#define WCMHelp WcMessages[12]
#define WCGCshift WcMessages[13]
#define WCGCeuc WcMessages[14]
#define WCGCeuc2 WcMessages[15]
#define WCGCjis WcMessages[16]
#define WCGCjis2 WcMessages[17]
#define WCGCkuten WcMessages[18]
#define WCGCkuten2 WcMessages[19]
#define WCGtoroku WcMessages[20]
#define WCMhani WcMessages[21]
#define WCMyomi WcMessages[22]
#define WCTOUROKU_OK WcMessages[23]
#define WCSYOUKYO_OK WcMessages[24]
#define WCTOUROKU_HIN WcMessages[25]
#define WCTOUROKU_SUCC WcMessages[26]
#define WCYomi WcMessages[27]
#define WCOne WcMessages[28]
#define WCY WcMessages[29]
#define WCExist WcMessages[30]
#define WCYomiTouroku WcMessages[31]
#define WCKanjiTouroku WcMessages[32]
#define WCOnajiTouroku WcMessages[33]
#define WCUserTouroku WcMessages[34]
#define WCJishoLock WcMessages[35]
#define WCSystemError WcMessages[36]
#define WCKanma WcMessages[37]
#define WCGsyoukyo WcMessages[38]
#define WCSYOUKYO_SUCC WcMessages[39]
#define WCNotExist WcMessages[40]
#define WCUserLock WcMessages[41]
#define WCYomiShokyo WcMessages[42]
#define WCKanjiShokyo WcMessages[43]
#define WCShokyoError WcMessages[44]
#define WCSUCCsjrc WcMessages[45]
#define WCFAILsjrc WcMessages[46]
#define WCNOTHsjrc WcMessages[47]
#define WCWeight_mes WcMessages[48]
#define WCGrcon WcMessages[49]
#define WCRserv WcMessages[50]
#define WCRserv_OK WcMessages[51]
#define WCDiscon WcMessages[52]
#define WCSpace WcMessages[53]
#define WCSpace2 WcMessages[54]
#define WCContinue WcMessages[55]
#define WCServer_Dead WcMessages[56]
#define WCConnected WcMessages[57]
#define WCNconnect WcMessages[58]
#define WCNopen_Mdic WcMessages[59]
#define WCNmake_Udir WcMessages[60]
#define WCNmake_Udic WcMessages[61]
#define WCNopen_Udic WcMessages[62]
#define WCNmake_Study WcMessages[63]
#define WCNopen_Study WcMessages[64]
#define WCGedit WcMessages[65]
#define WCTooLong WcMessages[67]
#define WCDollar WcMessages[68]
#define WCOn WcMessages[69]
#define WCOff WcMessages[70]
#define WCMeishi WcMessages[71]
#define WCMyouji WcMessages[72]
#define WCNamae WcMessages[73]
#define WCTimei WcMessages[74]
#define WCSahen WcMessages[75]
#define WCKara WcMessages[76]
#define WCF1 WcMessages[77]
#define WCF2 WcMessages[78]
#define WCF3 WcMessages[79]
#define WCF4 WcMessages[80]
#define WCF5 WcMessages[81]
#define WCF6 WcMessages[82]
#define WCF7 WcMessages[83]
#define WCF8 WcMessages[84]
#define WCF9 WcMessages[85]
#define WCF10 WcMessages[86]
#define WCF11 WcMessages[87]
#define WCF12 WcMessages[88]
#define WCF13 WcMessages[89]
#define WCF14 WcMessages[90]
#define WCF15 WcMessages[91]
#define WCF16 WcMessages[92]
#define WCF17 WcMessages[93]
#define WCF18 WcMessages[94]
#define WCF19 WcMessages[95]
#define WCF20 WcMessages[96]
#define WCSelect WcMessages[97]
#define WCKanji WcMessages[98]
#define WCCancel WcMessages[99]
#define WCExecute WcMessages[100]
#define WCUp WcMessages[101]
#define WCDown WcMessages[102]
#define WCRight WcMessages[103]
#define WCLeft WcMessages[104]
#define WCStart WcMessages[105]
#define WCHenkan WcMessages[106]
#define WCMuhen WcMessages[107]
#define WCKettei WcMessages[108]
#define WCHira WcMessages[109]
#define WCHalpha WcMessages[110]
#define WCZalpha WcMessages[111]
#define WCHkata WcMessages[112]
#define WCZkata WcMessages[113]
#define WCCode WcMessages[114]
#define WCEtc WcMessages[115]
#define WCRightl WcMessages[116]
#define WCLeftl WcMessages[117]
#define WCKaku WcMessages[118]
#define WCSyuku WcMessages[119]
#define WCEdit WcMessages[120]
#define WCToggle WcMessages[121]
#define WCWrapback WcMessages[122]
#define WCWrap WcMessages[123]
#define WCSjrc WcMessages[124]
#define WCBuffer WcMessages[125]
#define WCToroku WcMessages[126]
#define WCSyoukyo WcMessages[127]
#define WCHelp WcMessages[128]
#define WCHaKettei WcMessages[129]
#define WCFlush WcMessages[130]
#define WCDebug WcMessages[131]
#define WCCancell WcMessages[132]
#define WCSaihenkan WcMessages[133]
#define WCIgnore WcMessages[134]
#define WCTop WcMessages[135]
#define WCEnd WcMessages[136]
#define WCReconnect WcMessages[137]
#define WCKill WcMessages[138]
#define WCKey WcMessages[139]
#define WCEscape WcMessages[140]
#define WCSjxkey WcMessages[141]
#define WCEtckey WcMessages[142]
#define WCIntr WcMessages[143]
#define WCBskey WcMessages[144]
#define WCDelkey WcMessages[145]
#define WCSetnormal WcMessages[146]
#define WCThroughnext WcMessages[147]
#define WCInitialmode WcMessages[148]
#define WCHelpmode WcMessages[149]
#define WCDefaultcode WcMessages[150]
#define WCMuhenkanmode WcMessages[151]
#define WCMuhenkaninedit WcMessages[152]
#define WCMuhenkantoggle WcMessages[153]
#define WCGuide WcMessages[154]
#define WCForkshell WcMessages[155]
#define WCExecshell WcMessages[156]
#define WCDictionary WcMessages[157]
#define WCUserdic WcMessages[158]
#define WCMaindic WcMessages[159]
#define WCRomaji WcMessages[160]
#define WCBstudy WcMessages[161]
#define WCSilent WcMessages[162]
#define WCFlushafterconversion WcMessages[163]
#define WCRkerrbell WcMessages[164]
#define WCServer WcMessages[165]
#define WCShiftjis WcMessages[166]
#define WCSjis WcMessages[167]
#define WCEuc WcMessages[168]
#define WCEuc2 WcMessages[169]
#define WCJis WcMessages[170]
#define WCJis2 WcMessages[171]
#define WCKuten WcMessages[172]
#define WCKuten2 WcMessages[173]
#define WCBuff WcMessages[174]
#define WCUnbuff WcMessages[175]
#define WCDirect WcMessages[176]
#define WCSj2 WcMessages[177]
#define WCShift WcMessages[178]
#define WCFunction WcMessages[179]
#define WCUnbuffer WcMessages[180]
#define WCFuncetc WcMessages[181]
extern wchar16_t *WcMessages[];
struct wcvtkey {
wchar16_t *key_word;
wchar16_t key_seq[SEQLEN];
};
struct functbl {
wchar16_t *keyword;
int (*func)();
};
#endif