This commit is contained in:
Nishi 2026-06-19 01:49:53 +09:00
commit 73cb09624a
116 changed files with 19741 additions and 21522 deletions

24
.clang-format Normal file
View file

@ -0,0 +1,24 @@
---
UseTab: Always
TabWidth: 8
AlignConsecutiveAssignments:
Enabled: true
AlignConsecutiveDeclarations:
Enabled: true
AccessModifierOffset: -4
NamespaceIndentation: All
IndentWidth: 8
PointerAlignment: Left
ColumnLimit: 0
AllowShortIfStatementsOnASingleLine: Always
AllowShortBlocksOnASingleLine: Never
AllowShortFunctionsOnASingleLine: Empty
AllowShortLoopsOnASingleLine: true
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: true
SpaceBeforeParens: Never
AlignEscapedNewlines: DontAlign
SortIncludes: false
AllowShortEnumsOnASingleLine: false
#IndentPPDirectives: AfterHash

2
format.sh Executable file
View file

@ -0,0 +1,2 @@
#!/bin/sh
clang-format --verbose -i `find src lib include -name "*.c" -or -name "*.h"`

View file

@ -41,59 +41,59 @@
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10 * Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
*/ */
#define PASSWORDLEN 16 #define PASSWORDLEN 16
#define YOMIBUFSIZE 1024 #define YOMIBUFSIZE 1024
#define KANJIBUFSIZE 2048 #define KANJIBUFSIZE 2048
#define MINIDXLEN 512 #define MINIDXLEN 512
#define MINSEGLEN 512 #define MINSEGLEN 512
#define MINSEGNUM 1 #define MINSEGNUM 1
#define MINSTYNUM 512 #define MINSTYNUM 512
#define MAXSTYNUM 0x7fff #define MAXSTYNUM 0x7fff
#define MINCLSTEP 1 #define MINCLSTEP 1
#define MAXCLSTEP 256 #define MAXCLSTEP 256
#define MINCLLEN 512 #define MINCLLEN 512
#define MAXCLLEN 0x7fff #define MAXCLLEN 0x7fff
#define DEBUGOUTFILE NULL #define DEBUGOUTFILE NULL
#define DEBUGLEVEL 0 #define DEBUGLEVEL 0
#define FORKFLAG 1 #define FORKFLAG 1
#define MAXCLIENTNUM 512 #define MAXCLIENTNUM 512
#define LOGOUTFILE NULL #define LOGOUTFILE NULL
#define ERROROUTFILE "/dev/null" #define ERROROUTFILE "/dev/null"
#define ADDRESSFAMILY "unspec" #define ADDRESSFAMILY "unspec"
#define PORTNAME "sj3" #define PORTNAME "sj3"
#define LOCALHOST "localhost" #define LOCALHOST "localhost"
#define CHROOTFLAG 1 #define CHROOTFLAG 1
#define MAINDICTIONARY "sj3main.dic" #define MAINDICTIONARY "sj3main.dic"
#define USERDICTIONARY "private.dic" #define USERDICTIONARY "private.dic"
#define STUDYFILE "study.dat" #define STUDYFILE "study.dat"
/* /*
* Change the default Port number of sj3 for FreeBSD. * Change the default Port number of sj3 for FreeBSD.
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20 * Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20
*/ */
#define PORTNUMBER "3086" #define PORTNUMBER "3086"
#define DIRECTRYMODE 0755 #define DIRECTRYMODE 0755
#define DICTFILEMODE 0644 #define DICTFILEMODE 0644
#define MODE_MASK 0777 #define MODE_MASK 0777
#define DEFIDXLEN 2048 #define DEFIDXLEN 2048
#define DEFSEGLEN 2048 #define DEFSEGLEN 2048
#define DEFSEGNUM 256 #define DEFSEGNUM 256
#define DEFSTYNUM 2048 #define DEFSTYNUM 2048
#define DEFCLSTEP 1 #define DEFCLSTEP 1
#define DEFCLLEN 2048 #define DEFCLLEN 2048
#define NOTLOCKED -1 #define NOTLOCKED -1
#define ERROR -1 #define ERROR -1
#ifndef FALSE #ifndef FALSE
# define TRUE -1 #define TRUE -1
# define FALSE (!TRUE) #define FALSE (!TRUE)
#endif #endif
#endif /* CONST_H */ #endif /* CONST_H */

View file

@ -33,75 +33,67 @@
* $SonyDate: 1994/06/03 08:00:57 $ * $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 SJ3SERV_VERSION_NO 2 #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_CONNECT 1 #define SJ3_MAKEDICT 81
#define SJ3_DISCONNECT 2 #define SJ3_MAKESTDY 82
#define SJ3_MAKEDIR 83
#define SJ3_ACCESS 84
#define SJ3_OPENDICT 11 #define SJ3_GETDICT 91
#define SJ3_CLOSEDICT 12 #define SJ3_NEXTDICT 92
#define SJ3_PREVDICT 93
#define SJ3_OPENSTDY 21 #define SJ3_WHO 100
#define SJ3_CLOSESTDY 22 #define SJ3_QUIT 101
#define SJ3_STDYSIZE 23 #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_LOCK 31 #define SJ3_SETCVER 110
#define SJ3_UNLOCK 32 #define SJ3_PH2KNJ_EUC 111
#define SJ3_PH2KNJ 41 #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_CL2KNJ 51 #define SJ3_CLSTUDY_EUC 117
#define SJ3_NEXTCL 52
#define SJ3_PREVCL 53
#define SJ3_CL2KNJ_ALL 54
#define SJ3_CL2KNJ_CNT 55
#define SJ3_STUDY 61 #define SJ3_ADDDICT_EUC 118
#define SJ3_CLSTUDY 62 #define SJ3_DELDICT_EUC 119
#define SJ3_ADDDICT 71 #define SJ3_GETDICT_EUC 120
#define SJ3_DELDICT 72 #define SJ3_NEXTDICT_EUC 121
#define SJ3_PREVDICT_EUC 122
#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

View file

@ -33,75 +33,71 @@
* $SonyDate: 1994/06/03 08:00:58 $ * $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_InternalError -1 #define SJ3_TooLongParameter 21
#define SJ3_IllegalParameter 22
#define SJ3_NormalEnd 0 #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_ServerDown 1 #define SJ3_StdyAlreadyOpened 51
#define SJ3_OpenSocket 2 #define SJ3_StdyFileNotOpened 52
#define SJ3_ConnectSocket 3 #define SJ3_TooSmallStdyArea 53
#define SJ3_GetHostByName 4
#define SJ3_NotOpened 5
#define SJ3_NotEnoughMemory 6
#define SJ3_IllegalCommand 7
#define SJ3_DifferentVersion 11 #define SJ3_LockedByOther 61
#define SJ3_NoHostName 12 #define SJ3_NotLocked 62
#define SJ3_NoUserName 13
#define SJ3_NotAllowedUser 14
#define SJ3_AlreadyConnected 15
#define SJ3_NotConnected 16
#define SJ3_TooLongParameter 21 #define SJ3_NoSuchDict 71
#define SJ3_IllegalParameter 22 #define SJ3_ReadOnlyDict 72
#define SJ3_DictLocked 73
#define SJ3_BadYomiString 74
#define SJ3_BadKanjiString 75
#define SJ3_BadHinsiCode 76
#define SJ3_BadDictID 31 #define SJ3_AddDictFailed 81
#define SJ3_IllegalDictFile 32 #define SJ3_AlreadyExistWord 82
#define SJ3_IllegalStdyFile 33 #define SJ3_NoMoreDouonWord 83
#define SJ3_IncorrectPasswd 34 #define SJ3_NoMoreUserDict 84
#define SJ3_FileNotExist 35 #define SJ3_NoMoreIndexBlock 85
#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_DelDictFailed 91
#define SJ3_StdyFileNotOpened 52 #define SJ3_NoSuchWord 92
#define SJ3_TooSmallStdyArea 53
#define SJ3_LockedByOther 61 #define SJ3_DirAlreadyExist 101
#define SJ3_NotLocked 62 #define SJ3_CannotCreateDir 102
#define SJ3_NoSuchDict 71 #define SJ3_NoMoreDictData 111
#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_UserConnected 121
#define SJ3_AlreadyExistWord 82
#define SJ3_NoMoreDouonWord 83
#define SJ3_NoMoreUserDict 84
#define SJ3_NoMoreIndexBlock 85
#define SJ3_DelDictFailed 91 #define SJ3_TooLongPasswd 131
#define SJ3_NoSuchWord 92 #define SJ3_TooLongComment 132
#define SJ3_DirAlreadyExist 101 #define SJ3_CannotCodeConvert 133
#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

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

View file

@ -33,199 +33,186 @@
* $SonyDate: 1994/06/03 08:01:07 $ * $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
#ifndef _SJ_HINSHI #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 _SJ_HINSHI #define DO_SAHEN 80
#define DO_ZAHEN 81
#define MEISI_1 1 #define DO_1DAN_1 90
#define MEISI_2 2 #define DO_KAGO_1 91
#define MEISI_3 3 #define DO_GAGO_1 92
#define MEISI_4 4 #define DO_SAGO_1 93
#define MEISI_5 5 #define DO_TAGO_1 94
#define MEISI_6 6 #define DO_NAGO_1 95
#define MEISI_7 7 #define DO_BAGO_1 96
#define MEISI_8 8 #define DO_MAGO_1 97
#define MEISI_9 9 #define DO_RAGO_1 98
#define MEISI_10 10 #define DO_WAGO_1 99
#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 DO_1DAN_2 100
#define NAMAE 22 #define DO_KAGO_2 101
#define KIGYOU 23 #define DO_GAGO_2 102
#define TIMEI 24 #define DO_SAGO_2 103
#define KEN_KU 25 #define DO_TAGO_2 104
#define RENTAISI 26 #define DO_BAGO_2 105
#define SETUZOKU 27 #define DO_MAGO_2 106
#define KANDOUSI 28 #define DO_RAGO_2 107
#define JOSUUSI 29 #define DO_WAGO_2 108
#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 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 KEIYOUSI_1 60 #define DO_KAGO_6 121
#define KEIYOUSI_2 61 #define DO_GAGO_6 122
#define KEIYOUSI_3 62 #define DO_SAGO_6 123
#define KEIYOUSI_4 63 #define DO_TAGO_6 124
#define KEIYOUSI_5 64 #define DO_BAGO_6 125
#define KEIYOUSI_6 65 #define DO_MAGO_6 126
#define KEIYOUSI_7 66 #define DO_RAGO_6 127
#define KEIYOUSI_8 67 #define DO_WAGO_6 128
#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_1DAN_3 130
#define DO_ZAHEN 81 #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_1DAN_1 90 #define DO_KAGO_7 151
#define DO_KAGO_1 91 #define DO_GAGO_7 152
#define DO_GAGO_1 92 #define DO_SAGO_7 153
#define DO_SAGO_1 93 #define DO_TAGO_7 154
#define DO_TAGO_1 94 #define DO_BAGO_7 155
#define DO_NAGO_1 95 #define DO_MAGO_7 156
#define DO_BAGO_1 96 #define DO_RAGO_7 157
#define DO_MAGO_1 97 #define DO_WAGO_7 158
#define DO_RAGO_1 98
#define DO_WAGO_1 99
#define DO_1DAN_2 100 #define DO_KAGO_8 161
#define DO_KAGO_2 101 #define DO_GAGO_8 162
#define DO_GAGO_2 102 #define DO_SAGO_8 163
#define DO_SAGO_2 103 #define DO_TAGO_8 164
#define DO_TAGO_2 104 #define DO_BAGO_8 165
#define DO_BAGO_2 105 #define DO_MAGO_8 166
#define DO_MAGO_2 106 #define DO_RAGO_8 167
#define DO_RAGO_2 107 #define DO_WAGO_8 168
#define DO_WAGO_2 108
#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 DO_KAGO_5 111 #define TEINEI2 184
#define DO_GAGO_5 112 #define SP_KA_ONB 185
#define DO_SAGO_5 113 #define SP_FUKUSI 186
#define DO_TAGO_5 114 #define AISATU 187
#define DO_BAGO_5 115 #define SP_KEIYOUSI 188
#define DO_MAGO_5 116 #define TANKANJI 189
#define DO_RAGO_5 117
#define DO_WAGO_5 118
#define IKKATU 200
#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 #endif

View file

@ -18,16 +18,16 @@
#define SJ_STRING_H #define SJ_STRING_H
/* string.c */ /* string.c */
int sj3_str_sjistoeuc(unsigned char *, int, unsigned char *, unsigned char *, int *); 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_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_sjistoeuclen(unsigned char *, int); int sj3_sjistoeuclen(unsigned char*, int);
int sj3_sjistoeuc(unsigned char *s, int, unsigned char *, int); int sj3_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj3_euctosjis(unsigned char *s, int, unsigned char *, int); int sj3_euctosjis(unsigned char* s, int, unsigned char*, int);
void sj_euc2sjis(unsigned char *); void sj_euc2sjis(unsigned char*);
void sj_jis2sjis(unsigned char *); void sj_jis2sjis(unsigned char*);
void sj_sjis2euc(unsigned char *); void sj_sjis2euc(unsigned char*);
void sj_sjis2jis(unsigned char *); void sj_sjis2jis(unsigned char*);
unsigned short sj3_jis2sjis(unsigned short); unsigned short sj3_jis2sjis(unsigned short);
unsigned short sj3_jis2euc(unsigned short); unsigned short sj3_jis2euc(unsigned short);
unsigned short sj3_sjis2jis(unsigned short); unsigned short sj3_sjis2jis(unsigned short);

View file

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

@ -37,122 +37,121 @@
#define STRUCT_H #define STRUCT_H
typedef struct global { typedef struct global {
JREC *Jmaxjptr; JREC* Jmaxjptr;
CLREC *Jmaxclptr; CLREC* Jmaxclptr;
JREC *Jjrt1st; JREC* Jjrt1st;
CLREC *Jclt1st; CLREC* Jclt1st;
JREC *Jjrt2nd; JREC* Jjrt2nd;
CLREC *Jclt2nd; CLREC* Jclt2nd;
CLREC *Jselcl; CLREC* Jselcl;
short Jselectid; short Jselectid;
short Jtrank; short Jtrank;
short Jnrank; short Jnrank;
u_char *Jinputyomi; u_char* Jinputyomi;
u_char *Jcnvstart; u_char* Jcnvstart;
short Jcnvlen; short Jcnvlen;
u_char *Jystart; u_char* Jystart;
u_char Jhyomi[MAXPHINPUTLEN + 1]; u_char Jhyomi[MAXPHINPUTLEN + 1];
u_char Jorgyomi[MAXCLINPUTLEN*2 + 1]; u_char Jorgyomi[MAXCLINPUTLEN * 2 + 1];
u_char Jkanjibuf[MINPHOUTPUTLEN]; u_char Jkanjibuf[MINPHOUTPUTLEN];
u_char *Jkanjipos; u_char* Jkanjipos;
u_char *Jkanjitmp; u_char* Jkanjitmp;
short Jkanjilen; short Jkanjilen;
u_char Jdicinl; u_char Jdicinl;
u_char Jdicsaml; u_char Jdicsaml;
TypeDicSeg Jprevseg; TypeDicSeg Jprevseg;
u_char Jfzkcount; u_char Jfzkcount;
u_char Jfzk_ka_flg; u_char Jfzk_ka_flg;
FREC Jfzktbl[MAXFREC]; FREC Jfzktbl[MAXFREC];
u_char Jheadcode; u_char Jheadcode;
u_char Jheadlen; u_char Jheadlen;
u_char Jgobilen; u_char Jgobilen;
TypeGram Jprevclgrm; TypeGram Jprevclgrm;
TypeCnct Jprevclrow; TypeCnct Jprevclrow;
u_char Jnextcllen; u_char Jnextcllen;
short Jkhcount; short Jkhcount;
short Jnkhcount; short Jnkhcount;
KHREC Jkouhotbl[MAXKOUHONUMBER]; KHREC Jkouhotbl[MAXKOUHONUMBER];
STDYIN *Jstdytop; STDYIN* Jstdytop;
DICT *Jcurdict; DICT* Jcurdict;
DICTL *Jdictlist; DICTL* Jdictlist;
u_char *Jdicbuf; u_char* Jdicbuf;
u_char *Jidxbuf; u_char* Jidxbuf;
TypeIdxOfs *Jidxofs; TypeIdxOfs* Jidxofs;
u_char *Jaskknj[MAXKNJASKNUMBER]; u_char* Jaskknj[MAXKNJASKNUMBER];
u_char *Jaskknj_k[MAXKNJASKNUMBER]; u_char* Jaskknj_k[MAXKNJASKNUMBER];
STDY *Jcurstdy; STDY* Jcurstdy;
u_short Jsuuji_wbuf[NUMWORDBUF]; u_short Jsuuji_wbuf[NUMWORDBUF];
u_char Jsuuji_ubuf[NUMKETALENGTH]; u_char Jsuuji_ubuf[NUMKETALENGTH];
TypeClass Jsuuji_class; TypeClass Jsuuji_class;
u_char Jsuuji_comma; u_char Jsuuji_comma;
u_char Jsuuji_keta; u_char Jsuuji_keta;
u_char *Jsuuji_yptr; u_char* Jsuuji_yptr;
u_char Jsuuji_len; u_char Jsuuji_len;
u_char Jsuuji_exit; u_char Jsuuji_exit;
u_short *Jsuuji_wkeep; u_short* Jsuuji_wkeep;
u_char *Jsuuji_ukeep; u_char* Jsuuji_ukeep;
u_char Jpeepyomi[MAXWDYOMILEN * 2 + 1]; u_char Jpeepyomi[MAXWDYOMILEN * 2 + 1];
u_char Jpeepknj[MAXWDKANJILEN + 1]; u_char Jpeepknj[MAXWDKANJILEN + 1];
TypeGram Jpeepgrm; TypeGram Jpeepgrm;
u_char *Jpeepdptr; u_char* Jpeepdptr;
u_char *Jpeephptr; u_char* Jpeephptr;
u_char *Jpeepkptr; u_char* Jpeepkptr;
TypeDicSeg Jpeepidx; TypeDicSeg Jpeepidx;
} Global; } Global;
typedef struct dictfile {
typedef struct dictfile { DICT dict;
DICT dict; int refcnt;
int refcnt;
#ifdef SJ3_LOCK #ifdef SJ3_LOCK
fd_set lock; fd_set lock;
#endif #endif
FILE *fp; FILE* fp;
int fd; int fd;
u_char *buffer; u_char* buffer;
long bufsiz; long bufsiz;
long idxstrt; long idxstrt;
long segstrt; long segstrt;
TypeIdxOfs *ofsptr; TypeIdxOfs* ofsptr;
struct dictfile *link; struct dictfile* link;
} DictFile; } DictFile;
typedef struct stdyfile { typedef struct stdyfile {
STDY stdy; STDY stdy;
int refcnt; int refcnt;
ino_t inode; ino_t inode;
FILE *fp; FILE* fp;
int fd; int fd;
u_char *header; u_char* header;
struct stdyfile *link; struct stdyfile* link;
} StdyFile; } StdyFile;
typedef struct workarea { typedef struct workarea {
int refcnt; int refcnt;
int lock; int lock;
struct workarea *link; struct workarea* link;
Global global; Global global;
} WorkArea; } WorkArea;
#endif #endif

View file

@ -36,34 +36,26 @@
#ifndef SJ3LOWLIB_H #ifndef SJ3LOWLIB_H
#define SJ3LOWLIB_H #define SJ3LOWLIB_H
typedef struct sj3_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
typedef struct sj3_client_env { short svr_version;
int fd; short cli_version;
int serv_dead_flg; char default_char[2];
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ3_CLIENT_ENV; } SJ3_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH
#define SJ3_NAME_LENGTH 128
#ifndef SJ3_NAME_LENGTH
# define SJ3_NAME_LENGTH 128
#endif #endif
typedef struct sj3_who_struct { typedef struct sj3_who_struct {
int fd; int fd;
char hostname[SJ3_NAME_LENGTH]; char hostname[SJ3_NAME_LENGTH];
char username[SJ3_NAME_LENGTH]; char username[SJ3_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH]; char progname[SJ3_NAME_LENGTH];
} SJ3_WHO_STRUCT; } SJ3_WHO_STRUCT;
#define MBCODE_SJIS 1 #define MBCODE_SJIS 1
#define MBCODE_EUC 2 #define MBCODE_EUC 2
#endif /* SJ3LOWLIB_H */ #endif /* SJ3LOWLIB_H */

View file

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

View file

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

View file

@ -33,66 +33,56 @@
* $SonyDate: 1994/06/03 08:01:03 $ * $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
#ifndef _SJ_DICT #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 _SJ_DICT #define MAXKNJASKNUMBER 16
#define MAXYOMIASKNUMBER 16
#define MAXWDYOMILEN 31
#define MAXWDKANJILEN 64
#define ASSYUKUYOMITOP 0x80
#define NOKORIYOMITOP 0x40
#define DIC_MAIN 0 #define getsize(p) (((int)(*(p) & 0x0f) * 0x100) + *((p) + 1))
#define DIC_USER 1
#define DICSEGBASE 0 #define getntag(p) ((*(p) == DICSEGTERM) ? (p) : (p) + getsize(p))
#define MAXDOUONBLK 0xfff
#define DOUONBLKSIZENUMBER 3
#define DICSEGTERM 0xff
#define DOUONBLKTERM 0xff
#define HINSIBLKTERM 0xff
#define MAXSEGMENTNUMBER 0xffff
#define getplen(p) (((*(p) & ASSYUKUYOMITOP) ? 0x10 : 0) + (*((p) + 2) >> 4))
#define getnlen(p) (((*(p) & NOKORIYOMITOP) ? 0x10 : 0) + (*((p) + 2) & 0x0f))
#define NORMALKANJIMASK 0x7f #define segtop() (dicbuf + *dicbuf + 1)
#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 segend(p) (*(p) == DICSEGTERM || (p) >= dicbuf + curdict->seglen)
#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 #endif

View file

@ -36,9 +36,9 @@
#ifndef SJ_GLOBAL_H #ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H #define SJ_GLOBAL_H
extern Global *global_work_base; extern Global* global_work_base;
extern Global *work_base; extern Global* work_base;
extern STDY *stdy_base; extern STDY* stdy_base;
extern int serv_errno; extern int serv_errno;
#endif #endif

View file

@ -39,23 +39,23 @@
*/ */
/* adddic.c */ /* adddic.c */
u_int adddic(u_char *, u_char *, TypeGram); u_int adddic(u_char*, u_char*, TypeGram);
/* addelcmn.c */ /* addelcmn.c */
void set_size(u_char *, int, int, int); void set_size(u_char*, int, int, int);
u_int addel_arg(u_char *, u_char *, TypeGram, u_char *, int); u_int addel_arg(u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(u_char *, u_char *, u_char *); int cvtknj(u_char*, u_char*, u_char*);
int srchkana(u_char **, int *); int srchkana(u_char**, int*);
int srchgram(u_char *, u_char **, TypeGram); int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char **, u_char *, int); int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(void); TypeIdxOfs count_uidx(void);
void chg_uidx(TypeDicSeg, u_char *, int); void chg_uidx(TypeDicSeg, u_char*, int);
/* alloc.c */ /* alloc.c */
JREC *alloc_jrec(void); JREC* alloc_jrec(void);
void free_jrec(JREC *); void free_jrec(JREC*);
CLREC *alloc_clrec(void); CLREC* alloc_clrec(void);
void free_clrec(CLREC *); void free_clrec(CLREC*);
/* charsize.c */ /* charsize.c */
int codesize(u_char); int codesize(u_char);
@ -64,152 +64,152 @@ int codesize(u_char);
extern u_char chrtbl[256]; extern u_char chrtbl[256];
/* cl2knj.c */ /* cl2knj.c */
int cl2knj(u_char *, int, u_char *); int cl2knj(u_char*, int, u_char*);
int nextcl(u_char *, int); int nextcl(u_char*, int);
int prevcl(u_char *, int); int prevcl(u_char*, int);
int selectnum(void); int selectnum(void);
/* clstudy.c */ /* clstudy.c */
int clstudy(u_char *, u_char *, STDYOUT *); int clstudy(u_char*, u_char*, STDYOUT*);
void delclsub(u_char *); void delclsub(u_char*);
void mkclidx(void); void mkclidx(void);
/* cmpstr.c */ /* cmpstr.c */
int cmpstr(u_char *, u_char *); int cmpstr(u_char*, u_char*);
/* conjunc.c */ /* conjunc.c */
extern u_char *conjadr[]; extern u_char* conjadr[];
/* connect.c */ /* connect.c */
extern u_char connadr[]; extern u_char connadr[];
extern u_char *rigtadr[]; extern u_char* rigtadr[];
/* cvtclknj.c */ /* cvtclknj.c */
void cvtclknj(void); void cvtclknj(void);
/* cvtdict.c */ /* cvtdict.c */
void cvtdict(KHREC *, CLREC *, int); void cvtdict(KHREC*, CLREC*, int);
void cvtminasi(int); void cvtminasi(int);
void cvtwakachi(CLREC *); void cvtwakachi(CLREC*);
/* cvtkanji.c */ /* cvtkanji.c */
void cvtphknj(void); void cvtphknj(void);
void cvtkouho(KHREC *); void cvtkouho(KHREC*);
void setstyrec(KHREC *); void setstyrec(KHREC*);
/* deldic.c */ /* deldic.c */
u_int deldic(u_char *, u_char *, TypeGram); u_int deldic(u_char*, u_char*, TypeGram);
/* dict.c */ /* dict.c */
void get_askknj(void); void get_askknj(void);
int seldict(TypeDicID); int seldict(TypeDicID);
u_char *get_idxptr(TypeDicSeg); u_char* get_idxptr(TypeDicSeg);
/* functbl.c */ /* functbl.c */
extern VFunc cvtnum_func[]; extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[]; extern UCPFunc getkan_func[];
extern IFunc setjrec_func[]; extern IFunc setjrec_func[];
extern IFunc hiraknj_func[]; extern IFunc hiraknj_func[];
/* fuzoku.c */ /* fuzoku.c */
void setclrec(JREC *, u_char *, TypeCnct); void setclrec(JREC*, u_char*, TypeCnct);
RECURS void srchfzk(JREC *, u_char *, TypeCnct, int); RECURS void srchfzk(JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */ /* fzkyomi.c */
extern u_char *fzkadr[]; extern u_char* fzkadr[];
/* getkanji.c */ /* getkanji.c */
u_char *getkan_none(u_char *, u_char *, u_char *, int, int); u_char* getkan_none(u_char*, u_char*, u_char*, int, int);
u_char *getkan_hira(u_char *, u_char *, u_char *, int, int); u_char* getkan_hira(u_char*, u_char*, u_char*, int, int);
u_char *getkan_kata(u_char *, u_char *, u_char *, int, int); u_char* getkan_kata(u_char*, u_char*, u_char*, int, int);
u_char *getkan_knj(u_char *, u_char *, u_char *, int, int); u_char* getkan_knj(u_char*, u_char*, u_char*, int, int);
u_char *getkan_ofs(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_norm(u_char*, u_char*, u_char*, int, int);
u_char *getkan_ascii(u_char *, u_char *, u_char *, int, int); u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(u_char *, int, u_char *, u_char *); int getkanji(u_char*, int, u_char*, u_char*);
/* getrank.c */ /* getrank.c */
void getrank(void); void getrank(void);
/* hzstrlen.c */ /* hzstrlen.c */
int euc_codesize(u_char c); int euc_codesize(u_char c);
int hzstrlen(u_char *, int); int hzstrlen(u_char*, int);
/* init.c */ /* init.c */
void seg_count(DICT *); void seg_count(DICT*);
void mkidxtbl(DICT *); void mkidxtbl(DICT*);
void initwork(void); void initwork(void);
/* istrcmp.c */ /* istrcmp.c */
int istrcmp(u_char *, u_char *, int, int); int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */ /* memcpy.c */
void sstrncpy(u_char *, u_char *, int); void sstrncpy(u_char*, u_char*, int);
/* memory.c */ /* memory.c */
JREC *free_jlst(JREC *); JREC* free_jlst(JREC*);
CLREC *free_clst(CLREC *, int); CLREC* free_clst(CLREC*, int);
void free_clall(CLREC *); void free_clall(CLREC*);
void free_jall(JREC *); void free_jall(JREC*);
void freework(void); void freework(void);
/* mk2claus.c */ /* mk2claus.c */
void mk2claus(void); void mk2claus(void);
/* mkbunset.c */ /* mkbunset.c */
void mkbunsetu(void); void mkbunsetu(void);
CLREC *argclrec(int); CLREC* argclrec(int);
/* mkjiritu.c */ /* mkjiritu.c */
void mkjiritu(int); void mkjiritu(int);
JREC *argjrec(int, JREC *); JREC* argjrec(int, JREC*);
/* mkkouho.c */ /* mkkouho.c */
void mkkouho(void); void mkkouho(void);
u_char *makekan_none(u_char *, u_char *, int); u_char* makekan_none(u_char*, u_char*, int);
u_char *makekan_1byte(u_char *, u_char *, int); u_char* makekan_1byte(u_char*, u_char*, int);
u_char *makekan_knj(u_char *, u_char *, int); u_char* makekan_knj(u_char*, u_char*, int);
u_char *makekan_ofs(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_norm(u_char*, u_char*, int);
u_char *makekan_ascii(u_char *, u_char *, int); u_char* makekan_ascii(u_char*, u_char*, int);
int sel_sjmode(JREC *); int sel_sjmode(JREC*);
/* mknumber.c */ /* mknumber.c */
void num_type00(u_char *, u_char *, JREC *); void num_type00(u_char*, u_char*, JREC*);
void num_type01(u_char *, u_char *, JREC *); void num_type01(u_char*, u_char*, JREC*);
void num_type02(u_char *, u_char *, JREC *); void num_type02(u_char*, u_char*, JREC*);
void num_type03(u_char *, u_char *, JREC *); void num_type03(u_char*, u_char*, JREC*);
void num_type04(u_char *, u_char *, JREC *); void num_type04(u_char*, u_char*, JREC*);
void num_type05(u_char *, u_char *, JREC *); void num_type05(u_char*, u_char*, JREC*);
void num_type06(u_char *, u_char *, JREC *); void num_type06(u_char*, u_char*, JREC*);
void num_type07(u_char *, u_char *, JREC *); void num_type07(u_char*, u_char*, JREC*);
void num_type08(u_char *, u_char *, JREC *); void num_type08(u_char*, u_char*, JREC*);
void num_type09(u_char *, u_char *, JREC *); void num_type09(u_char*, u_char*, JREC*);
void num_type10(u_char *, u_char *, JREC *); void num_type10(u_char*, u_char*, JREC*);
void num_type11(u_char *, u_char *, JREC *); void num_type11(u_char*, u_char*, JREC*);
void num_type12(u_char *, u_char *, JREC *); void num_type12(u_char*, u_char*, JREC*);
void num_type13(u_char *, u_char *, JREC *); void num_type13(u_char*, u_char*, JREC*);
void num_type14(u_char *, u_char *, JREC *); void num_type14(u_char*, u_char*, JREC*);
/* mvmemd.c */ /* mvmemd.c */
void mvmemd(u_char *, u_char *, int); void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */ /* mvmemi.c */
void mvmemi(u_char *, u_char *, int); void mvmemi(u_char*, u_char*, int);
/* peepdic.c */ /* peepdic.c */
int getusr(u_char *); int getusr(u_char*);
int nextusr(u_char *); int nextusr(u_char*);
int prevusr(u_char *); int prevusr(u_char*);
/* ph2knj.c */ /* ph2knj.c */
int ph2knj(u_char *, u_char *, int); int ph2knj(u_char*, u_char*, int);
/* ph_khtbl.c */ /* ph_khtbl.c */
int ph_khtbl(CLREC *); int ph_khtbl(CLREC*);
/* priority.c */ /* priority.c */
int priority(CLREC *); int priority(CLREC*);
void pritiny(void); void pritiny(void);
/* prtytbl.c */ /* prtytbl.c */
@ -220,72 +220,72 @@ extern u_char sttpri[5][31];
extern u_char kigou[]; extern u_char kigou[];
/* sdepend.c */ /* sdepend.c */
DictFile *opendict(char *, char *); DictFile* opendict(char*, char*);
int closedict(DictFile *); int closedict(DictFile*);
void lock_dict(DictFile *, int); void lock_dict(DictFile*, int);
void unlock_dict(DictFile *, int); void unlock_dict(DictFile*, int);
int is_dict_locked(DictFile *); int is_dict_locked(DictFile*);
StdyFile *openstdy(char *, char *); StdyFile* openstdy(char*, char*);
int closestdy(StdyFile *); int closestdy(StdyFile*);
int putstydic(void); int putstydic(void);
int putcldic(void); int putcldic(void);
int makedict(char *, int, int, int); int makedict(char*, int, int, int);
int makestdy(char *, int, int, int); int makestdy(char*, int, int, int);
void sj_closeall(void); void sj_closeall(void);
int set_dictpass(DictFile *, char *); int set_dictpass(DictFile*, char*);
int set_stdypass(char *); int set_stdypass(char*);
int set_dictcmnt(DictFile *, char *); int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(char *); int set_stdycmnt(char*);
int get_stdysize(int *, int *, int *); int get_stdysize(int*, int*, int*);
/* selclrec.c */ /* selclrec.c */
void selclrec(void); void selclrec(void);
/* selsuuji.c */ /* selsuuji.c */
extern u_short *selsjadrs[]; extern u_short* selsjadrs[];
/* setconj.c */ /* setconj.c */
int setconj(TypeGram, JREC *, CREC *); int setconj(TypeGram, JREC*, CREC*);
/* setjrec.c */ /* setjrec.c */
int setj_atrb(u_char *); int setj_atrb(u_char*);
int setj_ofs(u_char *); int setj_ofs(u_char*);
int setj_knj(u_char *); int setj_knj(u_char*);
int setj_norm1(u_char *); int setj_norm1(u_char*);
int setj_norm2(u_char *); int setj_norm2(u_char*);
int setj_norm3(u_char *); /* unused??? */ int setj_norm3(u_char*); /* unused??? */
void setjrec(u_char *, int); void setjrec(u_char*, int);
void setnumrec(u_char *, JREC *, TypeGram); void setnumrec(u_char*, JREC*, TypeGram);
void setcrec(u_char *); void setcrec(u_char*);
/* setkouho.c */ /* setkouho.c */
void setkouho(CLREC *, TypeDicOfs, int); void setkouho(CLREC*, TypeDicOfs, int);
void ph_setkouho(CLREC *, TypeDicOfs, STDYIN *); void ph_setkouho(CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(u_char *, int *); int hiraknj_atrb(u_char*, int*);
int hiraknj_ofs(u_char *, int *); int hiraknj_ofs(u_char*, int*);
int hiraknj_knj(u_char *, int *); int hiraknj_knj(u_char*, int*);
int hiraknj_hask(u_char *, int *); int hiraknj_hask(u_char*, int*);
int hiraknj_kask(u_char *, int *); int hiraknj_kask(u_char*, int*);
int hiraknj_norm(u_char *, int *); int hiraknj_norm(u_char*, int*);
int hiraknj_hira(u_char *, int *); int hiraknj_hira(u_char*, int*);
/* setubi.c */ /* setubi.c */
u_char *getstb(TypeGram); u_char* getstb(TypeGram);
void setubi(JREC *, u_char *); void setubi(JREC*, u_char*);
/* sj2code.c */ /* sj2code.c */
int sj2cd_chr(u_char *, u_char *); int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char *, u_char *, int); int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */ /* skiphblk.c */
u_char *skiphblk(u_char *); u_char* skiphblk(u_char*);
/* skipkstr.c */ /* skipkstr.c */
u_char *skipkstr(u_char *); u_char* skipkstr(u_char*);
/* srchdict.c */ /* srchdict.c */
int yomicmp(u_char *, u_char *, u_char *); int yomicmp(u_char*, u_char*, u_char*);
u_char *srchdict(u_char *); u_char* srchdict(u_char*);
/* srchhead.c */ /* srchhead.c */
int srchhead(void); int srchhead(void);
@ -295,28 +295,28 @@ TypeDicSeg srchidx(TypeDicSeg, int);
/* srchnum.c*/ /* srchnum.c*/
void srchnum(void); void srchnum(void);
void setwdnum(u_char *, int, u_short *); void setwdnum(u_char*, int, u_short*);
int setucnum(u_char *, int, u_char *); int setucnum(u_char*, int, u_char*);
/* sstrcmp.c */ /* sstrcmp.c */
int sstrcmp(u_char *, u_char *); int sstrcmp(u_char*, u_char*);
/* sstrlen.c */ /* sstrlen.c */
int sstrlen(u_char *); int sstrlen(u_char*);
/* sstrncmp.c */ /* sstrncmp.c */
int sstrncmp(u_char *, u_char *dst, int); int sstrncmp(u_char*, u_char* dst, int);
/* stbtbl.c */ /* stbtbl.c */
extern u_char *stbadr[]; extern u_char* stbadr[];
/* stttbl.c */ /* stttbl.c */
extern u_char *settou_ptr[]; extern u_char* settou_ptr[];
extern u_char scncttbl[2][24]; extern u_char scncttbl[2][24];
/* study.c */ /* study.c */
int study(STDYOUT *); int study(STDYOUT*);
STDYIN *srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID); STDYIN* srchstdy(TypeDicSeg, TypeDicOfs, TypeDicID);
/* suujitbl.c */ /* suujitbl.c */
extern u_char suuji_tbl[]; extern u_char suuji_tbl[];
@ -330,7 +330,7 @@ extern u_char num5tbl[];
extern u_char num6tbl[]; extern u_char num6tbl[];
/* terminat.c */ /* terminat.c */
int terminate(TypeCnct, u_char *); int terminate(TypeCnct, u_char*);
/* termtbl.c */ /* termtbl.c */
extern u_char termtbl[]; extern u_char termtbl[];
@ -338,6 +338,4 @@ extern u_char termtbl[];
/* wakachi.c */ /* wakachi.c */
void wakachi(void); void wakachi(void);
#endif /* KANAKAN_H */ #endif /* KANAKAN_H */

View file

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

View file

@ -33,49 +33,42 @@
* $SonyDate: 1994/06/03 08:01:13 $ * $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
#ifndef _SJ_PRIORITY #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 _SJ_PRIORITY #define P_SETTOU 6
#define P_SETUBI 6
#define P_SUUSI 4
#define P_FUKUSI 13
#define P_F_FUKUSI 10
#define RENTAI 0x10 #define P_RENTAISI 10
#define GETPRI 0x0f #define P_KANDOU 6
#define P_SETUZOKU 14
#define P_FUKA 1 #define P_FZKKGU 9
#define P_TANKAN 1 #define P_JOSUUSI 10
#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 #endif

View file

@ -33,529 +33,400 @@
* $SonyDate: 1994/06/03 08:01:14 $ * $SonyDate: 1994/06/03 08:01:14 $
*/ */
#ifndef _SJ_RENAME
#define _SJ_RENAME
#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
#ifndef _SJ_RENAME #define wakachi Jwakachi
#define _SJ_RENAME #define cmpstr Jcmpstr
#define adddic Jadddic #define hzstrlen Jhzstrlen
#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 istrcmp Jistrcmp
#define mvmemd Jmvmemd
#define set_size Jset_size #define mvmemi Jmvmemi
#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 skiphblk Jskiphblk
#define skipkstr Jskipkstr
#define cl2knj Jcl2knj #define sstrcmp Jsstrcmp
#define nextcl Jnextcl
#define nextrecblk Jnextrecblk
#define prevcl Jprevcl
#define prevrecblk Jprevrecblk
#define initkbuf Jinitkbuf
#define selectnum Jselectnum
#define kouhonum Jkouhonum
#define sstrlen Jsstrlen
#define sstrncmp Jsstrncmp
#define clstudy Jclstudy #define charsize Jcharsize
#define delcldata Jdelcldata
#define delclsub Jdelclsub
#define delclold Jdelclold
#define srchclpos Jsrchclpos
#define mkclidx Jmkclidx
#define chrtbl Jchrtbl
#define conjadr Jconjadr
#define cvtclknj Jcvtclknj #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 cvtdict Jcvtdict #define taipri Jtaipri
#define cvtminasi Jcvtminasi #define sttpri Jsttpri
#define cvtwakachi Jcvtwakachi
#define kigou Jkigou
#define selsjadrs Jselsjadrs
#define cvtphknj Jcvtphknj #define stbadr Jstbadr
#define cvtkouho Jcvtkouho
#define setstyrec Jsetstyrec
#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 deldic Jdeldic #define termtbl Jtermtbl
#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 #endif

View file

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

View file

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

View file

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

View file

@ -33,105 +33,90 @@
* $SonyDate: 1994/06/03 08:01:19 $ * $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)
#ifndef _SJ_SUUJI #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 _SJ_SUUJI #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 SJTBLRECLEN 6 #define SELKANSJ 4
#define SJTBLRECNUM 34 #define SELKANSJ2 7
#define SjTblYPos(p) (p) #define SELKANSJCMA 6
#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 SELNUM0123 (JFLAG_N01 | JFLAG_N23)
#define KR1TBLRECNUM 10 #define SELNUM1_23_10_1 (JFLAG_N_1 | JFLAG_N23 | JFLAG_N10 | JFLAG_NS1)
#define Kr1TblYPos(p) (p) #define SELNUMMUST (JFLAG_NK2 | JFLAG_NK4 | JFLAG_NN0 | JFLAG_NSN)
#define KR1TBLYLEN 3 #define SELNUMALL (JFLAG_N10 | JFLAG_N_1 | JFLAG_NS1 | JFLAG_N01 | JFLAG_N23 | JFLAG_NK2 | JFLAG_NK4 | JFLAG_NN0 | JFLAG_NSN)
#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 SelNumFunc(c) ((c) & (~SELNUMALL))
#define KR2TBLRECNUM 3 #define SelNumCond(c) ((c) & SELNUMALL)
#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 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 _NUM1 0x02 #define NUMBER0 (1 << _NUM0)
#define _NUM2 0x03 #define NUMBER1 ((1 << _NUM1) | (1 << _NUM1S))
#define _NUM3 0x04 #define NUMBERS1 (1 << _NUM1S)
#define _NUM4 0x05 #define NUMBER01 (NUMBER0 | NUMBER1)
#define _NUM5 0x06 #define NUMBER23 ((1 << _NUM2) | (1 << _NUM3))
#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 #endif

View file

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

View file

@ -33,35 +33,32 @@
* $SonyDate: 1994/06/03 08:01:22 $ * $SonyDate: 1994/06/03 08:01:22 $
*/ */
#ifndef _SJ_TYPEDEF #ifndef _SJ_TYPEDEF
#define _SJ_TYPEDEF #define _SJ_TYPEDEF
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#define RECURS
#define RECURS typedef unsigned char u_char;
typedef unsigned char u_char;
typedef unsigned short u_short; typedef unsigned short u_short;
typedef unsigned int u_int; typedef unsigned int u_int;
typedef void (*VFunc)();
typedef u_char* (*UCPFunc)();
typedef int (*IFunc)();
typedef void (*VFunc)(); typedef u_char TypeGroup;
typedef u_char *(*UCPFunc)(); typedef u_char TypeGram;
typedef int (*IFunc)(); typedef u_short TypeIdxOfs;
typedef short TypeDicSeg;
typedef u_char TypeGroup; typedef u_short TypeDicOfs;
typedef u_char TypeGram; typedef ino_t TypeDicID;
typedef u_short TypeIdxOfs; typedef u_char TypeCnct;
typedef short TypeDicSeg; typedef short TypeStyNum;
typedef u_short TypeDicOfs; typedef u_char TypeClass;
typedef ino_t TypeDicID; typedef u_char TypeBunNum;
typedef u_char TypeCnct;
typedef short TypeStyNum;
typedef u_char TypeClass;
typedef u_char TypeBunNum;
#endif #endif

View file

@ -33,15 +33,15 @@
* $SonyDate: 1994/06/03 08:01:23 $ * $SonyDate: 1994/06/03 08:01:23 $
*/ */
#ifndef _SJ_VAR #ifndef _SJ_VAR
#define _SJ_VAR #define _SJ_VAR
#define MAXKOUHONUMBER 255 #define MAXKOUHONUMBER 255
#define MAXPHINPUTLEN 256 #define MAXPHINPUTLEN 256
#define MAXCLINPUTLEN 64 #define MAXCLINPUTLEN 64
#define MINCLOUTPUTLEN 512 #define MINCLOUTPUTLEN 512
#define MINPHOUTPUTLEN 288 #define MINPHOUTPUTLEN 288
#endif #endif

View file

@ -33,185 +33,181 @@
* $SonyDate: 1994/06/03 08:01:24 $ * $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
#ifndef _SJ_YOMICODE #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 _SJ_YOMICODE #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 _TYOUON 0x01 #define _XA 0x4E
#define _IGETA 0x02 #define _A 0x4F
#define _ATTO 0x03 #define _XI 0x50
#define _YUUBIN 0x04 #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 N_0 0x10 #define Y_KUTEN 0xF2
#define N_1 0x11 #define Y_TOUTEN 0xF3
#define N_2 0x12 #define Y_COMMA 0xF4
#define N_3 0x13 #define Y_PERIOD 0xF5
#define N_4 0x14 #define Y_QUOTA 0xF6
#define N_5 0x15 #define Y_BIKKURI 0xF7
#define N_6 0x16 #define Y_S_KIGOU1 0xF8
#define N_7 0x17 #define Y_S_KIGOU2 0xF9
#define N_8 0x18 #define Y_L_KAKKO 0xFA
#define N_9 0x19 #define Y_R_KAKKO 0xFB
#define Y_KIGOU 0xFC
#define Y_HANKAKU 0xFD
#define Y_ZENKAKU 0xFE
#define A_A 0x1A #define _NIL 0
#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 #endif

View file

@ -33,60 +33,55 @@
* $SonyDate: 1994/06/03 08:03:45 $ * $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 ZKATA1 0xa5 #define KANA_KTEN 0xa1
#define ZHIRA1 0xa4 #define KANA_FKAKKO 0xa2
#define ZKATAF2 0xa1 #define KANA_EKAKKO 0xa3
#define ZKATAE2 0xf6 #define KANA_TTEN 0xa4
#define ZHIRAF2 0xa1 #define KANA_CTEN 0xa5
#define ZHIRAE2 0xf3 #define KANA_CHOUON 0xb0
#define ZKATAMU 0xe0 #define KANA_DTEN 0xde
#define ZHIRAMU 0xe0 #define KANA_HDTEN 0xdf
#define ZKATAn (ZKATAE2-ZKATAF2+1) #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 ZEN_SPACE 0xa1a1 #define KANA_ZA (KANA_SA << 8) + KANA_DTEN
#define ZEN_KTEN 0xa1a3 #define KANA_DA (KANA_TA << 8) + KANA_DTEN
#define ZEN_FKAKKO 0xa1d6 #define KANA_BA (KANA_HA << 8) + KANA_DTEN
#define ZEN_EKAKKO 0xa1d7 #define KANA_PA (KANA_HA << 8) + KANA_HDTEN
#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

View file

@ -33,35 +33,33 @@
* $SonyDate: 1994/06/03 08:03:46 $ * $SonyDate: 1994/06/03 08:03:46 $
*/ */
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4)) #if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
#ifndef __KCTYPE #ifndef __KCTYPE
#define __KCTYPE #define __KCTYPE
#define sjis2euc sj3_sjis2euc #define sjis2euc sj3_sjis2euc
#define jis2sjis sj3_jis2sjis #define jis2sjis sj3_jis2sjis
#define euctosjis sj3_euctosjis #define euctosjis sj3_euctosjis
#define sjis2jis sj3_sjis2jis #define sjis2jis sj3_sjis2jis
#define euc2sjis sj3_euc2sjis #define euc2sjis sj3_euc2sjis
#define jis2euc sj3_jis2euc #define jis2euc sj3_jis2euc
#define sjistoeuc sj3_sjistoeuc #define sjistoeuc sj3_sjistoeuc
#ifdef issjis1 #ifdef issjis1
#undef issjis1 #undef issjis1
#endif #endif
#define issjis1(c) (((0x81 <= (c)) && ((c) <= 0x9f)) || \ #define issjis1(c) (((0x81 <= (c)) && ((c) <= 0x9f)) || \
((0xe0 <= (c)) && ((c) <= 0xfc))) ((0xe0 <= (c)) && ((c) <= 0xfc)))
#ifdef issjis2 #ifdef issjis2
#undef issjis2 #undef issjis2
#endif #endif
#define issjis2(c) (((0x40 <= (c)) && ((c) <= 0xfc)) && ((c) != 0x7f)) #define issjis2(c) (((0x40 <= (c)) && ((c) <= 0xfc)) && ((c) != 0x7f))
#ifdef iseuc #ifdef iseuc
#undef iseuc #undef iseuc
#endif #endif
#define iseuc(c) ((0xa1 <= (c)) && ((c) <= 0xfe)) #define iseuc(c) ((0xa1 <= (c)) && ((c) <= 0xfe))
#ifdef iseuckana #ifdef iseuckana
#undef iseuckana #undef iseuckana
@ -71,22 +69,22 @@
#ifdef iskana2 #ifdef iskana2
#undef iskana2 #undef iskana2
#endif #endif
#define iskana2(c) ((0xa1 <= (c)) && ((c) <= 0xdf)) #define iskana2(c) ((0xa1 <= (c)) && ((c) <= 0xdf))
#ifdef jiszen #ifdef jiszen
#undef jiszen #undef jiszen
#endif #endif
#define jiszen(c) (issjis1(((c) >> 8) & 0xff) && issjis2((c) & 0xff)) #define jiszen(c) (issjis1(((c) >> 8) & 0xff) && issjis2((c) & 0xff))
#ifdef isjjis #ifdef isjjis
#undef isjjis #undef isjjis
#endif #endif
#define isjjis(c) ((0x21 <= (c)) && ((c) <= 0x7e)) #define isjjis(c) ((0x21 <= (c)) && ((c) <= 0x7e))
#ifdef jstrlen #ifdef jstrlen
#undef jstrlen #undef jstrlen
#endif #endif
#define jstrlen(s) euclen(s, 65535) #define jstrlen(s) euclen(s, 65535)
#ifdef iseuc3byte #ifdef iseuc3byte
#undef iseuc3byte #undef iseuc3byte
@ -101,15 +99,14 @@
#ifdef iskanji #ifdef iskanji
#undef iskanji #undef iskanji
#endif #endif
#define iskanji issjis1 #define iskanji issjis1
#ifdef iskanji2 #ifdef iskanji2
#undef iskanji2 #undef iskanji2
#endif #endif
#define iskanji2 issjis2 #define iskanji2 issjis2
#ifdef iskana #ifdef iskana
#undef iskana #undef iskana
#endif #endif
#define iskana iskana2 #define iskana iskana2
#endif #endif
#endif #endif

View file

@ -33,66 +33,59 @@
* $SonyDate: 1994/06/03 08:03:47 $ * $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_NORMAL 0 #define KEY_HIRAGANA 29
#define KEY_CONV 1 #define KEY_KATAKANA 30
#define KEY_HENKAN 2 #define KEY_EISUU 31
#define KEY_MUHENKAN 3 #define KEY_EIDAI 32
#define KEY_KETTEI 4 #define KEY_ROMA 33
#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_CANCEL 34
#define KEY_WRAPBACK 19 #define KEY_RECONV 35
#define KEY_HELP 20
#define KEY_TOROKU 21
#define KEY_SYOUKYO 22
#define KEY_SJRC 23
#define KEY_HA_KET 24 #define KEY_IGNORE 36
#define KEY_FLUSH 25 #define KEY_DEBUG 37
#define KEY_BUFFER 26
#define KEY_HANKAKU 27 #define KEY_TOP 38
#define KEY_ZENKAKU 28 #define KEY_END 39
#define KEY_RECONNECT 40
#define KEY_KILL 41
#define KEY_OTHER 42
#define KEY_HIRAGANA 29 #define KEY_MORE 43
#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
#define UKEYNUM 64
#define SEQLEN 8
#define COMNUM 64

View file

@ -39,47 +39,46 @@
#include <sys/types.h> #include <sys/types.h>
#include "wchar16.h" #include "wchar16.h"
#define SPACE 0x20 #define SPACE 0x20
#define TAB 0x09 #define TAB 0x09
#define EOL 0x0a #define EOL 0x0a
#define NSTR '\0' #define NSTR '\0'
#ifndef ESC #ifndef ESC
#define ESC 0x1b #define ESC 0x1b
#endif #endif
#define QUOTA '\'' #define QUOTA '\''
#define BSL '\\' #define BSL '\\'
#define MASK 0xff #define MASK 0xff
#define MAXLEN 256 #define MAXLEN 256
#define MAXWLEN 16 #define MAXWLEN 16
#define MAXLLEN 64 #define MAXLLEN 64
#define MAXCODE 256 #define MAXCODE 256
#define CONTINUE 0 #define CONTINUE 0
#define NOMACH -1 #define NOMACH -1
#define FAIL -1 #define FAIL -1
#define RKEND 0xffffffff #define RKEND 0xffffffff
#define ERRBEL 0xfffffffc #define ERRBEL 0xfffffffc
#define ERRCODE 0x80000000 #define ERRCODE 0x80000000
#define RKMASK 0x0000ffff #define RKMASK 0x0000ffff
#define RKZEN 0xff00 #define RKZEN 0xff00
#define SetMojilen(c) ((c << 16) & 0x00ff0000) #define SetMojilen(c) ((c << 16) & 0x00ff0000)
#define GetMojilen(c) ((c & ERRCODE) ? (1) : ((c >> 16) & 0xff)) #define GetMojilen(c) ((c & ERRCODE) ? (1) : ((c >> 16) & 0xff))
typedef struct rktable_w16 { typedef struct rktable_w16 {
wchar16_t *r_key; wchar16_t* r_key;
u_short *k_yomi; u_short* k_yomi;
wchar16_t *r_str; wchar16_t* r_str;
struct rktable_w16 *next; struct rktable_w16* next;
} RkTablW16; } RkTablW16;
typedef struct rktable { typedef struct rktable {
u_char *r_key; u_char* r_key;
u_short *k_yomi; u_short* k_yomi;
u_char *r_str; u_char* r_str;
struct rktable *next; struct rktable* next;
} RkTabl; } RkTabl;
#endif /* RK_H */ #endif /* RK_H */

View file

@ -20,108 +20,107 @@
#include "rk.h" #include "rk.h"
/* rk_conv.c */ /* rk_conv.c */
#define RKSIZE 256 #define RKSIZE 256
#define RKINCZ 32 #define RKINCZ 32
typedef struct rkbufrec { typedef struct rkbufrec {
RkTablW16 *rkbuf; RkTablW16* rkbuf;
RkTablW16 *rkend; RkTablW16* rkend;
struct rkbufrec *rkbufp; struct rkbufrec* rkbufp;
} RkbufRec; } RkbufRec;
#define STRSIZE 1024 #define STRSIZE 1024
#define STRINCZ 256 #define STRINCZ 256
typedef struct strbufrec { typedef struct strbufrec {
wchar16_t *strbuf; wchar16_t* strbuf;
wchar16_t *strend; wchar16_t* strend;
struct strbufrec *strbufp; struct strbufrec* strbufp;
} StrbufRec; } StrbufRec;
#define YMISIZE 512 #define YMISIZE 512
#define YMIINCZ 64 #define YMIINCZ 64
typedef struct ymibufrec { typedef struct ymibufrec {
wchar16_t *ymibuf; wchar16_t* ymibuf;
wchar16_t *ymiend; wchar16_t* ymiend;
struct ymibufrec *ymibufp; struct ymibufrec* ymibufp;
} YmibufRec; } YmibufRec;
extern RkTabl *sj3_rcode[MAXCODE]; extern RkTabl* sj3_rcode[MAXCODE];
extern RkTablW16 *sj3_rcode_w16[MAXCODE]; extern RkTablW16* sj3_rcode_w16[MAXCODE];
extern RkTablW16 *rktblp; extern RkTablW16* rktblp;
extern wchar16_t rline[MAXLLEN]; extern wchar16_t rline[MAXLLEN];
extern wchar16_t lstr[MAXLLEN]; extern wchar16_t lstr[MAXLLEN];
void sj3_rkcode(int); void sj3_rkcode(int);
int sj3_rkinit2(char *, int); int sj3_rkinit2(char*, int);
int rcode_sjis_init(); int rcode_sjis_init();
int rcode_euc_init(); int rcode_euc_init();
int sj3_rkinit(char *); int sj3_rkinit(char*);
int sj3_rkinit_euc(char *); int sj3_rkinit_euc(char*);
int sj3_rkinit_mb(char *); int sj3_rkinit_mb(char*);
int sj3_rkinit_sub(char *rkfile, int (*)()); int sj3_rkinit_sub(char* rkfile, int (*)());
char *rkgetyomi(char *, wchar16_t *, int *); char* rkgetyomi(char*, wchar16_t*, int*);
char *getkey(char *, wchar16_t *, int *); char* getkey(char*, wchar16_t*, int*);
void cltable(); void cltable();
int chk_rstr(wchar16_t *, wchar16_t *, int, int); int chk_rstr(wchar16_t*, wchar16_t*, int, int);
RkTablW16 *rkalloc(); RkTablW16* rkalloc();
int stradd(wchar16_t **, wchar16_t *, int); int stradd(wchar16_t**, wchar16_t*, int);
int kstradd(wchar16_t **, wchar16_t *, int); int kstradd(wchar16_t**, wchar16_t*, int);
RkTablW16 * mktable(wchar16_t *, int); RkTablW16* mktable(wchar16_t*, int);
void sj3_rkebell(int); void sj3_rkebell(int);
void sj3_rkclear(); void sj3_rkclear();
void sj3_rkreset(); void sj3_rkreset();
void sj3_rkconvc(wchar16_t, u_int *); void sj3_rkconvc(wchar16_t, u_int*);
int sj3_rkconv2(wchar16_t *, u_int *, int); int sj3_rkconv2(wchar16_t*, u_int*, int);
int sj3_rkconv(u_char *, u_char *); int sj3_rkconv(u_char*, u_char*);
int sj3_rkconv_euc(u_char *, u_char *); int sj3_rkconv_euc(u_char*, u_char*);
int sj3_rkconv_mb(u_char *, u_char *); int sj3_rkconv_mb(u_char*, u_char*);
int sj3_rkconv_w16(wchar16_t *, wchar16_t *); int sj3_rkconv_w16(wchar16_t*, wchar16_t*);
int rkmatch(wchar16_t *, wchar16_t *, int); int rkmatch(wchar16_t*, wchar16_t*, int);
/* sj3_rkcv.h */ /* sj3_rkcv.h */
#ifdef ADDHK #ifdef ADDHK
void setl_hktozh(); void setl_hktozh();
#endif #endif
void mkkigou(); void mkkigou();
int sj_addten(u_short, u_short); int sj_addten(u_short, u_short);
int sj_han2zen(u_short); int sj_han2zen(u_short);
int sj3_hantozen_euc(u_char *, u_char *); int sj3_hantozen_euc(u_char*, u_char*);
int sj3_hantozen_mb(u_char *, u_char *); int sj3_hantozen_mb(u_char*, u_char*);
int sj3_hantozen_w16(wchar16_t *, wchar16_t *); int sj3_hantozen_w16(wchar16_t*, wchar16_t*);
int sj_hantozen(wchar16_t *, wchar16_t *, int); int sj_hantozen(wchar16_t*, wchar16_t*, int);
int sj_zen2han(u_short); int sj_zen2han(u_short);
int sj3_zentohan(u_char *, u_char *); int sj3_zentohan(u_char*, u_char*);
int sj3_zentohan_euc(u_char *, u_char *); int sj3_zentohan_euc(u_char*, u_char*);
int sj3_zentohan_mb(u_char *, u_char *); int sj3_zentohan_mb(u_char*, u_char*);
int sj3_zentohan_w16(wchar16_t *, wchar16_t *); int sj3_zentohan_w16(wchar16_t*, wchar16_t*);
int sj_zentohan(wchar16_t *, wchar16_t *, int); int sj_zentohan(wchar16_t*, wchar16_t*, int);
int sj_tokata(wchar16_t); int sj_tokata(wchar16_t);
int sj_tohira(wchar16_t); int sj_tohira(wchar16_t);
int sj_htok(wchar16_t *, wchar16_t *); int sj_htok(wchar16_t*, wchar16_t*);
int sj_ktoh(wchar16_t *, wchar16_t *); int sj_ktoh(wchar16_t*, wchar16_t*);
/* wc16_str.c */ /* wc16_str.c */
int sj3_iswcntrl16(wchar16_t); int sj3_iswcntrl16(wchar16_t);
int sj3_iswupper16(wchar16_t); int sj3_iswupper16(wchar16_t);
int sj3_iswdigit16(wchar16_t); int sj3_iswdigit16(wchar16_t);
int sj3_iswxdigit16(wchar16_t); int sj3_iswxdigit16(wchar16_t);
int sj3_wslen16(wchar16_t *); int sj3_wslen16(wchar16_t*);
int sj3_wscmp16(wchar16_t *, wchar16_t *); int sj3_wscmp16(wchar16_t*, wchar16_t*);
int sj3_wsncmp16(wchar16_t *, wchar16_t *, int); int sj3_wsncmp16(wchar16_t*, wchar16_t*, int);
wchar16_t *sj3_wscpy16(wchar16_t *, wchar16_t *); wchar16_t* sj3_wscpy16(wchar16_t*, wchar16_t*);
wchar16_t *sj3_wsncpy16(wchar16_t *, wchar16_t *, int); wchar16_t* sj3_wsncpy16(wchar16_t*, wchar16_t*, int);
wchar16_t *sj3_wscat16(wchar16_t *, wchar16_t *); wchar16_t* sj3_wscat16(wchar16_t*, wchar16_t*);
wchar16_t sj3_euc2wc16(unsigned int); wchar16_t sj3_euc2wc16(unsigned int);
wchar16_t sj3_sjis2wc16(unsigned int); wchar16_t sj3_sjis2wc16(unsigned int);
unsigned int sj3_wc2euc16(wchar16_t); unsigned int sj3_wc2euc16(wchar16_t);
unsigned int sj3_wc2sjis16(wchar16_t); unsigned int sj3_wc2sjis16(wchar16_t);
int sj3_wcs2eucs16(unsigned char *, wchar16_t *, int); int sj3_wcs2eucs16(unsigned char*, wchar16_t*, int);
int sj3_wcs2sjiss16(unsigned char *, wchar16_t *, int); int sj3_wcs2sjiss16(unsigned char*, wchar16_t*, int);
int sj3_eucs2wcs16(wchar16_t *, unsigned char *, int); int sj3_eucs2wcs16(wchar16_t*, unsigned char*, int);
int sj3_sjiss2wcs16(wchar16_t *, unsigned char *, int); int sj3_sjiss2wcs16(wchar16_t*, unsigned char*, int);
int sj3_mbstowcs16(wchar16_t *, unsigned char *, int); int sj3_mbstowcs16(wchar16_t*, unsigned char*, int);
int sj3_wcstombs16(unsigned char *, unsigned char *, int); int sj3_wcstombs16(unsigned char*, unsigned char*, int);
/* XXX */ /* XXX */
extern int current_locale; extern int current_locale;
#endif #endif

View file

@ -33,24 +33,21 @@
* $SonyDate: 1994/06/03 08:03:52 $ * $SonyDate: 1994/06/03 08:03:52 $
*/ */
#ifndef _WCHARH #ifndef _WCHARH
#define _WCHARH #define _WCHARH
#if defined(__sony_news) && defined(SVR4) #if defined(__sony_news) && defined(SVR4)
#define _WCHAR_T #define _WCHAR_T
typedef unsigned short wchar_t; typedef unsigned short wchar_t;
#include <stdlib.h> #include <stdlib.h>
#include <ctype.h> #include <ctype.h>
#include <widec.h> #include <widec.h>
#include <wctype.h> #include <wctype.h>
typedef wchar_t wchar16_t; typedef wchar_t wchar16_t;
#else #else
#include <stdlib.h> #include <stdlib.h>
#include <ctype.h> #include <ctype.h>
typedef unsigned short wchar16_t; typedef unsigned short wchar16_t;
#endif #endif
#include "key.h" #include "key.h"
@ -64,61 +61,57 @@ typedef unsigned short wchar16_t;
#ifdef iswcntrl #ifdef iswcntrl
#undef iswcntrl #undef iswcntrl
#endif #endif
#define iswcntrl(wc) sj3_iswcntrl16(wc) #define iswcntrl(wc) sj3_iswcntrl16(wc)
#ifdef iswupper #ifdef iswupper
#undef iswupper #undef iswupper
#endif #endif
#define iswupper(wc) sj3_iswupper16(wc) #define iswupper(wc) sj3_iswupper16(wc)
#ifdef iswdigit #ifdef iswdigit
#undef iswdigit #undef iswdigit
#endif #endif
#define iswdigit(wc) sj3_iswdigit16(wc) #define iswdigit(wc) sj3_iswdigit16(wc)
#ifdef iswxdigit #ifdef iswxdigit
#undef iswxdigit #undef iswxdigit
#endif #endif
#define iswxdigit(wc) sj3_iswxdigit16(wc) #define iswxdigit(wc) sj3_iswxdigit16(wc)
#ifdef wslen #ifdef wslen
#undef wslen #undef wslen
#endif #endif
#define wslen(ws) sj3_wslen16(ws) #define wslen(ws) sj3_wslen16(ws)
#ifdef wscmp #ifdef wscmp
#undef wscmp #undef wscmp
#endif #endif
#define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2) #define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2)
#ifdef wsncmp #ifdef wsncmp
#undef wsncmp #undef wsncmp
#endif #endif
#define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n) #define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n)
#ifdef wscpy #ifdef wscpy
#undef wscpy #undef wscpy
#endif #endif
#define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2) #define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2)
#ifdef wsncpy #ifdef wsncpy
#undef wsncpy #undef wsncpy
#endif #endif
#define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n) #define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n)
#ifdef wscat #ifdef wscat
#undef wscat #undef wscat
#endif #endif
#define wscat(ws1, ws2) sj3_wscat16(ws1, ws2) #define wscat(ws1, ws2) sj3_wscat16(ws1, ws2)
#ifdef mbstowcs #ifdef mbstowcs
#undef mbstowcs #undef mbstowcs
#endif #endif
#define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n) #define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n)
#ifdef wcstombs #ifdef wcstombs
#undef wcstombs #undef wcstombs
#endif #endif
#define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n) #define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n)
#endif #endif
#define LC_CTYPE_SHIFTJIS 1 #define LC_CTYPE_SHIFTJIS 1
#define LC_CTYPE_EUC 2 #define LC_CTYPE_EUC 2
#define IsEUCHojo(x) (((unsigned char) (x)) == SS3) #define IsEUCHojo(x) (((unsigned char)(x)) == SS3)
#define WcX0208MASK 0xffff #define WcX0208MASK 0xffff
#define WcX0212MASK 0xff7f #define WcX0212MASK 0xff7f
@ -131,262 +124,240 @@ typedef unsigned short wchar16_t;
#define WcX0212FLAG 0x8000 #define WcX0212FLAG 0x8000
#define WcX0201FLAG 0x0080 #define WcX0201FLAG 0x0080
#define WcLowByte(w) ((w) & 0xff) #define WcLowByte(w) ((w) & 0xff)
#define WcHighByte(w) (((w) >> 8) & 0xff) #define WcHighByte(w) (((w) >> 8) & 0xff)
#define WcIsASCII(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcASCIIFLAG) #define WcIsASCII(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcASCIIFLAG)
#define WcIsX0208(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0208FLAG) #define WcIsX0208(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0208FLAG)
#define WcIsX0201(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0201FLAG) #define WcIsX0201(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0201FLAG)
#define WcIsX0212(w) ((((wchar16_t) (w)) & WcX0208FLAG) == WcX0212FLAG) #define WcIsX0212(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0212FLAG)
#define WcIsZENKAKU(w) ((((wchar16_t) (w)) & WcX0212FLAG) == WcX0212FLAG) #define WcIsZENKAKU(w) ((((wchar16_t)(w)) & WcX0212FLAG) == WcX0212FLAG)
#define WcIsHANKAKU(w) ((((wchar16_t) (w)) & WcX0212FLAG) == WcASCIIFLAG) #define WcIsHANKAKU(w) ((((wchar16_t)(w)) & WcX0212FLAG) == WcASCIIFLAG)
#define WcIsKANJI(w) WcIsZENKAKU(w) #define WcIsKANJI(w) WcIsZENKAKU(w)
#define WcIsKANA(w) WcIsX0201(w) #define WcIsKANA(w) WcIsX0201(w)
#define WcSetX0212(c1, c2) ((((c1) & 0xff) << 8) + ((c2) & 0x7f)) #define WcSetX0212(c1, c2) ((((c1) & 0xff) << 8) + ((c2) & 0x7f))
#define WcJIS2X0208(w) ((w) | WcX0208FLAG) #define WcJIS2X0208(w) ((w) | WcX0208FLAG)
#define WcJIS2X0212(w) ((w) | WcX0212FLAG) #define WcJIS2X0212(w) ((w) | WcX0212FLAG)
#define Wc2JIS(w) ((w) & WcJISMASK) #define Wc2JIS(w) ((w) & WcJISMASK)
#define WCSJrun WcMessages[0]
#define WCSJrun WcMessages[0] #define WCMode_buff WcMessages[1]
#define WCMode_unbuff WcMessages[2]
#define WCMode_buff WcMessages[1] #define WCMode_Zhira WcMessages[3]
#define WCMode_unbuff WcMessages[2] #define WCMode_Zkata WcMessages[4]
#define WCMode_Hkata WcMessages[5]
#define WCMode_Zalpha WcMessages[6]
#define WCMode_Halpha WcMessages[7]
#define WCMode_Zhira WcMessages[3] #define WCGmode WcMessages[8]
#define WCMode_Zkata WcMessages[4] #define WCGEtc WcMessages[9]
#define WCMode_Hkata WcMessages[5] #define WCGetc WcMessages[10]
#define WCMode_Zalpha WcMessages[6]
#define WCMode_Halpha WcMessages[7]
#define WCGmode WcMessages[8] #define WCGHelp WcMessages[11]
#define WCGEtc WcMessages[9] #define WCMHelp WcMessages[12]
#define WCGetc WcMessages[10]
#define WCGHelp WcMessages[11] #define WCGCshift WcMessages[13]
#define WCMHelp WcMessages[12] #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 WCGCshift WcMessages[13] #define WCSUCCsjrc WcMessages[45]
#define WCGCeuc WcMessages[14] #define WCFAILsjrc WcMessages[46]
#define WCGCeuc2 WcMessages[15] #define WCNOTHsjrc WcMessages[47]
#define WCGCjis WcMessages[16]
#define WCGCjis2 WcMessages[17]
#define WCGCkuten WcMessages[18]
#define WCGCkuten2 WcMessages[19]
#define WCWeight_mes WcMessages[48]
#define WCGrcon WcMessages[49]
#define WCRserv WcMessages[50]
#define WCRserv_OK WcMessages[51]
#define WCDiscon WcMessages[52]
#define WCGtoroku WcMessages[20] #define WCSpace WcMessages[53]
#define WCMhani WcMessages[21] #define WCSpace2 WcMessages[54]
#define WCMyomi WcMessages[22] #define WCContinue WcMessages[55]
#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 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 WCGsyoukyo WcMessages[38] #define WCGedit WcMessages[65]
#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 WCTooLong WcMessages[67]
#define WCDollar WcMessages[68]
#define WCOn WcMessages[69]
#define WCOff WcMessages[70]
#define WCSUCCsjrc WcMessages[45] #define WCMeishi WcMessages[71]
#define WCFAILsjrc WcMessages[46] #define WCMyouji WcMessages[72]
#define WCNOTHsjrc WcMessages[47] #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 WCWeight_mes WcMessages[48] #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 WCGrcon WcMessages[49] #define WCSjxkey WcMessages[141]
#define WCRserv WcMessages[50] #define WCEtckey WcMessages[142]
#define WCRserv_OK WcMessages[51] #define WCIntr WcMessages[143]
#define WCDiscon WcMessages[52] #define WCBskey WcMessages[144]
#define WCDelkey WcMessages[145]
#define WCSpace WcMessages[53] #define WCSetnormal WcMessages[146]
#define WCSpace2 WcMessages[54] #define WCThroughnext WcMessages[147]
#define WCContinue WcMessages[55] #define WCInitialmode WcMessages[148]
#define WCHelpmode WcMessages[149]
#define WCDefaultcode WcMessages[150]
#define WCServer_Dead WcMessages[56] #define WCMuhenkanmode WcMessages[151]
#define WCConnected WcMessages[57] #define WCMuhenkaninedit WcMessages[152]
#define WCNconnect WcMessages[58] #define WCMuhenkantoggle WcMessages[153]
#define WCNopen_Mdic WcMessages[59] #define WCGuide WcMessages[154]
#define WCNmake_Udir WcMessages[60] #define WCForkshell WcMessages[155]
#define WCNmake_Udic WcMessages[61] #define WCExecshell WcMessages[156]
#define WCNopen_Udic WcMessages[62] #define WCDictionary WcMessages[157]
#define WCNmake_Study WcMessages[63] #define WCUserdic WcMessages[158]
#define WCNopen_Study WcMessages[64] #define WCMaindic WcMessages[159]
#define WCRomaji WcMessages[160]
#define WCBstudy WcMessages[161]
#define WCSilent WcMessages[162]
#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 WCFlushafterconversion WcMessages[163]
#define WCRkerrbell WcMessages[164] #define WCRkerrbell WcMessages[164]
#define WCServer WcMessages[165] #define WCServer WcMessages[165]
#define WCShiftjis WcMessages[166] #define WCShiftjis WcMessages[166]
#define WCSjis WcMessages[167] #define WCSjis WcMessages[167]
#define WCEuc WcMessages[168] #define WCEuc WcMessages[168]
#define WCEuc2 WcMessages[169] #define WCEuc2 WcMessages[169]
#define WCJis WcMessages[170] #define WCJis WcMessages[170]
#define WCJis2 WcMessages[171] #define WCJis2 WcMessages[171]
#define WCKuten WcMessages[172] #define WCKuten WcMessages[172]
#define WCKuten2 WcMessages[173] #define WCKuten2 WcMessages[173]
#define WCBuff WcMessages[174] #define WCBuff WcMessages[174]
#define WCUnbuff WcMessages[175] #define WCUnbuff WcMessages[175]
#define WCDirect WcMessages[176] #define WCDirect WcMessages[176]
#define WCSj2 WcMessages[177] #define WCSj2 WcMessages[177]
#define WCShift WcMessages[178] #define WCShift WcMessages[178]
#define WCFunction WcMessages[179] #define WCFunction WcMessages[179]
#define WCUnbuffer WcMessages[180]
#define WCFuncetc WcMessages[181]
extern wchar16_t *WcMessages[];
#define WCUnbuffer WcMessages[180]
#define WCFuncetc WcMessages[181]
extern wchar16_t* WcMessages[];
struct wcvtkey { struct wcvtkey {
wchar16_t *key_word; wchar16_t* key_word;
wchar16_t key_seq[SEQLEN]; wchar16_t key_seq[SEQLEN];
}; };
struct functbl { struct functbl {
wchar16_t *keyword; wchar16_t* keyword;
int (*func)(); int (*func)();
}; };
#endif #endif

View file

@ -36,83 +36,78 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void sprt_seg(TypeDicSeg, TypeDicOfs); static void sprt_seg(TypeDicSeg, TypeDicOfs);
static void apnd_uidx(TypeDicSeg, u_char *, int); static void apnd_uidx(TypeDicSeg, u_char*, int);
static int cal_nextym(u_char *); static int cal_nextym(u_char*);
static int usr_freelen(); static int usr_freelen();
static u_int checkdict(u_char *, TypeGram); static u_int checkdict(u_char*, TypeGram);
u_int adddic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_int err;
u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1];
int klen;
TypeDicSeg segnum;
int saml;
TypeDicOfs dstofs;
TypeDicOfs douofs;
TypeDicOfs hnsofs;
TypeDicOfs knjofs;
TypeDicOfs nxtask;
TypeDicOfs newsiz;
TypeDicOfs oldsiz;
TypeDicOfs fresiz;
TypeIdxOfs freidx;
u_char* douptr;
u_char* dstptr;
TypeDicOfs pos;
u_char* p1;
int i;
int nlen, plen;
int size;
STDYIN* stdy;
STDYOUT stdydat;
if(err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))
u_int
adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
{
u_int err;
u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1];
int klen;
TypeDicSeg segnum;
int saml;
TypeDicOfs dstofs;
TypeDicOfs douofs;
TypeDicOfs hnsofs;
TypeDicOfs knjofs;
TypeDicOfs nxtask;
TypeDicOfs newsiz;
TypeDicOfs oldsiz;
TypeDicOfs fresiz;
TypeIdxOfs freidx;
u_char *douptr;
u_char *dstptr;
TypeDicOfs pos;
u_char *p1;
int i;
int nlen, plen;
int size;
STDYIN *stdy;
STDYOUT stdydat;
if (err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))
return err; return err;
inputyomi = yomi; inputyomi = yomi;
cnvstart = ystart = yptr; cnvstart = ystart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
if (err = checkdict(kanji, hinsi)) if(err = checkdict(kanji, hinsi))
return err; return err;
if (!curdict -> maxunit) if(!curdict->maxunit)
return AD_NOTUSERDICT; return AD_NOTUSERDICT;
klen = cvtknj(yomi, kanji, kptr); klen = cvtknj(yomi, kanji, kptr);
newsiz = DOUONBLKSIZENUMBER + cnvlen + (klen !=0 ? klen+1 : 0) + 2; newsiz = DOUONBLKSIZENUMBER + cnvlen + (klen != 0 ? klen + 1 : 0) + 2;
if (newsiz > MAXDOUONBLK) if(newsiz > MAXDOUONBLK)
return AD_OVFLWDOUBLK; return AD_OVFLWDOUBLK;
if (newsiz > curdict->seglen) if(newsiz > curdict->seglen)
return AD_OVFLWDOUBLK; return AD_OVFLWDOUBLK;
segnum = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); segnum = srchidx((TypeDicSeg)DICSEGBASE, cnvlen);
for ( ; ; ) { for(;;) {
(*curdict->getdic)(curdict, segnum); (*curdict->getdic)(curdict, segnum);
i = srchkana(&p1, &saml); i = srchkana(&p1, &saml);
dstofs = douofs = p1 - dicbuf; dstofs = douofs = p1 - dicbuf;
hnsofs = knjofs = 0; hnsofs = knjofs = 0;
if (i) { if(i) {
i = srchgram(p1, &p1, hinsi); i = srchgram(p1, &p1, hinsi);
dstofs = hnsofs = p1 - dicbuf; dstofs = hnsofs = p1 - dicbuf;
if (i) { if(i) {
srchkanji(&p1, kptr, klen); srchkanji(&p1, kptr, klen);
if (*p1 != HINSIBLKTERM) if(*p1 != HINSIBLKTERM)
return AD_AREXIST; return AD_AREXIST;
dstofs = knjofs = p1 - dicbuf; dstofs = knjofs = p1 - dicbuf;
} }
@ -120,46 +115,45 @@ adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
p1 = dicbuf + douofs; p1 = dicbuf + douofs;
if (!hnsofs) { if(!hnsofs) {
oldsiz = 0; oldsiz = 0;
nlen = cnvlen - saml; nlen = cnvlen - saml;
newsiz = DOUONBLKSIZENUMBER + nlen; newsiz = DOUONBLKSIZENUMBER + nlen;
nxtask = cal_nextym(p1); nxtask = cal_nextym(p1);
} } else {
else {
oldsiz = newsiz = getsize(p1); oldsiz = newsiz = getsize(p1);
nxtask = 0; nxtask = 0;
} }
if (!knjofs) newsiz += 2; if(!knjofs) newsiz += 2;
newsiz += (klen != 0 ? klen+1 : 0); newsiz += (klen != 0 ? klen + 1 : 0);
fresiz = usr_freelen(); fresiz = usr_freelen();
if ((unsigned int) (newsiz - oldsiz - nxtask) <= if((unsigned int)(newsiz - oldsiz - nxtask) <=
(unsigned int) fresiz) break; (unsigned int)fresiz) break;
if (segend(p1) && (segnum + 1 < curdict->segunit)) { if(segend(p1) && (segnum + 1 < curdict->segunit)) {
segnum++; segnum++;
continue; continue;
} }
if (curdict->segunit >= curdict->maxunit) if(curdict->segunit >= curdict->maxunit)
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
freidx = count_uidx(); freidx = count_uidx();
if ((unsigned int) (douofs + newsiz) <= curdict->seglen) { if((unsigned int)(douofs + newsiz) <= curdict->seglen) {
if (hnsofs) if(hnsofs)
p1 = getntag(p1); p1 = getntag(p1);
pos = p1 - dicbuf; pos = p1 - dicbuf;
nlen = getnlen(p1); nlen = getnlen(p1);
if ((unsigned int) freidx < getplen(p1) + nlen + 1) if((unsigned int)freidx < getplen(p1) + nlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if ((*curdict->putdic)(curdict, curdict->segunit)) if((*curdict->putdic)(curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(segnum, pos); sprt_seg(segnum, pos);
@ -168,11 +162,11 @@ adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
break; break;
} }
if (segend(p1)) { if(segend(p1)) {
if ((unsigned int) freidx < cnvlen + 1) if((unsigned int)freidx < cnvlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if ((*curdict->putdic)(curdict, curdict->segunit)) if((*curdict->putdic)(curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
curdict->segunit++; curdict->segunit++;
@ -184,13 +178,12 @@ adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
mkidxtbl(curdict); mkidxtbl(curdict);
segnum++; segnum++;
} } else {
else {
nlen = getnlen(p1); nlen = getnlen(p1);
if ((unsigned int) freidx < getplen(p1) + nlen + 1) if((unsigned int)freidx < getplen(p1) + nlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if ((*curdict->putdic)(curdict, curdict->segunit)) if((*curdict->putdic)(curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(segnum, douofs); sprt_seg(segnum, douofs);
@ -201,16 +194,16 @@ adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
douptr = dicbuf + douofs; douptr = dicbuf + douofs;
if (nxtask) { if(nxtask) {
u_char *tp; u_char* tp;
size = getsize(douptr) - nxtask; size = getsize(douptr) - nxtask;
plen = getplen(douptr) + nxtask; plen = getplen(douptr) + nxtask;
nlen = getnlen(douptr) - nxtask; nlen = getnlen(douptr) - nxtask;
*douptr = (size >> 8); *douptr = (size >> 8);
if (nlen & 0x10) if(nlen & 0x10)
*douptr |= NOKORIYOMITOP; *douptr |= NOKORIYOMITOP;
if (plen & 0x10) if(plen & 0x10)
*douptr |= ASSYUKUYOMITOP; *douptr |= ASSYUKUYOMITOP;
*(douptr + 1) = size; *(douptr + 1) = size;
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4)); *(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
@ -221,128 +214,124 @@ adddic(u_char *yomi, u_char *kanji, TypeGram hinsi)
} }
dstptr = dicbuf + dstofs; dstptr = dicbuf + dstofs;
size = newsiz - oldsiz; size = newsiz - oldsiz;
p1 = dicbuf + curdict->seglen; p1 = dicbuf + curdict->seglen;
mvmemd(p1 - size, p1, p1 - dstptr - size); mvmemd(p1 - size, p1, p1 - dstptr - size);
if (!hnsofs) { if(!hnsofs) {
if (douofs == segtop() - dicbuf) { if(douofs == segtop() - dicbuf) {
chg_uidx(segnum, yptr, cnvlen); chg_uidx(segnum, yptr, cnvlen);
} }
*dstptr = 0; *dstptr = 0;
nlen = cnvlen - saml; nlen = cnvlen - saml;
if (nlen & 0x10) if(nlen & 0x10)
*dstptr |= NOKORIYOMITOP; *dstptr |= NOKORIYOMITOP;
if (saml & 0x10) if(saml & 0x10)
*dstptr |= ASSYUKUYOMITOP; *dstptr |= ASSYUKUYOMITOP;
*dstptr++ |= (size >> 8); *dstptr++ |= (size >> 8);
*dstptr++ = size; *dstptr++ = size;
*dstptr++ = ((nlen&0x0f)|((saml&0x0f)<<4)); *dstptr++ = ((nlen & 0x0f) | ((saml & 0x0f) << 4));
while (saml < cnvlen) *dstptr++ = yptr[saml++]; while(saml < cnvlen) *dstptr++ = yptr[saml++];
} } else {
else { plen = getplen(douptr);
plen = getplen(douptr); nlen = getnlen(douptr);
nlen = getnlen(douptr);
*douptr = (newsiz >> 8); *douptr = (newsiz >> 8);
if (nlen & 0x10) if(nlen & 0x10)
*douptr |= NOKORIYOMITOP; *douptr |= NOKORIYOMITOP;
if (plen & 0x10) if(plen & 0x10)
*douptr |= ASSYUKUYOMITOP; *douptr |= ASSYUKUYOMITOP;
*(douptr + 1) = newsiz; *(douptr + 1) = newsiz;
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4)); *(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
} }
if (!knjofs) if(!knjofs)
*dstptr++ = hinsi; *dstptr++ = hinsi;
stdydat.stdy1.offset = dstptr - dicbuf; stdydat.stdy1.offset = dstptr - dicbuf;
for (saml = 0 ; saml < klen ; ) for(saml = 0; saml < klen;)
*dstptr++ = kptr[saml++]; *dstptr++ = kptr[saml++];
if (klen > 0) if(klen > 0)
*dstptr++ = KANJISTREND; *dstptr++ = KANJISTREND;
if (!knjofs) if(!knjofs)
*dstptr++ = HINSIBLKTERM; *dstptr++ = HINSIBLKTERM;
(*curdict->putdic)(curdict, segnum); (*curdict->putdic)(curdict, segnum);
if (StudyExist()) { if(StudyExist()) {
size -= nxtask; size -= nxtask;
for (i = STUDYCOUNT, stdy = STUDYDICT ; i-- ; stdy++) { for(i = STUDYCOUNT, stdy = STUDYDICT; i--; stdy++) {
if (stdy -> dicid != curdict->dicid) if(stdy->dicid != curdict->dicid)
continue; continue;
if (stdy -> seg != segnum) if(stdy->seg != segnum)
continue; continue;
if (stdy -> offset >= dstofs) if(stdy->offset >= dstofs)
stdy -> offset += size; stdy->offset += size;
} }
for (p1 = CLSTUDYDICT ; !iseocl(p1) ; p1 = ClNextTag(p1)) { for(p1 = CLSTUDYDICT; !iseocl(p1); p1 = ClNextTag(p1)) {
err = sstrncmp(yptr, (u_char *)ClYomiPos(p1), err = sstrncmp(yptr, (u_char*)ClYomiPos(p1),
(int)ClYomiLen(p1)); (int)ClYomiLen(p1));
if (err == MATCH) { if(err == MATCH) {
delclsub(p1); delclsub(p1);
mkclidx(); mkclidx();
putcldic(); putcldic();
break; break;
} else if (err == OVER) } else if(err == OVER)
break; break;
} }
} }
stdydat.stdy1.seg = segnum; stdydat.stdy1.seg = segnum;
stdydat.stdy1.dicid = curdict->dicid; stdydat.stdy1.dicid = curdict->dicid;
stdydat.stdy1.styno = 0; stdydat.stdy1.styno = 0;
stdydat.stdy1.sttkj = 0; stdydat.stdy1.sttkj = 0;
stdydat.stdy1.ka_kj = 0; stdydat.stdy1.ka_kj = 0;
stdydat.stdy1.nmflg = 0; stdydat.stdy1.nmflg = 0;
stdydat.hinshi = hinsi; stdydat.hinshi = hinsi;
stdydat.len = cnvlen; stdydat.len = cnvlen;
stdydat.sttlen = 0; stdydat.sttlen = 0;
stdydat.sttfg = 0; stdydat.sttfg = 0;
stdydat.ka_fg = 0; stdydat.ka_fg = 0;
(void)study(&stdydat); (void)study(&stdydat);
return AD_DONE; return AD_DONE;
} }
static int static int
checksub(u_char *kanji, TypeGram grm) checksub(u_char* kanji, TypeGram grm) {
{ u_char* tagp;
u_char *tagp; u_char* ptr;
u_char *ptr; u_char* endp;
u_char *endp;
int flg, nlen; int flg, nlen;
int dounum; int dounum;
u_char buf[MAXWDKANJILEN + 1]; u_char buf[MAXWDKANJILEN + 1];
dicinl = cnvlen; dicinl = cnvlen;
dicsaml = 0; dicsaml = 0;
prevseg = (TypeDicSeg)-1; prevseg = (TypeDicSeg)-1;
for (;;) { for(;;) {
if (!(tagp = srchdict(tagp))) if(!(tagp = srchdict(tagp)))
return 0; return 0;
if (cnvlen == getnlen(tagp) + getplen(tagp)) if(cnvlen == getnlen(tagp) + getplen(tagp))
break; break;
} }
dounum = 0; dounum = 0;
nlen = getnlen(tagp); nlen = getnlen(tagp);
ptr = tagp + DOUONBLKSIZENUMBER + nlen; ptr = tagp + DOUONBLKSIZENUMBER + nlen;
endp = tagp + getsize(tagp); endp = tagp + getsize(tagp);
while (ptr < endp) { while(ptr < endp) {
flg = (grm == *ptr++); flg = (grm == *ptr++);
while (*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if (flg) { if(flg) {
buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0; buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0;
if (cmpstr(kanji, buf)) if(cmpstr(kanji, buf))
return -1; return -1;
} }
dounum++; dounum++;
@ -355,22 +344,19 @@ checksub(u_char *kanji, TypeGram grm)
return dounum; return dounum;
} }
static u_int static u_int
checkdict(u_char *kanji, TypeGram grm) checkdict(u_char* kanji, TypeGram grm) {
{ DICTL* dp;
DICTL *dp; int dounum = 0;
int dounum = 0; int tmp;
int tmp; DICT* tmpdict;
DICT *tmpdict;
tmpdict = curdict; tmpdict = curdict;
for (dp = dictlist ; dp ; dp = dp -> next) { for(dp = dictlist; dp; dp = dp->next) {
curdict = dp -> dict; curdict = dp->dict;
if ((tmp = checksub(kanji, grm)) < 0) { if((tmp = checksub(kanji, grm)) < 0) {
curdict = tmpdict; curdict = tmpdict;
return AD_AREXIST; return AD_AREXIST;
} }
@ -379,29 +365,26 @@ checkdict(u_char *kanji, TypeGram grm)
} }
curdict = tmpdict; curdict = tmpdict;
if (MAXKOUHONUMBER <= dounum) if(MAXKOUHONUMBER <= dounum)
return AD_OVFLWDOUNUM; return AD_OVFLWDOUNUM;
return 0; return 0;
} }
static int static int
cal_nextym(u_char *ptr) cal_nextym(u_char* ptr) {
{
int count = 0; int count = 0;
u_char *src; u_char* src;
int len; int len;
if (!segend(ptr)) { if(!segend(ptr)) {
src = cnvstart + getplen(ptr); src = cnvstart + getplen(ptr);
len = getnlen(ptr); len = getnlen(ptr);
ptr += DOUONBLKSIZENUMBER; ptr += DOUONBLKSIZENUMBER;
while (len--) { while(len--) {
if (*ptr++ == *src++) if(*ptr++ == *src++)
count++; count++;
else else
break; break;
@ -410,37 +393,31 @@ cal_nextym(u_char *ptr)
return count; return count;
} }
static int static int
usr_freelen() usr_freelen() {
{ u_char* ptr;
u_char *ptr;
ptr = segtop(); ptr = segtop();
while (!segend(ptr)) while(!segend(ptr))
ptr += getsize(ptr); ptr += getsize(ptr);
return curdict->seglen - (ptr - dicbuf); return curdict->seglen - (ptr - dicbuf);
} }
static void static void
sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) {
{ TypeDicSeg s;
TypeDicSeg s; u_char* pos;
u_char *pos; u_char* p;
u_char *p; u_char* q;
u_char *q; int i;
int i; int j;
int j; int ylen, nlen;
int ylen, nlen; TypeDicID dicid;
TypeDicID dicid; u_char yomi[MAXWDYOMILEN];
u_char yomi[MAXWDYOMILEN]; STDYIN* stdy;
STDYIN *stdy;
for (s = curdict->segunit - 1 ; s >= seg ; s--) { for(s = curdict->segunit - 1; s >= seg; s--) {
(*curdict->getdic)(curdict, s); (*curdict->getdic)(curdict, s);
(*curdict->putdic)(curdict, s + 1); (*curdict->putdic)(curdict, s + 1);
} }
@ -451,22 +428,22 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
pos = dicbuf + ofs; pos = dicbuf + ofs;
for (p = segtop() ; (p <= pos) && !segend(p) ; p = q) { for(p = segtop(); (p <= pos) && !segend(p); p = q) {
q = getntag(p); q = getntag(p);
i = getplen(p); i = getplen(p);
nlen = getnlen(p); nlen = getnlen(p);
j = (nlen != 0) ? nlen+1: 0; j = (nlen != 0) ? nlen + 1 : 0;
p += DOUONBLKSIZENUMBER; p += DOUONBLKSIZENUMBER;
while (j-- > 0) while(j-- > 0)
yomi[i++] = *p++; yomi[i++] = *p++;
} }
nlen = getnlen(pos); nlen = getnlen(pos);
ylen = (i = getplen(pos)) + (j = nlen); ylen = (i = getplen(pos)) + (j = nlen);
apnd_uidx(seg, yomi, ylen); apnd_uidx(seg, yomi, ylen);
set_size(segtop(), getsize(pos) + i, 0, ylen); set_size(segtop(), getsize(pos) + i, 0, ylen);
mvmemi(yomi, (p = segtop() + DOUONBLKSIZENUMBER), ylen); mvmemi(yomi, (p = segtop() + DOUONBLKSIZENUMBER), ylen);
@ -480,18 +457,18 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
(*curdict->putdic)(curdict, seg + 1); (*curdict->putdic)(curdict, seg + 1);
if (StudyExist()) { if(StudyExist()) {
dicid = curdict -> dicid; dicid = curdict->dicid;
for (i = STUDYCOUNT, stdy = STUDYDICT ; i-- > 0 ; stdy++) { for(i = STUDYCOUNT, stdy = STUDYDICT; i-- > 0; stdy++) {
if (stdy -> dicid != dicid) if(stdy->dicid != dicid)
continue; continue;
else if (stdy -> seg < seg) else if(stdy->seg < seg)
continue; continue;
else if (stdy -> seg > seg) else if(stdy->seg > seg)
stdy -> seg += 1; stdy->seg += 1;
else if (stdy -> offset >= ofs) { else if(stdy->offset >= ofs) {
stdy -> seg += 1; stdy->seg += 1;
stdy -> offset -= j; stdy->offset -= j;
} }
} }
} }
@ -501,22 +478,18 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
(*curdict->putdic)(curdict, seg); (*curdict->putdic)(curdict, seg);
} }
static void static void
apnd_uidx(TypeDicSeg seg, u_char *yomi, int len) apnd_uidx(TypeDicSeg seg, u_char* yomi, int len) {
{ u_char* p;
u_char *p; u_char* q;
u_char *q;
p = get_idxptr(seg); p = get_idxptr(seg);
while (*p++) while(*p++);
;
q = idxbuf + curdict->idxlen; q = idxbuf + curdict->idxlen;
mvmemd(q - (len + 1), q, (int)(q - (len + 1) - p)); mvmemd(q - (len + 1), q, (int)(q - (len + 1) - p));
while (len--) while(len--)
*p++ = *yomi++; *p++ = *yomi++;
*p = 0; *p = 0;

View file

@ -33,9 +33,6 @@
* $SonyDate: 1994/06/03 08:01:27 $ * $SonyDate: 1994/06/03 08:01:27 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
@ -43,51 +40,44 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void set_size(u_char* p, int size, int plen, int nlen) {
void
set_size(u_char *p, int size, int plen, int nlen)
{
*p = (u_char)(size >> 8); *p = (u_char)(size >> 8);
if (nlen & 0x10) *p |= NOKORIYOMITOP; if(nlen & 0x10) *p |= NOKORIYOMITOP;
if (plen & 0x10) *p |= ASSYUKUYOMITOP; if(plen & 0x10) *p |= ASSYUKUYOMITOP;
*(p + 1) = (u_char)size; *(p + 1) = (u_char)size;
*(p + 2) = (u_char)((nlen & 0x0f) | ((plen & 0x0f) << 4)); *(p + 2) = (u_char)((nlen & 0x0f) | ((plen & 0x0f) << 4));
} }
static int static int
isvyomi(u_char *yp) isvyomi(u_char* yp) {
{ int len;
int len;
if (!*yp) return FALSE; if(!*yp) return FALSE;
if (!(Chrtbl[*yp] & DICTOP)) return FALSE; if(!(Chrtbl[*yp] & DICTOP)) return FALSE;
for (len = 0 ; *yp ; yp++) { for(len = 0; *yp; yp++) {
if (!(Chrtbl[*yp]) || (*yp >= Y_KUTEN)) return FALSE; if(!(Chrtbl[*yp]) || (*yp >= Y_KUTEN)) return FALSE;
if (++len > MAXWDYOMILEN) return FALSE; if(++len > MAXWDYOMILEN) return FALSE;
} }
return TRUE; return TRUE;
} }
static int static int
isvknj(u_char *kanji) isvknj(u_char* kanji) {
{ int len;
int len;
if (!*kanji) return FALSE; if(!*kanji) return FALSE;
for (len = 0 ; *kanji ; ) { for(len = 0; *kanji;) {
if (*kanji == SS3) { if(*kanji == SS3) {
kanji += 3; kanji += 3;
len += 2; len += 2;
} else } else
if (isknj1(*kanji)) { if(isknj1(*kanji)) {
kanji += 2; kanji += 2;
len += 2; len += 2;
} }
@ -97,64 +87,54 @@ isvknj(u_char *kanji)
len += 2; len += 2;
} }
if (len > MAXWDKANJILEN) return FALSE; if(len > MAXWDKANJILEN) return FALSE;
} }
return TRUE; return TRUE;
} }
static int static int
isgrm(TypeGram gram) isgrm(TypeGram gram) {
{ int grm = gram;
int grm = gram;
if (MEISI_1 <= grm && grm <= D_MEISI_6) return TRUE; if(MEISI_1 <= grm && grm <= D_MEISI_6) return TRUE;
if (MYOUJI <= grm && grm <= JOSUUSI2) return TRUE; if(MYOUJI <= grm && grm <= JOSUUSI2) return TRUE;
if (KEIYOUSI_1 <= grm && grm <= DO_ZAHEN) return TRUE; if(KEIYOUSI_1 <= grm && grm <= DO_ZAHEN) return TRUE;
if (DO_1DAN_1 <= grm && grm <= DO_WAGO_2) return TRUE; if(DO_1DAN_1 <= grm && grm <= DO_WAGO_2) return TRUE;
if (DO_KAGO_5 <= grm && grm <= DO_WAGO_5) return TRUE; if(DO_KAGO_5 <= grm && grm <= DO_WAGO_5) return TRUE;
if (DO_KAGO_6 <= grm && grm <= DO_WAGO_6) return TRUE; if(DO_KAGO_6 <= grm && grm <= DO_WAGO_6) return TRUE;
if (DO_1DAN_3 <= grm && grm <= DO_WAGO_3) return TRUE; if(DO_1DAN_3 <= grm && grm <= DO_WAGO_3) return TRUE;
if (DO_1DAN_4 <= grm && grm <= DO_WAGO_4) return TRUE; if(DO_1DAN_4 <= grm && grm <= DO_WAGO_4) return TRUE;
if (DO_KAGO_7 <= grm && grm <= DO_WAGO_7) return TRUE; if(DO_KAGO_7 <= grm && grm <= DO_WAGO_7) return TRUE;
if (DO_KAGO_8 <= grm && grm <= DO_WAGO_8) return TRUE; if(DO_KAGO_8 <= grm && grm <= DO_WAGO_8) return TRUE;
if (SP_SA_MI1 <= grm && grm <= TANKANJI) return TRUE; if(SP_SA_MI1 <= grm && grm <= TANKANJI) return TRUE;
return FALSE; return FALSE;
} }
u_int addel_arg(u_char* yp, u_char* kp, TypeGram grm, u_char* nyp, int len) {
u_short err = 0;
if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI;
u_int if(!isvyomi(nyp)) err |= AD_BADYOMI;
addel_arg(u_char *yp, u_char *kp, TypeGram grm, u_char *nyp, int len)
{
u_short err = 0;
if (!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI; if(!isvknj(kp)) err |= AD_BADKANJI;
if (!isvyomi(nyp)) err |= AD_BADYOMI; if(!isgrm(grm)) err |= AD_BADHINSI;
if (!isvknj(kp)) err |= AD_BADKANJI;
if (!isgrm(grm)) err |= AD_BADHINSI;
return err; return err;
} }
static void static void
yomi2kata(u_char *src, u_char *dst) yomi2kata(u_char* src, u_char* dst) {
{ int first;
int first; int second;
int second;
while (first = *src++) { while(first = *src++) {
second = *src++; second = *src++;
if (first != 0xa4) { if(first != 0xa4) {
*dst++ = first; *dst++ = first;
*dst++ = second; *dst++ = second;
} }
@ -168,89 +148,78 @@ yomi2kata(u_char *src, u_char *dst)
*dst = 0; *dst = 0;
} }
static int static int
top_strcmp(u_char *src, u_char *dst) top_strcmp(u_char* src, u_char* dst) {
{ int i;
int i;
for (i = 0 ; *src && (*src == *dst) ; src++, dst++) i++; for(i = 0; *src && (*src == *dst); src++, dst++) i++;
i /= 2; i /= 2;
return (i > MAXYOMIASKNUMBER) ? MAXYOMIASKNUMBER : i; return (i > MAXYOMIASKNUMBER) ? MAXYOMIASKNUMBER : i;
} }
static int static int
last_strcmp(u_char *src, u_char *dst) last_strcmp(u_char* src, u_char* dst) {
{ int slen;
int slen; int dlen;
int dlen;
slen = sstrlen(src); slen = sstrlen(src);
dlen = sstrlen(dst); dlen = sstrlen(dst);
if (dlen > MAXYOMIASKNUMBER * 2) return 0; if(dlen > MAXYOMIASKNUMBER * 2) return 0;
if (sstrcmp(src + (slen - dlen), dst)) return 0; if(sstrcmp(src + (slen - dlen), dst)) return 0;
return (dlen / 2); return (dlen / 2);
} }
int cvtknj(u_char* yomi, u_char* knj, u_char* dst) {
int
cvtknj(u_char *yomi, u_char *knj, u_char *dst)
{
u_char kana[MAXWDYOMILEN * 2 + 1]; u_char kana[MAXWDYOMILEN * 2 + 1];
int len; int len;
u_char *keep; u_char* keep;
keep = dst; keep = dst;
yomi2kata(yomi, kana); yomi2kata(yomi, kana);
if (len = top_strcmp(yomi, knj)) { if(len = top_strcmp(yomi, knj)) {
*dst = (u_char)(ZENHIRAASSYUKU | (len - 1)); *dst = (u_char)(ZENHIRAASSYUKU | (len - 1));
} } else if(len = top_strcmp(kana, knj)) {
else if (len = top_strcmp(kana, knj)) { *dst = (u_char)(ZENKATAASSYUKU | (len - 1));
*dst = (u_char)(ZENKATAASSYUKU | (len - 1));
} }
if (len) { if(len) {
knj += len * 2; knj += len * 2;
dst++; dst++;
} }
if (*knj) { if(*knj) {
for ( ; ; ) { for(;;) {
if (len = last_strcmp(yomi, knj)) { if(len = last_strcmp(yomi, knj)) {
*dst++ = (u_char)(ZENHIRAASSYUKU | (len - 1)); *dst++ = (u_char)(ZENHIRAASSYUKU | (len - 1));
break; break;
} } else if(len = last_strcmp(kana, knj)) {
else if (len = last_strcmp(kana, knj)) {
*dst++ = (u_char)(ZENKATAASSYUKU | (len - 1)); *dst++ = (u_char)(ZENKATAASSYUKU | (len - 1));
break; break;
} } else if(*knj == SS2) {
else if (*knj == SS2) {
knj++; knj++;
*dst++ = (u_char)LEADINGHANKAKU; *dst++ = (u_char)LEADINGHANKAKU;
*dst++ = *knj++; *dst++ = *knj++;
} else if (*knj == SS3) { } else if(*knj == SS3) {
knj++;
*dst++ = (*knj & NORMALKANJIMASK);
knj++; knj++;
*dst++ = (*knj & NORMALKANJIMASK); knj++;
*dst++ = *knj++; *dst++ = *knj++;
} else if (*knj & 0x80) { } else if(*knj & 0x80) {
*dst++ = (*knj & NORMALKANJIMASK); knj++; *dst++ = (*knj & NORMALKANJIMASK);
*dst++ = (*knj & NORMALKANJIMASK); knj++; knj++;
} *dst++ = (*knj & NORMALKANJIMASK);
else { knj++;
} else {
*dst++ = (u_char)LEADINGHANKAKU; *dst++ = (u_char)LEADINGHANKAKU;
*dst++ = *knj++; *dst++ = *knj++;
} }
if (!*knj) { if(!*knj) {
break; break;
} }
} }
@ -260,12 +229,8 @@ cvtknj(u_char *yomi, u_char *knj, u_char *dst)
return (dst - keep); return (dst - keep);
} }
int srchkana(u_char** ptr, int* saml) {
u_char* p;
int
srchkana(u_char **ptr, int *saml)
{
u_char *p;
int cmp; int cmp;
int cnt = 0; int cnt = 0;
u_char same; u_char same;
@ -275,34 +240,30 @@ srchkana(u_char **ptr, int *saml)
p = segtop(); p = segtop();
while (!segend(p)) { while(!segend(p)) {
if (flg == 0) { if(flg == 0) {
cmp = yomicmp(cnvstart, p, &same); cmp = yomicmp(cnvstart, p, &same);
if (cmp == OVER) break; if(cmp == OVER) break;
if (cmp == MATCH && *(cnvstart + same) == 0) { if(cmp == MATCH && *(cnvstart + same) == 0) {
*ptr = p; *ptr = p;
*saml = same; *saml = same;
flg = 1; flg = 1;
} }
} }
p = getntag(p); p = getntag(p);
cnt++; cnt++;
} }
if (flg != 0) return cnt; if(flg != 0) return cnt;
*ptr = p; *ptr = p;
*saml = same; *saml = same;
return 0; return 0;
} }
int srchgram(u_char* ptr, u_char** dst, TypeGram hinsi) {
u_char* endp;
int
srchgram(u_char *ptr, u_char **dst, TypeGram hinsi)
{
u_char *endp;
int cnt = 0, nlen; int cnt = 0, nlen;
int flg = FALSE; int flg = FALSE;
@ -310,79 +271,68 @@ srchgram(u_char *ptr, u_char **dst, TypeGram hinsi)
nlen = getnlen(ptr); nlen = getnlen(ptr);
ptr += DOUONBLKSIZENUMBER + nlen; ptr += DOUONBLKSIZENUMBER + nlen;
while (ptr < endp) { while(ptr < endp) {
if (*ptr == hinsi) { if(*ptr == hinsi) {
*dst = ptr; *dst = ptr;
flg = TRUE; flg = TRUE;
} }
do { do {
ptr += codesize(*ptr); ptr += codesize(*ptr);
} while (*ptr != HINSIBLKTERM); } while(*ptr != HINSIBLKTERM);
ptr++; ptr++;
cnt++; cnt++;
} }
if (flg) return cnt; if(flg) return cnt;
*dst = ptr; *dst = ptr;
return 0; return 0;
} }
int srchkanji(u_char** dst, u_char* knj, int klen) {
u_char* ptr;
int u_char *p, *q;
srchkanji(u_char **dst, u_char *knj, int klen)
{
u_char *ptr;
u_char *p, *q;
int len; int len;
int flg = FALSE; int flg = FALSE;
int cnt = 0; int cnt = 0;
ptr = *dst + 1; ptr = *dst + 1;
while (*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
for (p = ptr, q = knj, len = klen ; len ; len--) for(p = ptr, q = knj, len = klen; len; len--)
if (*p++ != *q++) break; if(*p++ != *q++) break;
if (!len) { if(!len) {
*dst = ptr; *dst = ptr;
flg = TRUE; flg = TRUE;
} }
while (!(*ptr == KANJISTREND)) { while(!(*ptr == KANJISTREND)) {
ptr += codesize(*ptr); ptr += codesize(*ptr);
} }
ptr++; ptr++;
cnt++; cnt++;
} }
if (!flg) *dst = ptr; if(!flg) *dst = ptr;
return cnt; return cnt;
} }
TypeIdxOfs TypeIdxOfs
count_uidx() count_uidx() {
{ u_char* p;
u_char *p;
p = get_idxptr(curdict->segunit - 1); p = get_idxptr(curdict->segunit - 1);
while (*p++) ; while(*p++);
return (curdict->idxlen - (p - idxbuf)); return (curdict->idxlen - (p - idxbuf));
} }
void chg_uidx(TypeDicSeg seg, u_char* yomi, int len) {
u_char *p, *q;
void int olen;
chg_uidx(TypeDicSeg seg, u_char *yomi, int len)
{
u_char *p, *q;
int olen;
p = get_idxptr(seg); p = get_idxptr(seg);
@ -390,13 +340,12 @@ chg_uidx(TypeDicSeg seg, u_char *yomi, int len)
q = idxbuf + curdict->idxlen; q = idxbuf + curdict->idxlen;
if (len > olen) { if(len > olen) {
mvmemd(q - (len-olen), q, (int)(q - (len-olen) - p)); mvmemd(q - (len - olen), q, (int)(q - (len - olen) - p));
} else {
mvmemi(p + (olen - len), p, (int)(q - (p + (olen - len))));
} }
else { while(len--) *p++ = *yomi++;
mvmemi(p + (olen-len), p, (int)(q - (p + (olen-len))));
}
while (len--) *p++ = *yomi++;
(*curdict->putidx)(curdict, 0); (*curdict->putidx)(curdict, 0);

View file

@ -33,7 +33,6 @@
* $SonyDate: 1994/06/03 08:01:28 $ * $SonyDate: 1994/06/03 08:01:28 $
*/ */
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#include "sj_rename.h" #include "sj_rename.h"
@ -44,64 +43,57 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
#define JREC_NUM 128 #define JREC_NUM 128
#define CLREC_NUM 128 #define CLREC_NUM 128
static JREC *jrec = NULL; static JREC* jrec = NULL;
static CLREC *clrec = NULL; static CLREC* clrec = NULL;
JREC * JREC* alloc_jrec() {
alloc_jrec() JREC* p;
{ int i;
JREC *p;
int i;
if (jrec == NULL) { if(jrec == NULL) {
jrec = (JREC *)malloc(sizeof(JREC) * JREC_NUM); jrec = (JREC*)malloc(sizeof(JREC) * JREC_NUM);
if (jrec == NULL) return (JREC *)malloc(sizeof(JREC)); if(jrec == NULL) return (JREC*)malloc(sizeof(JREC));
for (i = 0, p = jrec ; i < JREC_NUM - 1 ; i++, p++) for(i = 0, p = jrec; i < JREC_NUM - 1; i++, p++)
p -> jsort = p + 1; p->jsort = p + 1;
p -> jsort = NULL; p->jsort = NULL;
} }
p = jrec; p = jrec;
jrec = jrec -> jsort; jrec = jrec->jsort;
return p; return p;
} }
void void free_jrec(JREC* p) {
free_jrec(JREC *p) if(p != NULL) {
{ p->jsort = jrec;
if (p != NULL) { jrec = p;
p -> jsort = jrec;
jrec = p;
} }
} }
CLREC * CLREC*
alloc_clrec() alloc_clrec() {
{ CLREC* p;
CLREC *p; int i;
int i;
if (clrec == NULL) { if(clrec == NULL) {
clrec = (CLREC *)malloc(sizeof(CLREC) * CLREC_NUM); clrec = (CLREC*)malloc(sizeof(CLREC) * CLREC_NUM);
if (clrec == NULL) return (CLREC *)malloc(sizeof(CLREC)); if(clrec == NULL) return (CLREC*)malloc(sizeof(CLREC));
for (i = 0, p = clrec ; i < CLREC_NUM - 1 ; i++, p++) for(i = 0, p = clrec; i < CLREC_NUM - 1; i++, p++)
p -> clsort = p + 1; p->clsort = p + 1;
p -> clsort = NULL; p->clsort = NULL;
} }
p = clrec; p = clrec;
clrec = clrec -> clsort; clrec = clrec->clsort;
return p; return p;
} }
void void free_clrec(CLREC* p) {
free_clrec(CLREC *p) if(p != NULL) {
{ p->clsort = clrec;
if (p != NULL) { clrec = p;
p -> clsort = clrec;
clrec = p;
} }
} }

View file

@ -33,9 +33,6 @@
* $SonyDate: 1994/06/03 08:01:29 $ * $SonyDate: 1994/06/03 08:01:29 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
@ -43,21 +40,18 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int codesize(u_char code) {
codesize(u_char code) switch(code & KANJIMODEMASK) {
{ case ZENHIRAASSYUKU:
switch (code & KANJIMODEMASK) { case ZENKATAASSYUKU:
case ZENHIRAASSYUKU: case KANJIASSYUKU:
case ZENKATAASSYUKU: case KANJISTREND:
case KANJIASSYUKU:
case KANJISTREND:
return 1; return 1;
case LEADINGHANKAKU: case LEADINGHANKAKU:
case OFFSETASSYUKU: case OFFSETASSYUKU:
case AIATTRIBUTE: case AIATTRIBUTE:
return 2;
default:
return 2; return 2;
default:
return 2;
} }
} }

View file

@ -33,17 +33,14 @@
* $SonyDate: 1994/06/03 08:01:30 $ * $SonyDate: 1994/06/03 08:01:30 $
*/ */
#include "sj_const.h" #include "sj_const.h"
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char chrtbl[256] = u_char chrtbl[256] =
{ {
0, 0,
FZKTOP, FZKTOP,
DICTOP + TAI_KGU, DICTOP + TAI_KGU,
@ -299,5 +296,4 @@ u_char chrtbl[256] =
TAI_KGU, TAI_KGU,
TAI_KGU, TAI_KGU,
TAI_KGU, TAI_KGU,
0 0};
};

View file

@ -37,29 +37,26 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static CLREC *nextrecblk(), *prevrecblk();
static CLREC *nextrecblk(), *prevrecblk(); static void initkbuf(u_char*);
static void initkbuf(u_char *); int cl2knj(u_char* yomi, int len, u_char* kouho) {
u_char* ptr1;
u_char* ptr2;
int
cl2knj(u_char *yomi, int len, u_char *kouho)
{
u_char *ptr1;
u_char *ptr2;
int i; int i;
khcount = nkhcount = 0; khcount = nkhcount = 0;
initkbuf(kouho); initkbuf(kouho);
if (len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2; if(len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2;
ptr1 = yomi; ptr2 = hyomi; ptr1 = yomi;
for (i = 0 ; i < len ; i++) { ptr2 = hyomi;
if (isknj1(*ptr1)) { for(i = 0; i < len; i++) {
if (++i >= len) break; if(isknj1(*ptr1)) {
if(++i >= len) break;
} }
ptr1 += sj2cd_chr(ptr1, ptr2++); ptr1 += sj2cd_chr(ptr1, ptr2++);
} }
@ -67,19 +64,19 @@ cl2knj(u_char *yomi, int len, u_char *kouho)
strlcpy(orgyomi, yomi, (int)(ptr1 - yomi) + 1); strlcpy(orgyomi, yomi, (int)(ptr1 - yomi) + 1);
if (!hyomi[0]) return 0; if(!hyomi[0]) return 0;
freework(); freework();
inputyomi = orgyomi; inputyomi = orgyomi;
cnvstart = ystart = hyomi; cnvstart = ystart = hyomi;
cnvlen = sstrlen(hyomi); cnvlen = sstrlen(hyomi);
mkjiritu(0); mkjiritu(0);
mkbunsetu(); mkbunsetu();
if (!maxclptr) wakachi(); if(!maxclptr) wakachi();
jrt1st = maxjptr; jrt1st = maxjptr;
clt1st = maxclptr; clt1st = maxclptr;
@ -92,129 +89,104 @@ cl2knj(u_char *yomi, int len, u_char *kouho)
cvtclknj(); cvtclknj();
return hzstrlen(inputyomi, (int)clt1st -> cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
int nextcl(u_char* kouho, int mode) {
CLREC* clptr;
int
nextcl(u_char *kouho, int mode)
{
CLREC *clptr;
initkbuf(kouho); initkbuf(kouho);
if (!khcount) return 0; if(!khcount) return 0;
if (!mode && (selectid < khcount)) if(!mode && (selectid < khcount))
selectid++; selectid++;
else if((mode < 2) && (clptr = nextrecblk())) { else if((mode < 2) && (clptr = nextrecblk())) {
selectid = 1; selectid = 1;
clt1st = clptr; clt1st = clptr;
mkkouho(); mkkouho();
getrank(); getrank();
} } else {
else {
cvtclknj(); cvtclknj();
return 0; return 0;
} }
cvtclknj(); cvtclknj();
return hzstrlen(inputyomi, (int)clt1st -> cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
nextrecblk() nextrecblk() {
{ CLREC* clptr;
CLREC *clptr; int keeplen;
int keeplen;
keeplen = clt1st -> cllen; keeplen = clt1st->cllen;
clptr = clt1st -> clsort; clptr = clt1st->clsort;
while (clptr && (int)clptr -> cllen == keeplen) while(clptr && (int)clptr->cllen == keeplen)
clptr = clptr -> clsort; clptr = clptr->clsort;
return clptr; return clptr;
} }
int prevcl(u_char* kouho, int mode) {
CLREC* clptr;
int
prevcl(u_char *kouho, int mode)
{
CLREC *clptr;
initkbuf(kouho); initkbuf(kouho);
if (!khcount) return 0; if(!khcount) return 0;
if (!mode && (selectid > 1)) if(!mode && (selectid > 1))
selectid--; selectid--;
else if ((mode < 2) && (clptr = prevrecblk())) { else if((mode < 2) && (clptr = prevrecblk())) {
clt1st = clptr; clt1st = clptr;
mkkouho(); mkkouho();
getrank(); getrank();
selectid = khcount; selectid = khcount;
} } else {
else {
cvtclknj(); cvtclknj();
return 0; return 0;
} }
cvtclknj(); cvtclknj();
return hzstrlen(inputyomi, (int)clt1st -> cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
prevrecblk() prevrecblk() {
{ CLREC* clptr;
CLREC *clptr; CLREC* keepptr;
CLREC *keepptr; int keeplen;
int keeplen; int cllen;
int cllen;
clptr = maxclptr; clptr = maxclptr;
if ((cllen = clt1st -> cllen) == clptr -> cllen) if((cllen = clt1st->cllen) == clptr->cllen)
return NULL; return NULL;
while ((int)clptr -> cllen > cllen) { while((int)clptr->cllen > cllen) {
keeplen = clptr -> cllen; keeplen = clptr->cllen;
keepptr = clptr; keepptr = clptr;
while ((int)clptr -> cllen == keeplen) while((int)clptr->cllen == keeplen)
clptr = clptr -> clsort; clptr = clptr->clsort;
} }
return keepptr; return keepptr;
} }
static void static void
initkbuf(u_char *kouho) initkbuf(u_char* kouho) {
{
kanjitmp = kouho; kanjitmp = kouho;
memset(kanjitmp, 0, sizeof(STDYOUT) + 1); memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
} }
int selectnum() {
int
selectnum()
{
return selectid; return selectid;
} }

View file

@ -33,81 +33,70 @@
* $SonyDate: 1994/06/03 08:01:32 $ * $SonyDate: 1994/06/03 08:01:32 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char *delcldata(), *srchclpos();
static int delclold();
static u_char *delcldata(), *srchclpos(); int clstudy(u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
static int delclold();
int
clstudy(u_char *yomi1, u_char *yomi2, STDYOUT *stdy)
{
u_char ytmp[CLSTDY_TMPLEN]; u_char ytmp[CLSTDY_TMPLEN];
u_char *dst, *ptr; u_char *dst, *ptr;
int ret; int ret;
int len1, len2; int len1, len2;
int alen, blen; int alen, blen;
int i; int i;
if (!StudyExist()) return CLSTUDYNODICT; if(!StudyExist()) return CLSTUDYNODICT;
if (!yomi1 || !*yomi1) return CLSTUDYPARAERR; if(!yomi1 || !*yomi1) return CLSTUDYPARAERR;
if (!yomi2 || !*yomi2) { if(!yomi2 || !*yomi2) {
if (!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN)) if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
return CLSTUDYYOMIERR; return CLSTUDYYOMIERR;
(void)delcldata(ytmp); (void)delcldata(ytmp);
ret = CLSTUDYNORMEND; ret = CLSTUDYNORMEND;
} } else if(!stdy)
else if (!stdy)
return CLSTUDYPARAERR; return CLSTUDYPARAERR;
else { else {
if (!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN)) if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
return CLSTUDYYOMIERR; return CLSTUDYYOMIERR;
len1 = sstrlen(ytmp); len1 = sstrlen(ytmp);
if (!sj2cd_str(yomi2, ytmp + len1, CLSTDY_TMPLEN - len1)) if(!sj2cd_str(yomi2, ytmp + len1, CLSTDY_TMPLEN - len1))
return CLSTUDYYOMIERR; return CLSTUDYYOMIERR;
len2 = len1 + stdy -> len; len2 = len1 + stdy->len;
ytmp[len2] = 0; ytmp[len2] = 0;
alen = len2 + CL_HDLEN; alen = len2 + CL_HDLEN;
if (alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA; if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA;
blen = CLSTUDYTAIL - delcldata(ytmp) - 1; blen = CLSTUDYTAIL - delcldata(ytmp) - 1;
while (blen < alen) { while(blen < alen) {
if (!(i = delclold())) break; if(!(i = delclold())) break;
blen += i; blen += i;
} }
if(blen >= alen) {
if (blen >= alen) {
dst = srchclpos(ytmp); dst = srchclpos(ytmp);
ptr = CLSTUDYTAIL - alen; ptr = CLSTUDYTAIL - alen;
mvmemd(ptr, CLSTUDYTAIL, (ptr - dst)); mvmemd(ptr, CLSTUDYTAIL, (ptr - dst));
ClYomiLen(dst) = (u_char)len2; ClYomiLen(dst) = (u_char)len2;
ClGramCode(dst) = stdy -> hinshi; ClGramCode(dst) = stdy->hinshi;
ClYomi1Len(dst) = (u_char)len1; ClYomi1Len(dst) = (u_char)len1;
ClSetNum(dst, 1); ClSetNum(dst, 1);
memcpy(ClYomiPos(dst), ytmp, len2); memcpy(ClYomiPos(dst), ytmp, len2);
ret = CLSTUDYNORMEND; ret = CLSTUDYNORMEND;
} } else
else
ret = CLSTUDYNOAREA; ret = CLSTUDYNOAREA;
} }
mkclidx(); mkclidx();
@ -116,32 +105,28 @@ clstudy(u_char *yomi1, u_char *yomi2, STDYOUT *stdy)
return ret; return ret;
} }
static u_char*
delcldata(u_char* ycode) {
static u_char * u_char* tagptr;
delcldata(u_char *ycode) u_char* ptr1;
{ u_char* ptr2;
u_char *tagptr;
u_char *ptr1;
u_char *ptr2;
int len1; int len1;
tagptr = CLSTUDYDICT; tagptr = CLSTUDYDICT;
while (!iseocl(tagptr)) { while(!iseocl(tagptr)) {
ptr1 = ycode; ptr1 = ycode;
ptr2 = ClYomiPos(tagptr); ptr2 = ClYomiPos(tagptr);
len1 = ClYomiLen(tagptr); len1 = ClYomiLen(tagptr);
while (*ptr1 && len1) { while(*ptr1 && len1) {
if (*ptr1 != *ptr2) break; if(*ptr1 != *ptr2) break;
ptr1++; ptr1++;
ptr2++; ptr2++;
len1--; len1--;
} }
if (!*ptr1 || !len1) { if(!*ptr1 || !len1) {
delclsub(tagptr); delclsub(tagptr);
} } else {
else {
tagptr = ClNextTag(tagptr); tagptr = ClNextTag(tagptr);
} }
} }
@ -149,12 +134,8 @@ delcldata(u_char *ycode)
return tagptr; return tagptr;
} }
void delclsub(u_char* target) {
u_char* src;
void
delclsub(u_char *target)
{
u_char *src;
int num; int num;
int tmp; int tmp;
int len; int len;
@ -170,10 +151,10 @@ delclsub(u_char *target)
memset(CLSTUDYTAIL - len, 0, len); memset(CLSTUDYTAIL - len, 0, len);
src = CLSTUDYDICT; src = CLSTUDYDICT;
while (!iseocl(src)) { while(!iseocl(src)) {
tmp = ClGetNum(src); tmp = ClGetNum(src);
if (tmp > num) { if(tmp > num) {
tmp -= 1; tmp -= 1;
ClSetNum(src, tmp); ClSetNum(src, tmp);
} }
@ -182,32 +163,29 @@ delclsub(u_char *target)
} }
} }
static int static int
delclold() delclold() {
{ u_char* tagptr;
u_char *tagptr; u_char* target;
u_char *target;
int num; int num;
int tmp; int tmp;
target = NULL; target = NULL;
num = 0; num = 0;
tagptr = CLSTUDYDICT; tagptr = CLSTUDYDICT;
while (!iseocl(tagptr)) { while(!iseocl(tagptr)) {
tmp = ClGetNum(tagptr); tmp = ClGetNum(tagptr);
if (tmp >= num) { if(tmp >= num) {
num = tmp; num = tmp;
target = tagptr; target = tagptr;
} }
tagptr = ClNextTag(tagptr); tagptr = ClNextTag(tagptr);
} }
if (target) { if(target) {
num = ClBlkLen(tagptr); num = ClBlkLen(tagptr);
delclsub(target); delclsub(target);
} }
@ -215,21 +193,18 @@ delclold()
return num; return num;
} }
static u_char*
srchclpos(u_char* ycode) {
static u_char * u_char* tagptr;
srchclpos(u_char *ycode) u_char* target;
{ u_char* ptr1;
u_char *tagptr; u_char* ptr2;
u_char *target;
u_char *ptr1;
u_char *ptr2;
int len; int len;
int tmp; int tmp;
target = NULL; target = NULL;
tagptr = CLSTUDYDICT; tagptr = CLSTUDYDICT;
while (!iseocl(tagptr)) { while(!iseocl(tagptr)) {
tmp = ClGetNum(tagptr); tmp = ClGetNum(tagptr);
tmp++; tmp++;
@ -238,19 +213,19 @@ srchclpos(u_char *ycode)
ptr1 = ycode; ptr1 = ycode;
ptr2 = ClYomiPos(tagptr); ptr2 = ClYomiPos(tagptr);
len = ClYomiLen(tagptr); len = ClYomiLen(tagptr);
while (*ptr1 && len) { while(*ptr1 && len) {
if (*ptr1 != *ptr2) break; if(*ptr1 != *ptr2) break;
ptr1++; ptr1++;
ptr2++; ptr2++;
len--; len--;
} }
if (!target) { if(!target) {
if (!len) if(!len)
; ;
else if (!*ptr1) else if(!*ptr1)
target = tagptr; target = tagptr;
else if (*ptr1 < *ptr2) else if(*ptr1 < *ptr2)
target = tagptr; target = tagptr;
} }
tagptr = ClNextTag(tagptr); tagptr = ClNextTag(tagptr);
@ -259,25 +234,21 @@ srchclpos(u_char *ycode)
return target ? target : tagptr; return target ? target : tagptr;
} }
void mkclidx() {
u_char* ptr;
void
mkclidx()
{
u_char *ptr;
int num; int num;
int st, ed; int st, ed;
if (!StudyExist()) return; if(!StudyExist()) return;
ptr = CLSTUDYDICT; ptr = CLSTUDYDICT;
for (num = st = 0 ; st < 0x100 ; num++, st = ed) { for(num = st = 0; st < 0x100; num++, st = ed) {
ed = st + CLSTUDYSTEP; ed = st + CLSTUDYSTEP;
while (!iseocl(ptr)) { while(!iseocl(ptr)) {
if ((unsigned int) *ClYomiPos(ptr) >= st) break; if((unsigned int)*ClYomiPos(ptr) >= st) break;
ptr = ClNextTag(ptr); ptr = ClNextTag(ptr);
} }
if (ClYomiLen(ptr) && ((int)*ClYomiPos(ptr) < ed)) if(ClYomiLen(ptr) && ((int)*ClYomiPos(ptr) < ed))
CLSTUDYIDX[num] = ptr - CLSTUDYDICT; CLSTUDYIDX[num] = ptr - CLSTUDYDICT;
else else
CLSTUDYIDX[num] = (u_short)-1; CLSTUDYIDX[num] = (u_short)-1;

View file

@ -33,26 +33,20 @@
* $SonyDate: 1994/06/03 08:01:32 $ * $SonyDate: 1994/06/03 08:01:32 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_const.h" #include "sj_const.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int cmpstr(u_char* src, u_char* dst) {
cmpstr(u_char *src, u_char *dst) while(*src) {
{ if(*src != *dst) return FALSE;
while (*src) {
if (*src != *dst) return FALSE;
src++; src++;
dst++; dst++;
} }
if (*dst) return FALSE; if(*dst) return FALSE;
return TRUE; return TRUE;
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -33,36 +33,25 @@
* $SonyDate: 1994/06/03 08:01:38 $ * $SonyDate: 1994/06/03 08:01:38 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void cvtclknj() {
cvtclknj() KHREC* krec;
{ int i;
KHREC *krec;
int i;
if(!selectid) selectid = khcount;
i = khcount;
if (!selectid) selectid = khcount;
i = khcount;
krec = kouhotbl; krec = kouhotbl;
while (i--) { while(i--) {
if ((int)krec -> rank == (int)selectid) break; if((int)krec->rank == (int)selectid) break;
krec++; krec++;
} }
setstyrec(krec); setstyrec(krec);
cvtkouho(krec); cvtkouho(krec);
} }

View file

@ -33,51 +33,42 @@
* $SonyDate: 1994/06/03 08:01:40 $ * $SonyDate: 1994/06/03 08:01:40 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void cvtdict(KHREC* krec, CLREC* clrec, int flg) {
cvtdict(KHREC *krec, CLREC *clrec, int flg) TypeDicOfs ofs;
{ u_char* yptr;
TypeDicOfs ofs; int jlen;
u_char *yptr; int stblen;
int jlen; int sttlen;
int stblen; u_char* fptr;
int sttlen; int cllen;
u_char *fptr; JREC* jrec;
int cllen; int i, j;
JREC *jrec;
int i, j;
ofs = krec->offs;
ofs = krec -> offs; jrec = clrec->jnode;
jrec = clrec -> jnode; cllen = clrec->cllen;
cllen = clrec -> cllen;
yptr = inputyomi; yptr = inputyomi;
jlen = jrec->jlen;
jlen = jrec -> jlen; if(i = jrec->sttofs) {
if(i == SETTOU_KIGOU) {
if (i = jrec -> sttofs) {
if (i == SETTOU_KIGOU) {
sttlen = 1; sttlen = 1;
fptr = yptr; fptr = yptr;
} }
else { else {
fptr = Settou_ptr(i); fptr = Settou_ptr(i);
sttlen = SttYomiLen(fptr); sttlen = SttYomiLen(fptr);
fptr++; fptr++;
if (!krec -> sttkj) fptr += 2; if(!krec->sttkj) fptr += 2;
} }
*kanjitmp++ = *fptr++; *kanjitmp++ = *fptr++;
@ -86,21 +77,17 @@ cvtdict(KHREC *krec, CLREC *clrec, int flg)
yptr += sttlen * 2; yptr += sttlen * 2;
} }
else else
sttlen = 0; sttlen = 0;
if(flg) {
if (flg) {
(*Cvtnum_func[krec->mode - 1])(ystart + sttlen, yptr, jrec); (*Cvtnum_func[krec->mode - 1])(ystart + sttlen, yptr, jrec);
yptr += (i = jrec->numlen) * 2;
yptr += (i = jrec -> numlen) * 2;
jlen -= i; jlen -= i;
if(jrec->stbofs) {
if (jrec -> stbofs) {
*kanjitmp++ = *yptr++; *kanjitmp++ = *yptr++;
*kanjitmp++ = *yptr++; *kanjitmp++ = *yptr++;
jlen--; jlen--;
@ -109,71 +96,60 @@ cvtdict(KHREC *krec, CLREC *clrec, int flg)
stblen = 0; stblen = 0;
} }
else if((i = jrec->stbofs) && (fptr = getstb(jrec->hinsi))) {
else if ((i = jrec -> stbofs) && (fptr = getstb(jrec -> hinsi))) {
fptr += i - 1; fptr += i - 1;
stblen = StbYomiLen(fptr); stblen = StbYomiLen(fptr);
jlen -= stblen; jlen -= stblen;
} }
else { else {
stblen = 0; stblen = 0;
} }
if(ofs) {
if (ofs) { if(seldict(jrec->dicid)) {
if (seldict(jrec -> dicid)) { (*curdict->getdic)(curdict, jrec->jseg);
(*curdict->getdic)(curdict, jrec -> jseg);
get_askknj(); get_askknj();
kanjitmp += kanjitmp +=
getkanji(yptr, jlen, dicbuf + ofs, kanjitmp); getkanji(yptr, jlen, dicbuf + ofs, kanjitmp);
yptr += jlen * 2; yptr += jlen * 2;
} } else {
else { while(jlen-- > 0) {
while (jlen-- > 0) { for(i = 0; i < euc_codesize(*yptr); i++)
for ( i = 0; i < euc_codesize(*yptr); i++) *kanjitmp++ = yptr[i];
*kanjitmp++ = yptr[i];
yptr += euc_codesize(*yptr); yptr += euc_codesize(*yptr);
} }
} }
} }
if(stblen) {
if (stblen) {
i = StbKnjLen(fptr); i = StbKnjLen(fptr);
fptr += stblen + 2; fptr += stblen + 2;
while (i-- > 0) *kanjitmp++ = *fptr++; while(i-- > 0) *kanjitmp++ = *fptr++;
yptr += stblen * 2; yptr += stblen * 2;
} }
i = cllen - (jrec->jlen);
i = cllen - (jrec -> jlen); while(i-- > 0) {
while (i-- > 0) { for(j = 0; j < euc_codesize(*yptr); j++)
for ( j = 0; j < euc_codesize(*yptr); j++) *kanjitmp++ = yptr[j];
*kanjitmp++ = yptr[j];
yptr += euc_codesize(*yptr); yptr += euc_codesize(*yptr);
} }
} }
void cvtminasi(int len) {
u_char* ptr;
void
cvtminasi(int len)
{
u_char *ptr;
ptr = inputyomi; ptr = inputyomi;
while (len-- > 0) { while(len-- > 0) {
if(isknj1(*ptr)) {
if (isknj1(*ptr)) {
*kanjitmp++ = *ptr++; *kanjitmp++ = *ptr++;
*kanjitmp++ = *ptr++; *kanjitmp++ = *ptr++;
} }
else if (*ptr == SS3) { else if(*ptr == SS3) {
*kanjitmp++ = *ptr++; *kanjitmp++ = *ptr++;
*kanjitmp++ = *ptr++; *kanjitmp++ = *ptr++;
*kanjitmp++ = *ptr++; *kanjitmp++ = *ptr++;
@ -183,40 +159,32 @@ cvtminasi(int len)
} }
} }
void cvtwakachi(CLREC* clrec) {
void
cvtwakachi(CLREC *clrec)
{
int jlen; int jlen;
u_char *ym; u_char* ym;
int cnt; int cnt;
u_char ch; u_char ch;
ym = inputyomi; ym = inputyomi;
cnt = jlen = clrec->jnode->jlen;
while(cnt-- > 0) {
if(isknj1(*ym)) {
cnt = jlen = clrec -> jnode -> jlen; if(*ym == 0xa4) {
while (cnt-- > 0) {
if (isknj1(*ym)) {
if (*ym == 0xa4) {
ch = *++ym; ch = *++ym;
if (0xa1 <= ch && ch <= 0xf3) { if(0xa1 <= ch && ch <= 0xf3) {
*kanjitmp++ = 0xa5; *kanjitmp++ = 0xa5;
} } else {
else {
*kanjitmp++ = 0xa4; *kanjitmp++ = 0xa4;
} }
*kanjitmp++ = ch; *kanjitmp++ = ch;
ym++; ym++;
} } else {
else {
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
} }
} } else if(*ym == SS3) {
else if (*ym == SS3) {
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
@ -225,20 +193,18 @@ cvtwakachi(CLREC *clrec)
} }
} }
cnt = clrec->cllen - jlen;
while(cnt-- > 0) {
cnt = clrec -> cllen - jlen; if(isknj1(*ym)) {
while (cnt-- > 0) {
if (isknj1(*ym)) {
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
} }
else if (*ym == SS3) { else if(*ym == SS3) {
*kanjitmp++ = *ym++;
*kanjitmp++ = *ym++;
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
*kanjitmp++ = *ym++;
*kanjitmp++ = *ym++;
} else { } else {
*kanjitmp++ = *ym++; *kanjitmp++ = *ym++;
} }

View file

@ -33,91 +33,70 @@
* $SonyDate: 1994/06/03 08:01:41 $ * $SonyDate: 1994/06/03 08:01:41 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void cvtphknj() {
cvtphknj() int i, j;
{ CLREC* clrec;
int i, j; CLREC* clkp;
CLREC *clrec;
CLREC *clkp;
if (!kanjilen) goto not_enough_memory; if(!kanjilen) goto not_enough_memory;
khcount = 0; khcount = 0;
clkp = NULL; clkp = NULL;
stdytop = NULL; stdytop = NULL;
clrec = clt1st; clrec = clt1st;
while (clrec) { while(clrec) {
if (ph_khtbl(clrec)) clkp = clrec; if(ph_khtbl(clrec)) clkp = clrec;
clrec = clrec -> clsort; clrec = clrec->clsort;
} }
if(clkp && stdytop) {
if (clkp && stdytop) { if(stdytop->nmflg)
ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN*)0);
if (stdytop -> nmflg) }
ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN *)0);
}
kouhotbl[0].rank = 1; kouhotbl[0].rank = 1;
kanjitmp = kanjibuf + 1; kanjitmp = kanjibuf + 1;
setstyrec(kouhotbl); setstyrec(kouhotbl);
cvtkouho(kouhotbl); cvtkouho(kouhotbl);
i = kanjitmp - kanjibuf; i = kanjitmp - kanjibuf;
if (i < kanjilen) { if(i < kanjilen) {
kanjilen -= i; kanjilen -= i;
ystart += clt1st->cllen;
ystart += clt1st -> cllen; j = hzstrlen(inputyomi, (int)clt1st->cllen);
j = hzstrlen(inputyomi, (int)clt1st -> cllen);
kanjibuf[0] = (u_char)j; kanjibuf[0] = (u_char)j;
inputyomi += j; inputyomi += j;
memcpy(kanjipos, kanjibuf, i); memcpy(kanjipos, kanjibuf, i);
kanjipos += i; kanjipos += i;
} } else
else
kanjilen = 0; kanjilen = 0;
not_enough_memory: not_enough_memory:
free_clall(clt1st); free_clall(clt1st);
free_jall (jrt1st); free_jall(jrt1st);
} }
void cvtkouho(KHREC* krec) {
CLREC* clrec;
clrec = krec->clrec;
void switch(clrec->jnode->class) {
cvtkouho(KHREC *krec)
{
CLREC *clrec;
clrec = krec -> clrec;
switch (clrec -> jnode -> class) {
case C_DICT: case C_DICT:
cvtdict(krec, clrec, FALSE); cvtdict(krec, clrec, FALSE);
break; break;
@ -135,72 +114,62 @@ cvtkouho(KHREC *krec)
cvtdict(krec, clrec, TRUE); cvtdict(krec, clrec, TRUE);
break; break;
case C_BUNSETU : case C_BUNSETU:
case C_MINASI : case C_MINASI:
cvtminasi((int)clrec -> cllen); cvtminasi((int)clrec->cllen);
break; break;
case C_WAKACHI : case C_WAKACHI:
cvtwakachi(clrec); cvtwakachi(clrec);
break; break;
} }
*kanjitmp++ = 0; *kanjitmp++ = 0;
} }
void setstyrec(KHREC* krec) {
JREC* jrec;
void KHREC* kptr;
setstyrec(KHREC *krec)
{
JREC *jrec;
KHREC *kptr;
int ii; int ii;
u_char *fptr; u_char* fptr;
STDYOUT stdy; STDYOUT stdy;
jrec = krec -> clrec -> jnode; jrec = krec->clrec->jnode;
if(krec->mode && !krec->offs) {
if (krec -> mode && !krec -> offs) { for(ii = khcount, kptr = kouhotbl; ii--; kptr++)
if(kptr->rank == 1) break;
for (ii = khcount, kptr = kouhotbl ; ii--; kptr++) stdy.stdy1.offset = kptr->offs;
if (kptr -> rank == 1) break; stdy.stdy1.seg = kptr->clrec->jnode->jseg;
stdy.stdy1.styno = kptr->styno;
stdy.stdy1.dicid = kptr->clrec->jnode->dicid;
stdy.stdy1.offset = kptr -> offs;
stdy.stdy1.seg = kptr -> clrec -> jnode -> jseg;
stdy.stdy1.styno = kptr -> styno;
stdy.stdy1.dicid = kptr -> clrec -> jnode -> dicid;
stdy.stdy1.nmflg = 1; stdy.stdy1.nmflg = 1;
} }
else { else {
stdy.stdy1.offset = krec -> offs; stdy.stdy1.offset = krec->offs;
stdy.stdy1.seg = jrec -> jseg; stdy.stdy1.seg = jrec->jseg;
stdy.stdy1.styno = krec -> styno; stdy.stdy1.styno = krec->styno;
stdy.stdy1.dicid = jrec -> dicid; stdy.stdy1.dicid = jrec->dicid;
stdy.stdy1.nmflg = 0; stdy.stdy1.nmflg = 0;
} }
stdy.stdy1.sttkj = krec -> sttkj; stdy.stdy1.sttkj = krec->sttkj;
stdy.stdy1.ka_kj = krec -> ka_kj; stdy.stdy1.ka_kj = krec->ka_kj;
stdy.hinshi = jrec -> hinsi; stdy.hinshi = jrec->hinsi;
stdy.len = jrec -> jlen; stdy.len = jrec->jlen;
stdy.sttfg = krec -> sttfg; stdy.sttfg = krec->sttfg;
stdy.ka_fg = krec -> ka_fg; stdy.ka_fg = krec->ka_fg;
if(jrec->stbofs && (fptr = getstb(jrec->hinsi)))
stdy.len -= StbYomiLen(fptr + jrec->stbofs - 1);
if (jrec -> stbofs && (fptr = getstb(jrec -> hinsi))) if(fptr = Settou_ptr(jrec->sttofs))
stdy.len -= StbYomiLen(fptr + jrec -> stbofs - 1);
if (fptr = Settou_ptr(jrec -> sttofs))
stdy.sttlen = SttYomiLen(fptr); stdy.sttlen = SttYomiLen(fptr);
else else
stdy.sttlen = 0; stdy.sttlen = 0;
memcpy(kanjitmp, (u_char*)&stdy, sizeof(STDYOUT));
memcpy(kanjitmp, (u_char *)&stdy, sizeof(STDYOUT));
kanjitmp += sizeof(STDYOUT); kanjitmp += sizeof(STDYOUT);
} }

View file

@ -33,76 +33,67 @@
* $SonyDate: 1994/06/03 08:01:42 $ * $SonyDate: 1994/06/03 08:01:42 $
*/ */
#include <string.h> #include <string.h>
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int del_douon(TypeDicSeg, u_char *, TypeDicOfs); static int del_douon(TypeDicSeg, u_char*, TypeDicOfs);
static int del_segment(TypeDicSeg); static int del_segment(TypeDicSeg);
static void del_uidx(TypeDicSeg); static void del_uidx(TypeDicSeg);
static void del_stdy(TypeDicSeg, TypeDicOfs, int); static void del_stdy(TypeDicSeg, TypeDicOfs, int);
u_int deldic(u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1];
u_short err;
int knjlen;
TypeDicSeg useg;
TypeDicOfs ofs;
u_char * p1, *p2, *p3;
int dblknum;
int hblknum;
int kblknum;
int samlen;
u_char * stp, *edp;
int size, len;
u_int if(err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))
deldic(u_char *yomi, u_char *kanji, TypeGram hinsi)
{
u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1];
u_short err;
int knjlen;
TypeDicSeg useg;
TypeDicOfs ofs;
u_char *p1, *p2, *p3;
int dblknum;
int hblknum;
int kblknum;
int samlen;
u_char *stp, *edp;
int size, len;
if (err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr)))
return err; return err;
if (!curdict -> maxunit) return AD_NOTUSERDICT; if(!curdict->maxunit) return AD_NOTUSERDICT;
knjlen = cvtknj(yomi, kanji, kptr); knjlen = cvtknj(yomi, kanji, kptr);
cnvstart = yptr; cnvstart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
useg = srchidx((TypeDicSeg)DICSEGBASE, cnvlen); useg = srchidx((TypeDicSeg)DICSEGBASE, cnvlen);
(*curdict->getdic)(curdict, useg); (*curdict->getdic)(curdict, useg);
if (!(dblknum = srchkana(&p1, &samlen))) return AD_NOMIDASI; if(!(dblknum = srchkana(&p1, &samlen))) return AD_NOMIDASI;
if (!(hblknum = srchgram(p1, &p2, hinsi))) return AD_NOHINSI; if(!(hblknum = srchgram(p1, &p2, hinsi))) return AD_NOHINSI;
p3 = p2; p3 = p2;
kblknum = srchkanji(&p3, kptr, knjlen); kblknum = srchkanji(&p3, kptr, knjlen);
if (*p3 == HINSIBLKTERM) return AD_NOKANJI; if(*p3 == HINSIBLKTERM) return AD_NOKANJI;
ofs = p3 - dicbuf; ofs = p3 - dicbuf;
edp = skipkstr(p3); edp = skipkstr(p3);
if (kblknum == 1) { if(kblknum == 1) {
if (hblknum == 1) { if(hblknum == 1) {
if (dblknum == 1) { if(dblknum == 1) {
return del_segment(useg); return del_segment(useg);
} } else {
else {
return del_douon(useg, p1, ofs); return del_douon(useg, p1, ofs);
} }
} } else {
else {
stp = p2; stp = p2;
edp++; edp++;
} }
} } else {
else {
stp = p3; stp = p3;
} }
@ -115,7 +106,7 @@ deldic(u_char *yomi, u_char *kanji, TypeGram hinsi)
memset(edp, DICSEGTERM, dicbuf + curdict->seglen - edp); memset(edp, DICSEGTERM, dicbuf + curdict->seglen - edp);
set_size(p1, (int)(getsize(p1) - size), set_size(p1, (int)(getsize(p1) - size),
(int)getplen(p1), (int)getnlen(p1)); (int)getplen(p1), (int)getnlen(p1));
(*curdict->putdic)(curdict, useg); (*curdict->putdic)(curdict, useg);
@ -124,30 +115,25 @@ deldic(u_char *yomi, u_char *kanji, TypeGram hinsi)
return AD_DONE; return AD_DONE;
} }
static int static int
del_douon(TypeDicSeg seg, u_char *ptr, TypeDicOfs ofs) del_douon(TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
{ u_char *nxt, *p1, *p2;
u_char *nxt, *p1, *p2;
int size; int size;
int nlen, plen, len; int nlen, plen, len;
nxt = getntag(ptr); nxt = getntag(ptr);
if (segend(nxt)) { if(segend(nxt)) {
size = nxt - ptr; size = nxt - ptr;
memset(ptr, DICSEGTERM, dicbuf + curdict->seglen - nxt); memset(ptr, DICSEGTERM, dicbuf + curdict->seglen - nxt);
} } else {
else {
size = getsize(nxt); size = getsize(nxt);
nlen = getnlen(nxt); nlen = getnlen(nxt);
plen = getplen(nxt); plen = getplen(nxt);
if (ptr == segtop()) { if(ptr == segtop()) {
if (nlen + plen > (unsigned int) count_uidx() if(nlen + plen > (unsigned int)count_uidx() + sstrlen(get_idxptr(seg)))
+ sstrlen(get_idxptr(seg)))
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
} }
@ -163,7 +149,7 @@ del_douon(TypeDicSeg seg, u_char *ptr, TypeDicOfs ofs)
size = p1 - p2; size = p1 - p2;
memset(dicbuf + curdict->seglen - size, DICSEGTERM, size); memset(dicbuf + curdict->seglen - size, DICSEGTERM, size);
if (ptr == segtop()) { if(ptr == segtop()) {
chg_uidx(seg, ptr + DOUONBLKSIZENUMBER, nlen + len); chg_uidx(seg, ptr + DOUONBLKSIZENUMBER, nlen + len);
} }
} }
@ -175,25 +161,21 @@ del_douon(TypeDicSeg seg, u_char *ptr, TypeDicOfs ofs)
return AD_DONE; return AD_DONE;
} }
static int static int
del_segment(TypeDicSeg seg) del_segment(TypeDicSeg seg) {
{ int i;
int i; STDYIN* styp;
STDYIN *styp; TypeDicID dicid;
TypeDicID dicid; TypeStyNum stdynum;
TypeStyNum stdynum; TypeDicSeg sg;
TypeDicSeg sg;
if (curdict->segunit > 1) { if(curdict->segunit > 1) {
for (sg = seg + 1 ; sg < curdict->segunit ; sg++) { for(sg = seg + 1; sg < curdict->segunit; sg++) {
(*curdict->getdic)(curdict, sg); (*curdict->getdic)(curdict, sg);
(*curdict->putdic)(curdict, sg - 1); (*curdict->putdic)(curdict, sg - 1);
} }
curdict->segunit--; curdict->segunit--;
} } else {
else {
memset(dicbuf, DICSEGTERM, (int)curdict->seglen); memset(dicbuf, DICSEGTERM, (int)curdict->seglen);
dicbuf[0] = 0; dicbuf[0] = 0;
(*curdict->putdic)(curdict, DICSEGBASE); (*curdict->putdic)(curdict, DICSEGBASE);
@ -203,28 +185,28 @@ del_segment(TypeDicSeg seg)
del_uidx(seg); del_uidx(seg);
if (StudyExist()) { if(StudyExist()) {
dicid = curdict->dicid; dicid = curdict->dicid;
for (i = 0, styp = STUDYDICT ; i < STUDYCOUNT ; ) { for(i = 0, styp = STUDYDICT; i < STUDYCOUNT;) {
if (styp -> dicid != dicid) if(styp->dicid != dicid)
; ;
else if (styp -> seg > seg) else if(styp->seg > seg)
styp -> seg -= 1; styp->seg -= 1;
else if (styp -> seg < seg) else if(styp->seg < seg)
; ;
else { else {
stdynum = styp -> styno; stdynum = styp->styno;
STUDYCOUNT--; STUDYCOUNT--;
mvmemi((u_char *)(styp + 1), (u_char *)styp, mvmemi((u_char*)(styp + 1), (u_char*)styp,
sizeof(*styp) * (STUDYCOUNT - i)); sizeof(*styp) * (STUDYCOUNT - i));
continue; continue;
} }
i++; i++;
styp++; styp++;
} }
for (i = 0, styp = STUDYDICT ; i < STUDYCOUNT ; i++, styp++) for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++)
if (styp -> styno > stdynum) styp -> styno -= 1; if(styp->styno > stdynum) styp->styno -= 1;
putstydic(); putstydic();
} }
@ -232,17 +214,13 @@ del_segment(TypeDicSeg seg)
return AD_DONE; return AD_DONE;
} }
static void static void
del_uidx(TypeDicSeg seg) del_uidx(TypeDicSeg seg) {
{ u_char *p, *q;
u_char *p, *q;
int len; int len;
p = get_idxptr(seg); p = get_idxptr(seg);
for (q = p ; *q++; ) for(q = p; *q++;);
;
mvmemi(q, p, idxbuf + curdict->idxlen - q); mvmemi(q, p, idxbuf + curdict->idxlen - q);
@ -254,41 +232,38 @@ del_uidx(TypeDicSeg seg)
mkidxtbl(curdict); mkidxtbl(curdict);
} }
static void static void
del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) {
{ int i;
int i; TypeStyNum stdynum;
TypeStyNum stdynum; STDYIN* stdy;
STDYIN *stdy; TypeDicID dicid;
TypeDicID dicid;
if (StudyExist()) { if(StudyExist()) {
stdynum = 0; stdynum = 0;
dicid = curdict->dicid; dicid = curdict->dicid;
for (i = 0, stdy = STUDYDICT ; i < STUDYCOUNT ; ) { for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT;) {
if (stdy -> dicid != dicid) if(stdy->dicid != dicid)
; ;
else if (stdy -> seg != seg) else if(stdy->seg != seg)
; ;
else if (stdy -> offset > ofs) else if(stdy->offset > ofs)
stdy -> offset -= size; stdy->offset -= size;
else if (stdy -> offset == ofs) { else if(stdy->offset == ofs) {
stdynum = stdy -> styno; stdynum = stdy->styno;
STUDYCOUNT--; STUDYCOUNT--;
mvmemi((u_char *)(stdy + 1), (u_char *)stdy, mvmemi((u_char*)(stdy + 1), (u_char*)stdy,
sizeof(*stdy) * (STUDYCOUNT - i)); sizeof(*stdy) * (STUDYCOUNT - i));
continue; continue;
} }
i++; i++;
stdy++; stdy++;
} }
for (i = 0, stdy = STUDYDICT ; i < STUDYCOUNT ; i++, stdy++) for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++)
if (stdy -> styno > stdynum) (stdy -> styno)--; if(stdy->styno > stdynum) (stdy->styno)--;
putstydic(); putstydic();
} }

View file

@ -33,21 +33,15 @@
* $SonyDate: 1994/06/03 08:01:45 $ * $SonyDate: 1994/06/03 08:01:45 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void get_askknj() {
void u_char* p;
get_askknj() u_char* q;
{ u_char* r;
u_char *p;
u_char *q;
u_char *r;
int i = 0, csize; int i = 0, csize;
int flg; int flg;
@ -55,34 +49,30 @@ get_askknj()
q += *p++; q += *p++;
while (p < q) { while(p < q) {
askknj[i] = p; askknj[i] = p;
r = NULL; r = NULL;
flg = TRUE; flg = TRUE;
do { do {
csize = codesize(*p); csize = codesize(*p);
if (p[csize] == KANJISTREND) flg = FALSE; if(p[csize] == KANJISTREND) flg = FALSE;
if (!r && (*p != AIATTRIBUTE)) if(!r && (*p != AIATTRIBUTE))
r = p; r = p;
p += csize; p += csize;
} while (flg); } while(flg);
p++; p++;
askknj_k[i++] = r; askknj_k[i++] = r;
} }
} }
int seldict(TypeDicID id) {
DICTL* dp;
for(dp = dictlist; dp; dp = dp->next) {
int if((curdict = dp->dict)->dicid == id)
seldict(TypeDicID id)
{
DICTL *dp;
for (dp = dictlist ; dp ; dp = dp -> next) {
if ((curdict = dp -> dict) -> dicid == id)
return TRUE; return TRUE;
} }
curdict = NULL; curdict = NULL;
@ -90,11 +80,8 @@ seldict(TypeDicID id)
return FALSE; return FALSE;
} }
u_char*
get_idxptr(TypeDicSeg seg) {
u_char *
get_idxptr(TypeDicSeg seg)
{
(*curdict->getofs)(curdict); (*curdict->getofs)(curdict);
(*curdict->getidx)(curdict); (*curdict->getidx)(curdict);

View file

@ -33,49 +33,39 @@
* $SonyDate: 1994/06/03 08:01:46 $ * $SonyDate: 1994/06/03 08:01:46 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
VFunc cvtnum_func[] = { VFunc cvtnum_func[] = {
num_type00, num_type01, num_type02, num_type03, num_type00, num_type01, num_type02, num_type03,
num_type04, num_type05, num_type06, num_type07, num_type04, num_type05, num_type06, num_type07,
num_type08, num_type09, num_type10, num_type11, num_type08, num_type09, num_type10, num_type11,
num_type12, num_type13, num_type14 num_type12, num_type13, num_type14};
};
UCPFunc getkan_func[] = { UCPFunc getkan_func[] = {
getkan_norm, getkan_norm, getkan_hira, getkan_kata, getkan_norm, getkan_norm, getkan_hira, getkan_kata,
getkan_knj, getkan_ofs, getkan_norm, getkan_none, getkan_knj, getkan_ofs, getkan_norm, getkan_none,
getkan_norm, getkan_norm, getkan_hira, getkan_kata, getkan_norm, getkan_norm, getkan_hira, getkan_kata,
getkan_knj, getkan_ofs, getkan_norm, getkan_none getkan_knj, getkan_ofs, getkan_norm, getkan_none};
};
IFunc setjrec_func[] = { IFunc setjrec_func[] = {
setj_norm2, setj_norm2, setj_norm1, setj_norm1, setj_norm2, setj_norm2, setj_norm1, setj_norm1,
setj_knj, setj_ofs, setj_norm2, setj_atrb, setj_knj, setj_ofs, setj_norm2, setj_atrb,
setj_norm2, setj_norm2, setj_norm1, setj_norm1, setj_norm2, setj_norm2, setj_norm1, setj_norm1,
setj_knj, setj_ofs, setj_norm2, setj_atrb setj_knj, setj_ofs, setj_norm2, setj_atrb};
};
IFunc hiraknj_func[] = { IFunc hiraknj_func[] = {
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask, hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb, hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb,
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask, hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb};
};
u_char *makekan_1byte(), *makekan_knj(), *makekan_ofs();
u_char *makekan_norm(), *makekan_none();
u_char *makekan_1byte(), *makekan_knj(), *makekan_ofs(); UCPFunc makekan_func[] = {
u_char *makekan_norm(), *makekan_none(); makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
UCPFunc makekan_func[] = { makekan_knj, makekan_ofs, makekan_norm, makekan_none,
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte, makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
makekan_knj, makekan_ofs, makekan_norm, makekan_none, makekan_knj, makekan_ofs, makekan_norm, makekan_none};
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
makekan_knj, makekan_ofs, makekan_norm, makekan_none
};

View file

@ -33,10 +33,6 @@
* $SonyDate: 1994/06/03 08:01:47 $ * $SonyDate: 1994/06/03 08:01:47 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
#include "sj_right.h" #include "sj_right.h"
@ -45,31 +41,30 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
fzkstrcmp(u_char *yptr, u_char *fzkp, int *saml) fzkstrcmp(u_char* yptr, u_char* fzkp, int* saml) {
{ int asklen, nkrlen;
int asklen, nkrlen;
asklen = FzkAskLen(fzkp); asklen = FzkAskLen(fzkp);
if (*saml < asklen) return CONT; if(*saml < asklen) return CONT;
if (*saml > asklen) return OVER; if(*saml > asklen) return OVER;
nkrlen = FzkNkrLen(fzkp); nkrlen = FzkNkrLen(fzkp);
yptr += asklen; yptr += asklen;
fzkp ++; fzkp++;
while (nkrlen--) { while(nkrlen--) {
if (*yptr > *fzkp) if(*yptr > *fzkp)
return CONT; return CONT;
else if (*yptr < *fzkp) { else if(*yptr < *fzkp) {
if (!*yptr) return PARTLY; if(!*yptr) return PARTLY;
return OVER; return OVER;
} }
else{ else {
yptr++; yptr++;
fzkp++; fzkp++;
(*saml)++; (*saml)++;
@ -79,98 +74,90 @@ fzkstrcmp(u_char *yptr, u_char *fzkp, int *saml)
return MATCH; return MATCH;
} }
void setclrec(JREC* jrec, u_char* yptr, TypeCnct right) {
CLREC* new;
TypeGram hinsi;
int len;
if(!(len = yptr - cnvstart)) return;
void if(len > MAXCLINPUTLEN) return;
setclrec(JREC *jrec, u_char *yptr, TypeCnct right)
{
CLREC *new;
TypeGram hinsi;
int len;
if (!(len = yptr - cnvstart)) return; if(!(new = argclrec(len))) return;
if (len > MAXCLINPUTLEN) return; new->jnode = jrec;
new->gobiln = gobilen;
new->right = right;
new->fzk_ka = fzk_ka_flg;
(jrec->count)++;
if (!(new = argclrec(len))) return; hinsi = jrec->hinsi;
new -> jnode = jrec; if(hinsi >= DO_SAHEN && hinsi <= SP_KA_ONB)
new -> gobiln = gobilen; new->kubun = K_DOUSHI;
new -> right = right;
new -> fzk_ka = fzk_ka_flg;
(jrec -> count)++;
hinsi = jrec -> hinsi; else if((hinsi >= KEIYOUSI_1 && hinsi <= KE_DOUSI_9) ||
(hinsi == SP_KEIYOUSI)) {
if (hinsi >= DO_SAHEN && hinsi <= SP_KA_ONB)
new -> kubun = K_DOUSHI;
else if ((hinsi >= KEIYOUSI_1 && hinsi <= KE_DOUSI_9) ||
(hinsi == SP_KEIYOUSI)){
if(right == R_FZKMEISI) if(right == R_FZKMEISI)
new -> kubun = K_TAIGEN; new->kubun = K_TAIGEN;
else else
new -> kubun = K_YOUGEN; new->kubun = K_YOUGEN;
} }
else if (hinsi == RENTAISI) else if(hinsi == RENTAISI)
new -> kubun = K_RENTAISI; new->kubun = K_RENTAISI;
else if ((hinsi >= FUKUSI_1 && hinsi <= FUKUSI_9) || else if((hinsi >= FUKUSI_1 && hinsi <= FUKUSI_9) ||
(hinsi == SP_FUKUSI)) (hinsi == SP_FUKUSI))
new -> kubun = K_FUKUSI; new->kubun = K_FUKUSI;
else if (hinsi == SETUZOKU || hinsi==KANDOUSI || else if(hinsi == SETUZOKU || hinsi == KANDOUSI ||
hinsi == TANKANJI || hinsi==AISATU) hinsi == TANKANJI || hinsi == AISATU)
new -> kubun = K_SONOTA; new->kubun = K_SONOTA;
else if (gobilen) { else if(gobilen) {
if (hinsi >= MEISI_5 && hinsi <= MEISI_7) if(hinsi >= MEISI_5 && hinsi <= MEISI_7)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else if (hinsi == D_MEISI_4) else if(hinsi == D_MEISI_4)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else if (hinsi == SETUBI_7 || hinsi == SETUBI_8) else if(hinsi == SETUBI_7 || hinsi == SETUBI_8)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else if(hinsi == D_MEISI_5)
new->kubun = K_YOUGEN;
else if (hinsi == D_MEISI_5) else if(hinsi == SETUBI_5 || hinsi == SETUBI_6)
new -> kubun = K_YOUGEN; new->kubun = K_YOUGEN;
else if (hinsi == SETUBI_5 || hinsi == SETUBI_6)
new -> kubun = K_YOUGEN;
else else
new -> kubun = K_TAIGEN; new->kubun = K_TAIGEN;
} } else if(hinsi >= MEISI_5 && hinsi <= MEISI_7) {
else if (hinsi >= MEISI_5 && hinsi <= MEISI_7) { if(right >= R_I && right <= R_ITADAKE)
if (right >= R_I && right <= R_ITADAKE) new->kubun = K_DOUSHI;
new -> kubun = K_DOUSHI;
else if (right >= R_DESHI && right <= R_TAI) else if(right >= R_DESHI && right <= R_TAI)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else if (right >= R_NAI && right <= R_MEIREI2) else if(right >= R_NAI && right <= R_MEIREI2)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else if (right == R_TE2 || right == R_TERU) else if(right == R_TE2 || right == R_TERU)
new -> kubun = K_DOUSHI; new->kubun = K_DOUSHI;
else else
new -> kubun = K_TAIGEN; new->kubun = K_TAIGEN;
} } else
else new->kubun = K_TAIGEN;
new -> kubun = K_TAIGEN;
} }
static int static int
fzkcnct(TypeCnct right, TypeCnct left) fzkcnct(TypeCnct right, TypeCnct left) {
{ u_char* cncttbl;
u_char *cncttbl;
if (right && left) { if(right && left) {
cncttbl = Rigtadr(right); cncttbl = Rigtadr(right);
left--; left--;
if (cncttbl[left >> 3] << (left & 0x07) & 0x80) if(cncttbl[left >> 3] << (left & 0x07) & 0x80)
return TRUE; return TRUE;
} }
@ -178,92 +165,88 @@ fzkcnct(TypeCnct right, TypeCnct left)
} }
RECURS RECURS
void void srchfzk(JREC* jrec, u_char* yptr, TypeCnct right, int level) {
srchfzk(JREC *jrec, u_char *yptr, TypeCnct right, int level) u_char* fzk;
{ int len = 0;
u_char *fzk; int cmp;
int len = 0; u_char* next;
int cmp; FREC* fzkrec;
u_char *next; int i;
FREC *fzkrec; int nlen;
int i; TypeCnct rt;
int nlen;
TypeCnct rt;
if ((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return; if((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return;
if (terminate(right, yptr) && Chrtbl[*yptr] & FZK_KGU){ if(terminate(right, yptr) && Chrtbl[*yptr] & FZK_KGU) {
if (!level) fzk_ka_flg = 0; if(!level) fzk_ka_flg = 0;
yptr++; yptr++;
while (Chrtbl[*yptr] & FZK_KGU) yptr++; while(Chrtbl[*yptr] & FZK_KGU) yptr++;
setclrec(jrec, yptr, (TypeCnct)R_FZKKGU); setclrec(jrec, yptr, (TypeCnct)R_FZKKGU);
return; return;
} }
if (right == R_CUT) return; if(right == R_CUT) return;
if (!*yptr) return; if(!*yptr) return;
if (!(*yptr >= _XA && *yptr <= _NN)) return; if(!(*yptr >= _XA && *yptr <= _NN)) return;
fzkrec = fzktbl; fzkrec = fzktbl;
for (i = fzkcount ; i ; i--, fzkrec++) { for(i = fzkcount; i; i--, fzkrec++) {
if (yptr != fzkrec -> yomip) continue; if(yptr != fzkrec->yomip) continue;
fzk = fzkrec -> fzkp; fzk = fzkrec->fzkp;
len = FzkAskLen(fzk) + (nlen = FzkNkrLen(fzk)) + 1; len = FzkAskLen(fzk) + (nlen = FzkNkrLen(fzk)) + 1;
if (!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue; if(!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
if (!level) fzk_ka_flg = FzkStrKa(fzk); if(!level) fzk_ka_flg = FzkStrKa(fzk);
next = yptr + len; next = yptr + len;
if (terminate(rt = FzkRight(fzk), next)) { if(terminate(rt = FzkRight(fzk), next)) {
setclrec(jrec, next, rt); setclrec(jrec, next, rt);
} }
srchfzk(jrec, next, rt, level + 1); srchfzk(jrec, next, rt, level + 1);
} }
if (len) return; if(len) return;
if(!(fzk = Fzkadr(*yptr - _XA))) return;
if (!(fzk = Fzkadr(*yptr - _XA))) return;
yptr++; yptr++;
for ( ; *fzk != FZKEND ; fzk += nlen + (i ? 4 : 3)) { for(; *fzk != FZKEND; fzk += nlen + (i ? 4 : 3)) {
nlen = FzkNkrLen(fzk); nlen = FzkNkrLen(fzk);
i = FzkHasCode(fzk); i = FzkHasCode(fzk);
cmp = fzkstrcmp(yptr, fzk, &len); cmp = fzkstrcmp(yptr, fzk, &len);
if (cmp == OVER) if(cmp == OVER)
break; break;
else if (cmp == PARTLY) else if(cmp == PARTLY)
break; break;
else if ((cmp != MATCH) || isdpnd(*(yptr + len))) else if((cmp != MATCH) || isdpnd(*(yptr + len)))
continue; continue;
fzktbl[fzkcount].yomip = yptr - 1;
fzktbl[fzkcount].yomip = yptr - 1; fzktbl[fzkcount].fzkp = fzk;
fzktbl[fzkcount].fzkp = fzk;
fzkcount++; fzkcount++;
if (!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue; if(!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
if (!level) fzk_ka_flg = FzkStrKa(fzk); if(!level) fzk_ka_flg = FzkStrKa(fzk);
next = yptr + len; next = yptr + len;
if (terminate(rt = FzkRight(fzk), next)) { if(terminate(rt = FzkRight(fzk), next)) {
setclrec(jrec, next, rt); setclrec(jrec, next, rt);
} }

File diff suppressed because it is too large Load diff

View file

@ -33,64 +33,56 @@
* $SonyDate: 1994/06/03 08:01:49 $ * $SonyDate: 1994/06/03 08:01:49 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char *code2kanji(); static u_char* code2kanji();
u_char * u_char*
getkan_none(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_none(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{
return d; return d;
} }
u_char * u_char*
getkan_hira(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_hira(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{ int cnt, csize;
int cnt, csize;
csize = codesize(*s); csize = codesize(*s);
cnt = (*s & KANJICODEMASK) + 1; cnt = (*s & KANJICODEMASK) + 1;
if (flg && (s[csize] == KANJISTREND)) ym += (yl - cnt) * 2; if(flg && (s[csize] == KANJISTREND)) ym += (yl - cnt) * 2;
cnt *= 2; cnt *= 2;
while (cnt-- > 0) *d++ = *ym++; while(cnt-- > 0) *d++ = *ym++;
return d; return d;
} }
u_char * u_char*
getkan_kata(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_kata(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{ int cnt, csize;
int cnt, csize; u_char ch;
u_char ch;
csize = codesize(*s); csize = codesize(*s);
cnt = (*s & KANJICODEMASK) + 1; cnt = (*s & KANJICODEMASK) + 1;
if (flg && (s[csize] == KANJISTREND)) ym += (yl - cnt) * 2; if(flg && (s[csize] == KANJISTREND)) ym += (yl - cnt) * 2;
while (cnt-- > 0) { while(cnt-- > 0) {
if (*ym == 0xa4) { if(*ym == 0xa4) {
ch = *++ym; ch = *++ym;
if (0xa1 <= ch && ch <= 0xf3) { if(0xa1 <= ch && ch <= 0xf3) {
*d++ = 0xa5; *d++ = 0xa5;
} } else {
else {
*d++ = 0xa4; *d++ = 0xa4;
} }
*d++ = ch; *d++ = ch;
ym++; ym++;
} } else {
else {
*d++ = *ym++; *d++ = *ym++;
*d++ = *ym++; *d++ = *ym++;
} }
@ -99,104 +91,108 @@ getkan_kata(u_char *s, u_char *d, u_char *ym, int yl, int flg)
return d; return d;
} }
u_char * u_char*
getkan_knj(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_knj(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{
return code2kanji(askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg); return code2kanji(askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg);
} }
u_char*
getkan_ofs(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
u_char * return code2kanji(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
getkan_ofs(u_char *s, u_char *d, u_char *ym, int yl, int flg) d, ym, yl, flg);
{
return code2kanji(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, ym, yl, flg);
} }
u_char * u_char*
getkan_norm(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_norm(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{
u_char c; u_char c;
if (*s != 0) { if(*s != 0) {
c = s[1]; c = s[1];
if (c & 0x80) if(c & 0x80)
*d++ = SS3; *d++ = SS3;
*d++ = *s | 0x80; *d++ = *s | 0x80;
*d++ = c | 0x80; *d++ = c | 0x80;
} else { } else {
*d++ = *s; *d++ = *s;
} }
return d; return d;
} }
u_char * u_char*
getkan_ascii(u_char *s, u_char *d, u_char *ym, int yl, int flg) getkan_ascii(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{
u_char c; u_char c;
c = s[1]; c = s[1];
if (c & 0x80) if(c & 0x80)
*d++ = SS2; *d++ = SS2;
*d++ = c; *d++ = c;
return d; return d;
} }
static u_char * static u_char*
code2kanji(u_char *s, u_char *d, u_char *ym, int yl, int flg) code2kanji(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
{
int csize; int csize;
for ( ; ; ) { for(;;) {
csize = codesize(*s); csize = codesize(*s);
if (s[csize] == KANJISTREND) { if(s[csize] == KANJISTREND) {
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = getkan_hira(s, d, ym, yl, flg); break; d = getkan_hira(s, d, ym, yl, flg);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = getkan_kata(s, d, ym, yl, flg); break; d = getkan_kata(s, d, ym, yl, flg);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(s, d, ym, yl, flg); break; d = getkan_ofs(s, d, ym, yl, flg);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = getkan_none(s, d, ym, yl, flg); break; d = getkan_none(s, d, ym, yl, flg);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = getkan_ascii(s, d, ym, yl, flg); break; d = getkan_ascii(s, d, ym, yl, flg);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(s, d, ym, yl, flg); break; d = getkan_knj(s, d, ym, yl, flg);
break;
default: default:
d = getkan_norm(s, d, ym, yl, flg); d = getkan_norm(s, d, ym, yl, flg);
} }
break; break;
} } else
else
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = getkan_hira(s, d, ym, yl, FALSE); break; d = getkan_hira(s, d, ym, yl, FALSE);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = getkan_kata(s, d, ym, yl, FALSE); break; d = getkan_kata(s, d, ym, yl, FALSE);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(s, d, ym, yl, FALSE); break; d = getkan_ofs(s, d, ym, yl, FALSE);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = getkan_none(s, d, ym, yl, FALSE); break; d = getkan_none(s, d, ym, yl, FALSE);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = getkan_ascii(s, d, ym, yl, FALSE); break; d = getkan_ascii(s, d, ym, yl, FALSE);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(s, d, ym, yl, FALSE); break; d = getkan_knj(s, d, ym, yl, FALSE);
break;
default: default:
d = getkan_norm(s, d, ym, yl, FALSE); d = getkan_norm(s, d, ym, yl, FALSE);
} }
@ -206,15 +202,10 @@ code2kanji(u_char *s, u_char *d, u_char *ym, int yl, int flg)
return d; return d;
} }
int getkanji(u_char* ym, int yl, u_char* ptr, u_char* buf) {
u_char* q;
int
getkanji(u_char *ym, int yl, u_char *ptr, u_char *buf)
{
u_char *q;
q = code2kanji(ptr, buf, ym, yl, TRUE); q = code2kanji(ptr, buf, ym, yl, TRUE);
return q - buf; return q - buf;
} }

View file

@ -33,139 +33,104 @@
* $SonyDate: 1994/06/03 08:01:50 $ * $SonyDate: 1994/06/03 08:01:50 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void setstynum(), setnspr(), regetrank(); static void setstynum(), setnspr(), regetrank();
void void getrank() {
getrank()
{
trank = nrank = 1; trank = nrank = 1;
setstynum(); setstynum();
regetrank(); regetrank();
} }
static void static void
setstynum() setstynum() {
{ KHREC* kptr;
KHREC *kptr; STDYIN* sptr;
STDYIN *sptr;
int count; int count;
for(kptr = kouhotbl, count = khcount; count--; kptr++) {
for (kptr = kouhotbl, count = khcount ; count-- ; kptr++) { sptr = srchstdy(kptr->clrec->jnode->jseg, kptr->offs,
kptr->clrec->jnode->dicid);
sptr = srchstdy(kptr -> clrec -> jnode -> jseg, kptr -> offs,
kptr -> clrec -> jnode -> dicid);
if (!sptr) continue;
if(!sptr) continue;
setnspr(kptr, sptr); setnspr(kptr, sptr);
} }
} }
static void static void
setnspr(KHREC *kptr, STDYIN *sptr) setnspr(KHREC* kptr, STDYIN* sptr) {
{ KHREC* ptr;
KHREC *ptr; int keepnm;
int keepnm; TypeStyNum styno;
TypeStyNum styno;
styno = kptr -> styno = sptr -> styno;
styno = kptr->styno = sptr->styno;
keepnm = trank; keepnm = trank;
for(ptr = kouhotbl; ptr < kptr; ptr++) {
for (ptr = kouhotbl ; ptr < kptr ; ptr++) { if(styno < ptr->styno) {
if (styno < ptr -> styno) {
ptr -> rank++;
ptr->rank++;
keepnm--; keepnm--;
} }
else if(styno == ptr->styno) {
else if (styno == ptr -> styno) { if(kptr->sttfg && kptr->ka_fg) {
if((sptr->sttkj == kptr->sttkj) &&
if (kptr -> sttfg && kptr -> ka_fg) { (sptr->ka_kj == kptr->ka_kj)) {
ptr->rank++;
if ((sptr -> sttkj == kptr -> sttkj) &&
(sptr -> ka_kj == kptr -> ka_kj)) {
ptr -> rank++;
keepnm--; keepnm--;
} }
} }
else if (kptr -> sttfg) { else if(kptr->sttfg) {
if(sptr->sttkj == kptr->sttkj) {
if (sptr -> sttkj == kptr -> sttkj) { ptr->rank++;
ptr -> rank++;
keepnm--; keepnm--;
} }
} }
else if (kptr -> ka_fg) { else if(kptr->ka_fg) {
if(sptr->ka_kj == kptr->ka_kj) {
if (sptr -> ka_kj == kptr -> ka_kj) { ptr->rank++;
ptr -> rank++;
keepnm--; keepnm--;
} }
} }
} }
} }
kptr->rank = (u_char)keepnm;
kptr -> rank = (u_char)keepnm;
trank++; trank++;
if(keepnm <= nrank) nrank++;
if (keepnm <= nrank) nrank++; if(sptr->nmflg && (nrank > keepnm)) nrank = keepnm;
if (sptr -> nmflg && (nrank > keepnm)) nrank = keepnm;
} }
static void static void
regetrank() regetrank() {
{ KHREC* kptr;
KHREC *kptr; int count;
int count; int tmp;
int tmp;
if(nrank < trank) {
if (nrank < trank) {
tmp = nrank; tmp = nrank;
trank += nkhcount; trank += nkhcount;
} }
@ -173,19 +138,16 @@ regetrank()
nkhcount = tmp = 0; nkhcount = tmp = 0;
} }
for(count = khcount, kptr = kouhotbl; count--; kptr++) {
for (count = khcount, kptr = kouhotbl ; count-- ; kptr++) { if(!(kptr->rank)) {
if(tmp && kptr->mode && !(kptr->offs)) {
if (!(kptr -> rank)) { kptr->rank = (u_char)tmp++;
if (tmp && kptr -> mode && !(kptr -> offs)) { } else
kptr -> rank = (u_char)tmp++; kptr->rank = (u_char)trank++;
}
else
kptr -> rank = (u_char)trank++;
} }
else if((short)kptr->rank >= nrank)
else if ((short)kptr -> rank >= nrank) kptr->rank += (u_char)nkhcount;
kptr -> rank += (u_char)nkhcount;
} }
} }

View file

@ -33,8 +33,6 @@
* $SonyDate: 1994/12/09 11:27:06 $ * $SonyDate: 1994/12/09 11:27:06 $
*/ */
#include <stdio.h> #include <stdio.h>
#include <sys/types.h> #include <sys/types.h>
#include "sj_rename.h" #include "sj_rename.h"
@ -48,11 +46,10 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
Global *global_work_base; Global* global_work_base;
Global *work_base; Global* work_base;
STDY *stdy_base; STDY* stdy_base;
int serv_errno;
int serv_errno;

View file

@ -41,28 +41,24 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int euc_codesize(u_char c) {
euc_codesize(u_char c) if((c & KANJIMODEMASK) == 0x90) {
{
if ((c & KANJIMODEMASK) == 0x90) {
return 1; return 1;
} else if (isknj1(c)) { } else if(isknj1(c)) {
return 2; return 2;
} else if (c == SS3) { } else if(c == SS3) {
return 3; return 3;
} else { } else {
return 1; return 1;
} }
} }
int int hzstrlen(u_char* ptr, int len) {
hzstrlen(u_char *ptr, int len) u_char* head;
{
u_char *head;
head = ptr; head = ptr;
while (len-- > 0) ptr += euc_codesize(*ptr); while(len-- > 0) ptr += euc_codesize(*ptr);
return (ptr - head); return (ptr - head);
} }

View file

@ -33,40 +33,34 @@
* $SonyDate: 1994/06/03 08:01:54 $ * $SonyDate: 1994/06/03 08:01:54 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void seg_count(DICT* dict) {
seg_count(DICT *dict) u_char* p;
{ u_char* q;
u_char *p; TypeDicSeg segcnt = 0;
u_char *q;
TypeDicSeg segcnt = 0;
if (dict-> getidx) { if(dict->getidx) {
(*dict->getidx)(dict); (*dict->getidx)(dict);
p = idxbuf; p = idxbuf;
q = p + dict->idxlen; q = p + dict->idxlen;
while (p < q && *p) { while(p < q && *p) {
segcnt++; segcnt++;
while (*p++) ; while(*p++);
} }
} }
dict->segunit = (segcnt == 0) ? 1 : segcnt; dict->segunit = (segcnt == 0) ? 1 : segcnt;
} }
void void mkidxtbl(DICT* dict) {
mkidxtbl(DICT *dict) u_char* p;
{ TypeDicSeg seg;
u_char *p;
TypeDicSeg seg;
if (!dict->getidx || !dict->getofs) return; if(!dict->getidx || !dict->getofs) return;
seg = 0; seg = 0;
@ -74,16 +68,13 @@ mkidxtbl(DICT *dict)
(*dict->getofs)(dict); (*dict->getofs)(dict);
idxofs[0] = 0; idxofs[0] = 0;
for (p = idxbuf ; p < idxbuf + dict->idxlen && seg < dict->segunit ; ) { for(p = idxbuf; p < idxbuf + dict->idxlen && seg < dict->segunit;) {
idxofs[seg++] = p - idxbuf; idxofs[seg++] = p - idxbuf;
while (*p++) ; while(*p++);
} }
} }
void void initwork() {
initwork() jrt1st = jrt2nd = maxjptr = (JREC*)0;
{ clt1st = clt2nd = maxclptr = (CLREC*)0;
jrt1st = jrt2nd = maxjptr = (JREC *)0;
clt1st = clt2nd = maxclptr = (CLREC *)0;
} }

View file

@ -33,26 +33,22 @@
* $SonyDate: 1994/06/03 08:01:55 $ * $SonyDate: 1994/06/03 08:01:55 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_const.h" #include "sj_const.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int istrcmp(u_char* yomip, u_char* idxp, int ylen, int ilen) {
istrcmp(u_char *yomip, u_char *idxp, int ylen, int ilen) for(;;) {
{
for (;;) {
if ((ilen | ylen) == 0) return MATCH; if((ilen | ylen) == 0) return MATCH;
if (ilen == 0) return UNDER; if(ilen == 0) return UNDER;
if ((ylen == 0) || (*yomip < *idxp)) return OVER; if((ylen == 0) || (*yomip < *idxp)) return OVER;
if (*yomip > *idxp) return UNDER; if(*yomip > *idxp) return UNDER;
yomip++; yomip++;
idxp++; idxp++;
@ -60,4 +56,3 @@ istrcmp(u_char *yomip, u_char *idxp, int ylen, int ilen)
ilen--; ilen--;
} }
} }

View file

@ -33,28 +33,24 @@
* $SonyDate: 1994/06/03 08:01:58 $ * $SonyDate: 1994/06/03 08:01:58 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
JREC * JREC* free_jlst(JREC* p) {
free_jlst(JREC *p) JREC* jpk;
{ JREC* jp;
JREC *jpk; JREC* jn;
JREC *jp;
JREC *jn;
jp = NULL; jp = NULL;
for ( ; p ; p = jn) { for(; p; p = jn) {
jn = p -> jsort; jn = p->jsort;
if (p -> count) { if(p->count) {
if (jp) if(jp)
jp -> jsort = p; jp->jsort = p;
else else
jpk = p; jpk = p;
jp = p; jp = p;
@ -65,36 +61,33 @@ free_jlst(JREC *p)
} }
} }
if (jp) jp -> jsort = NULL; if(jp) jp->jsort = NULL;
return jpk; return jpk;
} }
CLREC * CLREC*
free_clst(CLREC *p, int l) free_clst(CLREC* p, int l) {
{ CLREC* cpk;
CLREC *cpk; CLREC* cp;
CLREC *cp; CLREC* cn;
CLREC *cn;
cp = cpk = NULL; cp = cpk = NULL;
for ( ; p ; p = cn) { for(; p; p = cn) {
cn = p -> clsort; cn = p->clsort;
if ((int)p -> cllen == l) { if((int)p->cllen == l) {
if (p == selcl) { if(p == selcl) {
if (cp) { if(cp) {
p -> clsort = cpk; p->clsort = cpk;
cpk = p; cpk = p;
} } else
else
cpk = cp = p; cpk = cp = p;
} } else {
else { if(cp)
if (cp) cp->clsort = p;
cp -> clsort = p;
else else
cpk = p; cpk = p;
cp = p; cp = p;
@ -102,49 +95,42 @@ free_clst(CLREC *p, int l)
} }
else { else {
(p -> jnode -> count)--; (p->jnode->count)--;
free_clrec(p); free_clrec(p);
} }
} }
if (cp) cp -> clsort = NULL; if(cp) cp->clsort = NULL;
return cpk; return cpk;
} }
void void free_clall(CLREC* p) {
free_clall(CLREC *p) CLREC* next;
{
CLREC *next;
while (p) { while(p) {
(p -> jnode -> count)--; (p->jnode->count)--;
next = p -> clsort; next = p->clsort;
free_clrec(p); free_clrec(p);
p = next; p = next;
} }
} }
void void free_jall(JREC* p) {
free_jall(JREC *p) JREC* next;
{
JREC *next;
while (p) { while(p) {
next = p -> jsort; next = p->jsort;
free_jrec(p); free_jrec(p);
p = next; p = next;
} }
} }
void void freework() {
freework()
{
free_clall(maxclptr); free_clall(maxclptr);
clt1st = maxclptr = NULL; clt1st = maxclptr = NULL;
free_jall(maxjptr); free_jall(maxjptr);
jrt1st = maxjptr = NULL; jrt1st = maxjptr = NULL;
} }

View file

@ -33,42 +33,37 @@
* $SonyDate: 1994/06/03 08:02:00 $ * $SonyDate: 1994/06/03 08:02:00 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_right.h" #include "sj_right.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
set2nd(CLREC *clrec) set2nd(CLREC* clrec) {
{
CLREC *rec2; CLREC* rec2;
mkjiritu(DO_IKKATU | DO_CLSTUDY); mkjiritu(DO_IKKATU | DO_CLSTUDY);
mkbunsetu(); mkbunsetu();
if (!maxclptr) { if(!maxclptr) {
wakachi(); wakachi();
return clrec -> cllen; return clrec->cllen;
} }
for (rec2 = maxclptr ; rec2 ; rec2 = rec2 -> clsort) { for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) {
if (terminate(rec2->right, cnvstart+rec2->cllen) != SHU) if(terminate(rec2->right, cnvstart + rec2->cllen) != SHU)
break; break;
} }
return rec2 ? (clrec -> cllen + rec2 -> cllen) : (clrec -> cllen); return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen);
} }
void void mk2claus() {
mk2claus() u_char* keepptr;
{
u_char *keepptr;
int keeplen; int keeplen;
CLREC *clrec; CLREC* clrec;
int len; int len;
int save2ln; int save2ln;
int prty; int prty;
@ -79,16 +74,16 @@ mk2claus()
prty = maxprty = prty2 = 0; prty = maxprty = prty2 = 0;
clt2nd = maxclptr = NULL; clt2nd = maxclptr = NULL;
jrt2nd = maxjptr = NULL; jrt2nd = maxjptr = NULL;
selcl = clt1st; selcl = clt1st;
if (selcl -> right == R_FZKKGU) { if(selcl->right == R_FZKKGU) {
pritiny(); pritiny();
return; return;
} }
if (cnvlen == selcl -> cllen) { if(cnvlen == selcl->cllen) {
pritiny(); pritiny();
return; return;
} }
@ -97,13 +92,13 @@ mk2claus()
keeplen = cnvlen; keeplen = cnvlen;
len = count = 0; len = count = 0;
for (clrec = selcl ; clrec && count < 5 ; clrec = clrec -> clsort) { for(clrec = selcl; clrec && count < 5; clrec = clrec->clsort) {
cnvstart = keepptr + clrec -> cllen; cnvstart = keepptr + clrec->cllen;
cnvlen = keeplen - clrec -> cllen; cnvlen = keeplen - clrec->cllen;
if (len != clrec -> cllen) { if(len != clrec->cllen) {
if (clt2nd != maxclptr) { if(clt2nd != maxclptr) {
free_clall(maxclptr); free_clall(maxclptr);
free_jall(maxjptr); free_jall(maxjptr);
} }
@ -111,37 +106,37 @@ mk2claus()
save2ln = set2nd(clrec); save2ln = set2nd(clrec);
count++; count++;
len = clrec -> cllen; len = clrec->cllen;
prty2 = 0; prty2 = 0;
} }
if (Termtbl[clrec -> right] & T_SHUUJO) if(Termtbl[clrec->right] & T_SHUUJO)
clrec -> cl2len = (u_char)len; clrec->cl2len = (u_char)len;
else else
clrec -> cl2len = (u_char)save2ln; clrec->cl2len = (u_char)save2ln;
if (selcl -> cl2len > clrec -> cl2len) continue; if(selcl->cl2len > clrec->cl2len) continue;
prty = priority(clrec) - prty2; prty = priority(clrec) - prty2;
prty2++; prty2++;
if (selcl -> cl2len == clrec -> cl2len) { if(selcl->cl2len == clrec->cl2len) {
if (clrec -> cllen == nextcllen) { if(clrec->cllen == nextcllen) {
if (selcl -> cllen != nextcllen) if(selcl->cllen != nextcllen)
; ;
else if (prty <= maxprty) else if(prty <= maxprty)
continue; continue;
} }
else if (prty <= maxprty) else if(prty <= maxprty)
continue; continue;
} }
selcl = clrec; selcl = clrec;
maxprty = prty; maxprty = prty;
if (clt2nd == maxclptr) continue; if(clt2nd == maxclptr) continue;
free_clall(clt2nd); free_clall(clt2nd);
free_jall(jrt2nd); free_jall(jrt2nd);
@ -149,14 +144,13 @@ mk2claus()
clt2nd = maxclptr; clt2nd = maxclptr;
} }
if (clt2nd != maxclptr) { if(clt2nd != maxclptr) {
free_clall(maxclptr); free_clall(maxclptr);
maxclptr = NULL; maxclptr = NULL;
free_jall(maxjptr); free_jall(maxjptr);
maxjptr = NULL; maxjptr = NULL;
} }
cnvstart = keepptr; cnvstart = keepptr;
cnvlen = keeplen; cnvlen = keeplen;
} }

View file

@ -33,24 +33,20 @@
* $SonyDate: 1994/06/03 08:02:02 $ * $SonyDate: 1994/06/03 08:02:02 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void mkbunsetu() {
mkbunsetu() JREC* jrec;
{ TypeGram hinsi;
JREC *jrec; u_char* cnj;
TypeGram hinsi; CREC crec[4];
u_char *cnj; int count;
CREC crec[4]; TypeCnct right;
int count; u_char* next;
TypeCnct right; int i;
u_char *next;
int i;
fzkcount = 0; fzkcount = 0;
@ -58,18 +54,18 @@ mkbunsetu()
jrec = maxjptr; jrec = maxjptr;
while (jrec) { while(jrec) {
if (jrec -> stbofs && (cnj = getstb(jrec -> hinsi))) if(jrec->stbofs && (cnj = getstb(jrec->hinsi)))
hinsi = StbHinsi(cnj + jrec -> stbofs - 1); hinsi = StbHinsi(cnj + jrec->stbofs - 1);
else else
hinsi = jrec -> hinsi; hinsi = jrec->hinsi;
if (right = Connadr[hinsi]) { if(right = Connadr[hinsi]) {
gobilen = 0; gobilen = 0;
next = cnvstart + jrec->jlen; next = cnvstart + jrec->jlen;
if (terminate(right, next)) { if(terminate(right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(jrec, next, right); setclrec(jrec, next, right);
} }
@ -77,15 +73,15 @@ mkbunsetu()
srchfzk(jrec, next, right, 0); srchfzk(jrec, next, right, 0);
} }
else if (count = setconj(hinsi, jrec, crec)) { else if(count = setconj(hinsi, jrec, crec)) {
for (i = count ; i-- > 0 ; ) { for(i = count; i-- > 0;) {
right = crec[i].right; right = crec[i].right;
gobilen = crec[i].len; gobilen = crec[i].len;
next = cnvstart + jrec->jlen + gobilen; next = cnvstart + jrec->jlen + gobilen;
if (terminate(right, next)) { if(terminate(right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(jrec, next, right); setclrec(jrec, next, right);
} }
@ -94,73 +90,68 @@ mkbunsetu()
} }
} }
jrec = jrec -> jsort; jrec = jrec->jsort;
} }
} }
CLREC*
CLREC * argclrec(int len) {
argclrec(int len) CLREC* ptr;
{ CLREC* rec;
CLREC *ptr; CLREC* child;
CLREC *rec;
CLREC *child;
rec = alloc_clrec(); rec = alloc_clrec();
if (!rec) { if(!rec) {
if (!maxclptr) if(!maxclptr)
return NULL; return NULL;
ptr = NULL; ptr = NULL;
rec = maxclptr; rec = maxclptr;
while (child = rec -> clsort) { while(child = rec->clsort) {
ptr = rec; ptr = rec;
rec = child; rec = child;
} }
if (len <= (int) rec -> cllen) if(len <= (int)rec->cllen)
return NULL; return NULL;
if (ptr) if(ptr)
ptr -> clsort = NULL; ptr->clsort = NULL;
else else
maxclptr = NULL; maxclptr = NULL;
if (rec -> jnode) (rec -> jnode)--; if(rec->jnode) (rec->jnode)--;
} }
memset((u_char *)rec, 0, sizeof(*rec)); memset((u_char*)rec, 0, sizeof(*rec));
rec -> cllen = rec -> cl2len = (u_char)len; rec->cllen = rec->cl2len = (u_char)len;
if (!maxclptr) { if(!maxclptr) {
maxclptr = rec; maxclptr = rec;
return rec; return rec;
} }
ptr = maxclptr; ptr = maxclptr;
if (((int)ptr -> cllen < len) || if(((int)ptr->cllen < len) ||
(((int)ptr -> cllen == len) && (((int)ptr->cllen == len) &&
(ptr -> jnode -> hinsi == TANKANJI))) { (ptr->jnode->hinsi == TANKANJI))) {
rec -> clsort = maxclptr; rec->clsort = maxclptr;
maxclptr = rec; maxclptr = rec;
return rec; return rec;
} }
while (child = ptr -> clsort) { while(child = ptr->clsort) {
if ((int)child -> cllen < len || if((int)child->cllen < len ||
((int)child -> cllen == len && ((int)child->cllen == len &&
child->jnode->hinsi == TANKANJI)){ child->jnode->hinsi == TANKANJI)) {
ptr -> clsort = rec; ptr->clsort = rec;
rec -> clsort = child; rec->clsort = child;
return rec; return rec;
} } else
else
ptr = child; ptr = child;
} }
ptr->clsort = rec;
ptr -> clsort = rec;
return rec; return rec;
} }

View file

@ -33,21 +33,18 @@
* $SonyDate: 1994/06/03 08:02:03 $ * $SonyDate: 1994/06/03 08:02:03 $
*/ */
#include <string.h> #include <string.h>
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void dic_mu(), dic_cl(); static void dic_mu(), dic_cl();
void void mkjiritu(int mode) {
mkjiritu(int mode)
{
u_char chkind1; u_char chkind1;
u_char chkind2; u_char chkind2;
JREC *jrec; JREC* jrec;
u_char *stb; u_char* stb;
headcode = headlen = 0; headcode = headlen = 0;
@ -55,25 +52,25 @@ mkjiritu(int mode)
chkind1 = Chrtbl[*cnvstart]; chkind1 = Chrtbl[*cnvstart];
if (chkind1 & DICTOP) { if(chkind1 & DICTOP) {
dic_mu(mode); dic_mu(mode);
} }
if (mode & DO_CLSTUDY) dic_cl(); if(mode & DO_CLSTUDY) dic_cl();
srchnum(); srchnum();
if (srchhead() && cnvlen != headlen) { if(srchhead() && cnvlen != headlen) {
cnvstart += headlen; cnvstart += headlen;
cnvlen -= headlen; cnvlen -= headlen;
chkind2 = Chrtbl[*cnvstart]; chkind2 = Chrtbl[*cnvstart];
if (chkind2 & DICTOP) { if(chkind2 & DICTOP) {
dic_mu(mode); dic_mu(mode);
} }
if (headcode == SETTOU_DAI) { if(headcode == SETTOU_DAI) {
srchnum(); srchnum();
} }
@ -81,109 +78,105 @@ mkjiritu(int mode)
cnvlen += headlen; cnvlen += headlen;
} }
for (jrec = maxjptr ; jrec ; jrec = jrec -> jsort) { for(jrec = maxjptr; jrec; jrec = jrec->jsort) {
if (stb = getstb(jrec -> hinsi)) if(stb = getstb(jrec->hinsi))
setubi(jrec, stb); setubi(jrec, stb);
} }
} }
static void static void
dic_mu(int mode) dic_mu(int mode) {
{ u_char* tagp;
u_char *tagp; DICTL* dp;
DICTL *dp;
for (dp = dictlist ; dp ; dp = dp -> next) { for(dp = dictlist; dp; dp = dp->next) {
curdict = dp -> dict; curdict = dp->dict;
dicinl = 1; dicinl = 1;
dicsaml = 0; dicsaml = 0;
prevseg = -1; prevseg = -1;
while (tagp = srchdict(tagp)) setjrec(tagp, mode); while(tagp = srchdict(tagp)) setjrec(tagp, mode);
} }
} }
JREC * JREC* argjrec(int len, JREC* rec) {
argjrec(int len, JREC *rec) JREC* ptr;
{ JREC* jrec;
JREC *ptr; JREC* child;
JREC *jrec;
JREC *child;
jrec = alloc_jrec(); jrec = alloc_jrec();
if (!jrec) { if(!jrec) {
if (!maxjptr) return NULL; if(!maxjptr) return NULL;
ptr = NULL; ptr = NULL;
jrec = maxjptr; jrec = maxjptr;
while (child = jrec -> jsort) { while(child = jrec->jsort) {
ptr = jrec; ptr = jrec;
jrec = child; jrec = child;
} }
if (len <= (int) jrec -> jlen) return NULL; if(len <= (int)jrec->jlen) return NULL;
if (ptr) if(ptr)
ptr -> jsort = NULL; ptr->jsort = NULL;
else else
maxjptr = NULL; maxjptr = NULL;
} }
if (rec) if(rec)
memcpy((u_char *)jrec, (u_char *)rec, sizeof(JREC)); memcpy((u_char*)jrec, (u_char*)rec, sizeof(JREC));
else else
memset((u_char *)jrec, 0, sizeof(*jrec)); memset((u_char*)jrec, 0, sizeof(*jrec));
jrec -> jlen = (u_char)len; jrec->jlen = (u_char)len;
if (!maxjptr) { if(!maxjptr) {
maxjptr = jrec; maxjptr = jrec;
jrec -> jsort = NULL; jrec->jsort = NULL;
return jrec; return jrec;
} }
ptr = maxjptr; ptr = maxjptr;
if ((int)ptr -> jlen < len) { if((int)ptr->jlen < len) {
jrec -> jsort = maxjptr; jrec->jsort = maxjptr;
maxjptr = jrec; maxjptr = jrec;
return jrec; return jrec;
} }
while (child = ptr -> jsort) { while(child = ptr->jsort) {
if ((int)child -> jlen < len) break; if((int)child->jlen < len) break;
ptr = child; ptr = child;
} }
ptr -> jsort = jrec; ptr->jsort = jrec;
jrec -> jsort = child; jrec->jsort = child;
return jrec; return jrec;
} }
static void static void
dic_cl() dic_cl() {
{ u_char* p;
u_char *p; u_short pos;
u_short pos;
int len; int len;
int cmp; int cmp;
if (!StudyExist()) return; if(!StudyExist()) return;
if ((pos = CLSTUDYIDX[(short) *cnvstart / CLSTUDYSTEP]) != (u_short)-1) { if((pos = CLSTUDYIDX[(short)*cnvstart / CLSTUDYSTEP]) != (u_short)-1) {
for (p = CLSTUDYDICT + pos ; !iseocl(p) ; p = ClNextTag(p)) { for(p = CLSTUDYDICT + pos; !iseocl(p); p = ClNextTag(p)) {
cmp = sstrncmp(cnvstart, (u_char *)ClYomiPos(p), cmp = sstrncmp(cnvstart, (u_char*)ClYomiPos(p),
len = ClYomiLen(p)); len = ClYomiLen(p));
if (cmp == MATCH) { if(cmp == MATCH) {
if (!isdpnd(*(cnvstart + len))) { if(!isdpnd(*(cnvstart + len))) {
setcrec(p); setcrec(p);
} }
} }
else if (cmp == OVER) else if(cmp == OVER)
break; break;
} }
} }

View file

@ -33,9 +33,6 @@
* $SonyDate: 1994/06/03 08:02:04 $ * $SonyDate: 1994/06/03 08:02:04 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
@ -44,39 +41,34 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void getkhtbl(), cl_kanji(); static void getkhtbl(), cl_kanji();
static int diffknj(); static int diffknj();
static void cl_numcmn(); static void cl_numcmn();
static u_char *makekan(); static u_char* makekan();
void void mkkouho() {
mkkouho() CLREC* clrec;
{ int keeplen;
CLREC *clrec;
int keeplen;
khcount = nkhcount = 0; khcount = nkhcount = 0;
keeplen = clt1st -> cllen; keeplen = clt1st->cllen;
clrec = clt1st; clrec = clt1st;
do { do {
getkhtbl(clrec); getkhtbl(clrec);
clrec = clrec -> clsort; clrec = clrec->clsort;
} while (clrec && (keeplen == clrec -> cllen)); } while(clrec && (keeplen == clrec->cllen));
} }
static void static void
getkhtbl(CLREC *clrec) getkhtbl(CLREC* clrec) {
{ JREC* jrec;
JREC *jrec;
jrec = clrec -> jnode; jrec = clrec->jnode;
switch (jrec -> class) { switch(jrec->class) {
case C_DICT: case C_DICT:
cl_kanji(jrec, clrec); cl_kanji(jrec, clrec);
break; break;
@ -101,162 +93,148 @@ getkhtbl(CLREC *clrec)
} }
} }
static void static void
cl_kanji(JREC *jrec, CLREC *clrec) cl_kanji(JREC* jrec, CLREC* clrec) {
{ u_char* ptr;
u_char *ptr;
int kcount = khcount; int kcount = khcount;
if (seldict(jrec -> dicid)) { if(seldict(jrec->dicid)) {
(*curdict->getdic)(curdict, jrec -> jseg); (*curdict->getdic)(curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1; ptr = dicbuf + jrec->jofsst + 1;
get_askknj(); get_askknj();
while (*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if (diffknj(jrec, ptr, kcount)) { if(diffknj(jrec, ptr, kcount)) {
setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0); setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0);
} }
ptr = skipkstr(ptr); ptr = skipkstr(ptr);
} }
} } else {
else {
setkouho(clrec, (TypeDicOfs)1, 0); setkouho(clrec, (TypeDicOfs)1, 0);
} }
} }
u_char*
makekan_none(u_char* s, u_char* d, int flg) {
u_char *
makekan_none(u_char *s, u_char *d, int flg)
{
return d; return d;
} }
u_char*
makekan_1byte(u_char* s, u_char* d, int flg) {
u_char * if((*s & KANJIMODEMASK) == ZENHIRAASSYUKU)
makekan_1byte(u_char *s, u_char *d, int flg) *d++ = 0x10 | (*s & KNJASSYUKUMASK);
{
if ((*s & KANJIMODEMASK) == ZENHIRAASSYUKU)
*d++ = 0x10 | (*s & KNJASSYUKUMASK);
else else
*d++ = 0x90 | (*s & KNJASSYUKUMASK); *d++ = 0x90 | (*s & KNJASSYUKUMASK);
if (flg) *d++ = KANJISTREND; if(flg) *d++ = KANJISTREND;
return d; return d;
} }
u_char*
makekan_knj(u_char* s, u_char* d, int flg) {
u_char *
makekan_knj(u_char *s, u_char *d, int flg)
{
return makekan(askknj[*s & KNJASSYUKUMASK], d, flg); return makekan(askknj[*s & KNJASSYUKUMASK], d, flg);
} }
u_char* makekan_ofs(u_char* s, u_char* d, int flg) {
return makekan(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
u_char *makekan_ofs(u_char *s, u_char *d, int flg) d, flg);
{
return makekan(dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, flg);
} }
u_char*
makekan_norm(u_char* s, u_char* d, int flg) {
u_char *
makekan_norm(u_char *s, u_char *d, int flg)
{
u_char c; u_char c;
if (*s != 0) { if(*s != 0) {
c = s[1]; c = s[1];
if (c & 0x80) if(c & 0x80)
*d++ = SS3; *d++ = SS3;
*d++ = *s | 0x80; *d++ = *s | 0x80;
*d++ = c | 0x80; *d++ = c | 0x80;
} else { } else {
*d++ = *s; *d++ = *s;
} }
if (flg) *d++ = KANJISTREND; if(flg) *d++ = KANJISTREND;
return d; return d;
} }
u_char*
makekan_ascii(u_char* s, u_char* d, int flg) {
u_char *
makekan_ascii(u_char *s, u_char *d, int flg)
{
u_char c; u_char c;
c = s[1]; c = s[1];
if (c & 0x80) if(c & 0x80)
*d++ = SS2; *d++ = SS2;
*d++ = c; *d++ = c;
if (flg) *d++ = KANJISTREND; if(flg) *d++ = KANJISTREND;
return d; return d;
} }
static u_char*
makekan(u_char* s, u_char* d, int flg) {
static u_char *
makekan(u_char *s, u_char *d, int flg)
{
int csize; int csize;
for ( ; ; ) { for(;;) {
csize = codesize(*s); csize = codesize(*s);
if (s[csize] == KANJISTREND) { if(s[csize] == KANJISTREND) {
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = makekan_1byte(s, d, flg); break; d = makekan_1byte(s, d, flg);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = makekan_1byte(s, d, flg); break; d = makekan_1byte(s, d, flg);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(s, d, flg); break; d = makekan_ofs(s, d, flg);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = makekan_none(s, d, flg); break; d = makekan_none(s, d, flg);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = makekan_ascii(s, d, flg); break; d = makekan_ascii(s, d, flg);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(s, d, flg); break; d = makekan_knj(s, d, flg);
break;
default: default:
d = makekan_norm(s, d, flg); d = makekan_norm(s, d, flg);
} }
break; break;
} } else
else
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = makekan_1byte(s, d, FALSE); break; d = makekan_1byte(s, d, FALSE);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = makekan_1byte(s, d, FALSE); break; d = makekan_1byte(s, d, FALSE);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(s, d, FALSE); break; d = makekan_ofs(s, d, FALSE);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = makekan_none(s, d, FALSE); break; d = makekan_none(s, d, FALSE);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = makekan_ascii(s, d, FALSE); break; d = makekan_ascii(s, d, FALSE);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(s, d, FALSE); break; d = makekan_knj(s, d, FALSE);
break;
default: default:
d = makekan_norm(s, d, FALSE); d = makekan_norm(s, d, FALSE);
} }
s += codesize(*s); s += codesize(*s);
@ -265,138 +243,124 @@ makekan(u_char *s, u_char *d, int flg)
return d; return d;
} }
#define PEND 2
#define QEND 1
#define PEND 2
#define QEND 1
static int static int
sameknj(u_char *p, u_char plen, u_char *q, u_char qlen) sameknj(u_char* p, u_char plen, u_char* q, u_char qlen) {
{ int i;
int i; int j;
int j; int endf = 0;
int endf = 0; int brkf;
int brkf;
do { do {
if ((i = euc_codesize(*p)) != euc_codesize(*q)) return FALSE; if((i = euc_codesize(*p)) != euc_codesize(*q)) return FALSE;
brkf = 0; brkf = 0;
for (j = 0; j < i; j++) { for(j = 0; j < i; j++) {
if (p[j] != q[j] ) { if(p[j] != q[j]) {
brkf = 1; brkf = 1;
break; break;
} }
} }
if (brkf) break; if(brkf) break;
if (p[i] == KANJISTREND) endf += PEND; if(p[i] == KANJISTREND) endf += PEND;
if (q[i] == KANJISTREND) endf += QEND; if(q[i] == KANJISTREND) endf += QEND;
p += i; p += i;
q += i; q += i;
} while (!endf); } while(!endf);
switch (endf) { switch(endf) {
case (PEND | QEND): case(PEND | QEND):
if (plen == qlen) return TRUE; if(plen == qlen) return TRUE;
break; break;
case PEND: case PEND:
i = plen; i = plen;
plen = qlen; plen = qlen;
qlen = i; qlen = i;
p = q; p = q;
case QEND: case QEND:
if (p[euc_codesize(*p)] != KANJISTREND) break; if(p[euc_codesize(*p)] != KANJISTREND) break;
if ((*p & KANJIMODEMASK) != 0x10 ) break; if((*p & KANJIMODEMASK) != 0x10) break;
if (qlen != plen - (*p & KANJICODEMASK) - 1) break; if(qlen != plen - (*p & KANJICODEMASK) - 1) break;
return TRUE; return TRUE;
default: default:
if (q[euc_codesize(*q)] != KANJISTREND) break; if(q[euc_codesize(*q)] != KANJISTREND) break;
if (p[euc_codesize(*p)] != KANJISTREND) break; if(p[euc_codesize(*p)] != KANJISTREND) break;
if ((*q & KANJIMODEMASK) != 0x10 ) break; if((*q & KANJIMODEMASK) != 0x10) break;
if ((*p & KANJIMODEMASK) != 0x10 ) break; if((*p & KANJIMODEMASK) != 0x10) break;
if (plen - (*p & KANJICODEMASK) != qlen - (*q & KANJICODEMASK)) if(plen - (*p & KANJICODEMASK) != qlen - (*q & KANJICODEMASK))
break; break;
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
#undef PEND #undef PEND
#undef QEND #undef QEND
static int static int
diffknj(JREC *jrec, u_char *ptr, int num) diffknj(JREC* jrec, u_char* ptr, int num) {
{ KHREC* kptr;
KHREC *kptr; JREC* jptr;
JREC *jptr; int i;
int i; u_char kbuf1[MAXWDKANJILEN];
u_char kbuf1[MAXWDKANJILEN]; u_char kbuf2[MAXWDKANJILEN];
u_char kbuf2[MAXWDKANJILEN];
if (jrec -> hinsi == TANKANJI) return TRUE; if(jrec->hinsi == TANKANJI) return TRUE;
makekan(ptr, kbuf1, TRUE); makekan(ptr, kbuf1, TRUE);
for (i = 0, kptr = kouhotbl ; i < num ; i++, kptr++) { for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) {
if ((jptr = kptr -> clrec -> jnode) == jrec) if((jptr = kptr->clrec->jnode) == jrec)
return FALSE; return FALSE;
if (jptr -> hinsi == TANKANJI) continue; if(jptr->hinsi == TANKANJI) continue;
if (jptr -> class != jrec -> class) continue; if(jptr->class != jrec->class) continue;
if (jptr -> dicid != jrec -> dicid) continue; if(jptr->dicid != jrec->dicid) continue;
if (jptr -> jseg != jrec -> jseg) continue; if(jptr->jseg != jrec->jseg) continue;
if (jptr -> sttofs != jrec -> sttofs) continue; if(jptr->sttofs != jrec->sttofs) continue;
if (jptr -> stbofs != jrec -> stbofs) continue; if(jptr->stbofs != jrec->stbofs) continue;
makekan(dicbuf + kptr -> offs, kbuf2, TRUE); makekan(dicbuf + kptr->offs, kbuf2, TRUE);
if (sameknj(kbuf1, jrec -> jlen, kbuf2, jptr -> jlen)) if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen))
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
static int static int
chrck_numtbl(u_short flg, u_short cond) chrck_numtbl(u_short flg, u_short cond) {
{ u_short must;
u_short must;
if (cond = SelNumCond(cond)) { if(cond = SelNumCond(cond)) {
if (must = (cond & SELNUMMUST)) { if(must = (cond & SELNUMMUST)) {
if ((flg & must) != must) return FALSE; if((flg & must) != must) return FALSE;
cond &= ~must; cond &= ~must;
} }
if (cond && !(cond & flg)) return FALSE; if(cond && !(cond & flg)) return FALSE;
} }
return TRUE; return TRUE;
} }
int sel_sjmode(JREC* jrec) {
u_short i;
u_short* p;
u_short* q;
switch(jrec->class) {
int
sel_sjmode(JREC *jrec)
{
u_short i;
u_short *p;
u_short *q;
switch (jrec -> class) {
case C_N_ARABIA: case C_N_ARABIA:
case C_N_ARACMA: case C_N_ARACMA:
case C_N_KAZU: case C_N_KAZU:
@ -414,52 +378,47 @@ sel_sjmode(JREC *jrec)
return SELARB; return SELARB;
} }
while ((i = *p++) != SELNUMTERM) { while((i = *p++) != SELNUMTERM) {
if (chrck_numtbl(jrec -> flags, i)) break; if(chrck_numtbl(jrec->flags, i)) break;
} }
if (i == SELNUMTERM) i = *q; if(i == SELNUMTERM) i = *q;
return SelNumFunc(i); return SelNumFunc(i);
} }
static void static void
cl_numcmn(JREC *jrec, CLREC *clrec) cl_numcmn(JREC* jrec, CLREC* clrec) {
{ u_char* p;
u_char *p; int i;
int i; u_short j;
u_short j; u_short* tbl;
u_short *tbl;
p = cnvstart; p = cnvstart;
if ((i = jrec -> sttofs) == SETTOU_DAI) if((i = jrec->sttofs) == SETTOU_DAI)
p += SttYomiLen(Settou_ptr(i)); p += SttYomiLen(Settou_ptr(i));
else if (i == SETTOU_KIGOU) else if(i == SETTOU_KIGOU)
p++; p++;
if (jrec -> jofsst) { if(jrec->jofsst) {
i = sel_sjmode(jrec); i = sel_sjmode(jrec);
if (seldict(jrec -> dicid)) { if(seldict(jrec->dicid)) {
(*curdict->getdic)(curdict, jrec -> jseg); (*curdict->getdic)(curdict, jrec->jseg);
p = dicbuf + jrec->jofsst + 1; p = dicbuf + jrec->jofsst + 1;
while (*p != HINSIBLKTERM) { while(*p != HINSIBLKTERM) {
setkouho(clrec, (TypeDicOfs)(p - dicbuf), i); setkouho(clrec, (TypeDicOfs)(p - dicbuf), i);
p = skipkstr(p); p = skipkstr(p);
} }
} } else {
else {
setkouho(clrec, (TypeDicOfs)1, i); setkouho(clrec, (TypeDicOfs)1, i);
} }
} } else {
else {
tbl = Selsjadrs(jrec->class - C_N_ARABIA); tbl = Selsjadrs(jrec->class - C_N_ARABIA);
while ((j = *tbl++) != SELNUMTERM) { while((j = *tbl++) != SELNUMTERM) {
if (!chrck_numtbl(jrec -> flags, j)) continue; if(!chrck_numtbl(jrec->flags, j)) continue;
setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j)); setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j));
} }

View file

@ -33,10 +33,6 @@
* $SonyDate: 1994/06/03 08:02:05 $ * $SonyDate: 1994/06/03 08:02:05 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_suuji.h" #include "sj_suuji.h"
@ -44,32 +40,31 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
word2char(u_short wd, u_char *tbl, int keta, int flg) word2char(u_short wd, u_char* tbl, int keta, int flg) {
{
int mask; int mask;
int num; int num;
u_char *src; u_char* src;
for (mask = 0x1000 ; mask ; mask >>= 4) { for(mask = 0x1000; mask; mask >>= 4) {
switch (num = (unsigned int)wd / mask) { switch(num = (unsigned int)wd / mask) {
case 0: case 0:
break; break;
case _NUM0: case _NUM0:
if (!flg) break; if(!flg) break;
default: default:
src = tbl + (num - _NUM0) * 2; src = tbl + (num - _NUM0) * 2;
*kanjitmp++ = *src++; *kanjitmp++ = *src++;
*kanjitmp++ = *src; *kanjitmp++ = *src;
flg = TRUE; flg = TRUE;
if (keta && !(keta % 3)) { if(keta && !(keta % 3)) {
*kanjitmp++ = COMMAHIGH; *kanjitmp++ = COMMAHIGH;
*kanjitmp++ = COMMALOW; *kanjitmp++ = COMMALOW;
} }
} }
if (keta) keta--; if(keta) keta--;
wd &= (mask - 1); wd &= (mask - 1);
} }
@ -77,300 +72,250 @@ word2char(u_short wd, u_char *tbl, int keta, int flg)
} }
static void static void
words2num(u_short *wd, u_char *tbl, int flgc) words2num(u_short* wd, u_char* tbl, int flgc) {
{
int i; int i;
int keta; int keta;
int flg; int flg;
u_char *kp = kanjitmp; u_char* kp = kanjitmp;
if (flgc) { if(flgc) {
keta = NUMKETALENGTH - 1; keta = NUMKETALENGTH - 1;
flg = FALSE; flg = FALSE;
} } else {
else {
keta = 0; keta = 0;
flg = TRUE; flg = TRUE;
} }
for (i = NUMWORDBUF ; i-- > 0 ; ) { for(i = NUMWORDBUF; i-- > 0;) {
flg = word2char(*(wd + i), tbl, keta, flg); flg = word2char(*(wd + i), tbl, keta, flg);
if (keta) keta -= 4; if(keta) keta -= 4;
} }
if (kp == kanjitmp) { if(kp == kanjitmp) {
*kanjitmp++ = *tbl++; *kanjitmp++ = *tbl++;
*kanjitmp++ = *tbl; *kanjitmp++ = *tbl;
} }
} }
void void num_type00(u_char* s1, u_char* s2, JREC* jrec) {
num_type00(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num1tbl, FALSE); words2num(num, Num1tbl, FALSE);
} }
void void num_type01(u_char* s1, u_char* s2, JREC* jrec) {
num_type01(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num1tbl, FALSE); words2num(num, Num1tbl, FALSE);
} }
void void num_type02(u_char* s1, u_char* s2, JREC* jrec) {
num_type02(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num1tbl, TRUE); words2num(num, Num1tbl, TRUE);
} }
void void num_type03(u_char* s1, u_char* s2, JREC* jrec) {
num_type03(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num2tbl, FALSE); words2num(num, Num2tbl, FALSE);
} }
void void num_type04(u_char* s1, u_char* s2, JREC* jrec) {
num_type04(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num2tbl, FALSE); words2num(num, Num2tbl, FALSE);
} }
void void num_type05(u_char* s1, u_char* s2, JREC* jrec) {
num_type05(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num2tbl, TRUE); words2num(num, Num2tbl, TRUE);
} }
void void num_type06(u_char* s1, u_char* s2, JREC* jrec) {
num_type06(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num3tbl, FALSE); words2num(num, Num3tbl, FALSE);
} }
void void num_type07(u_char* s1, u_char* s2, JREC* jrec) {
num_type07(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
words2num(num, Num3tbl, FALSE); words2num(num, Num3tbl, FALSE);
} }
static void static void
kan_num(u_short *wd, u_char *tbl1, u_char *tbl2) kan_num(u_short* wd, u_char* tbl1, u_char* tbl2) {
{
int ii; int ii;
u_short tmp; u_short tmp;
int mask; int mask;
int num; int num;
int flg; int flg;
u_char *kurai1; u_char* kurai1;
u_char *kurai2; u_char* kurai2;
u_char *src; u_char* src;
u_char *keep = kanjitmp; u_char* keep = kanjitmp;
kurai2 = Num6tbl - 2; kurai2 = Num6tbl - 2;
mask = 0; mask = 0;
wd += NUMWORDBUF - 1; wd += NUMWORDBUF - 1;
flg = FALSE; flg = FALSE;
for (ii = NUMKETALENGTH ; ii-- > 0 ; ) { for(ii = NUMKETALENGTH; ii-- > 0;) {
if (!mask) { if(!mask) {
if (flg) { if(flg) {
*kanjitmp++ = *kurai2++; *kanjitmp++ = *kurai2++;
*kanjitmp++ = *kurai2++; *kanjitmp++ = *kurai2++;
} } else
else
kurai2 += 2; kurai2 += 2;
mask = 0x1000; mask = 0x1000;
tmp = *wd--; tmp = *wd--;
flg = FALSE; flg = FALSE;
kurai1 = tbl2; kurai1 = tbl2;
} }
if ((num = (unsigned int)tmp / mask) > _NUM0) { if((num = (unsigned int)tmp / mask) > _NUM0) {
if ((num != _NUM1) || !*kurai1) { if((num != _NUM1) || !*kurai1) {
src = tbl1 + (num - _NUM0) * 2; src = tbl1 + (num - _NUM0) * 2;
*kanjitmp++ = *src++; *kanjitmp++ = *src++;
*kanjitmp++ = *src; *kanjitmp++ = *src;
} }
if (*kurai1) { if(*kurai1) {
*kanjitmp++ = *kurai1++; *kanjitmp++ = *kurai1++;
*kanjitmp++ = *kurai1++; *kanjitmp++ = *kurai1++;
} }
flg = TRUE; flg = TRUE;
} } else
else
kurai1 += 2; kurai1 += 2;
tmp &= (mask - 1); tmp &= (mask - 1);
mask >>= 4; mask >>= 4;
} }
if (kanjitmp == keep) { if(kanjitmp == keep) {
*kanjitmp++ = *tbl1++; *kanjitmp++ = *tbl1++;
*kanjitmp++ = *tbl1; *kanjitmp++ = *tbl1;
} }
} }
void void num_type08(u_char* s1, u_char* s2, JREC* jrec) {
num_type08(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
kan_num(num, Num2tbl, Num4tbl); kan_num(num, Num2tbl, Num4tbl);
} }
void void num_type09(u_char* s1, u_char* s2, JREC* jrec) {
num_type09(u_char *s1, u_char *s2, JREC *jrec) u_short num[NUMWORDBUF];
{
u_short num[NUMWORDBUF];
setwdnum(s1, (int)jrec -> numlen, num); setwdnum(s1, (int)jrec->numlen, num);
kan_num(num, Num3tbl, Num5tbl); kan_num(num, Num3tbl, Num5tbl);
} }
void num_type10(u_char* s1, u_char* s2, JREC* jrec) {
int i;
for(i = jrec->numlen; i > 0; i--) {
void if(Chrtbl[*s1++] & NUMBER) {
num_type10(u_char *s1, u_char *s2, JREC *jrec)
{
int i;
for (i = jrec -> numlen ; i > 0 ; i--) {
if (Chrtbl[*s1++] & NUMBER) {
*kanjitmp++ = *s2++; *kanjitmp++ = *s2++;
*kanjitmp++ = *s2++; *kanjitmp++ = *s2++;
} } else
else
s2 += euc_codesize(*s2); s2 += euc_codesize(*s2);
} }
} }
void num_type11(u_char* s1, u_char* s2, JREC* jrec) {
int i;
int j;
i = j = jrec->numlen;
if(!(Chrtbl[*(s1 + j - 4)] & NUMBER)) j -= (j - 1) / 4;
void for(; i > 0; i--) {
num_type11(u_char *s1, u_char *s2, JREC *jrec) if(Chrtbl[*s1++] & NUMBER) {
{
int i;
int j;
i = j = jrec -> numlen;
if (!(Chrtbl[*(s1 + j - 4)] & NUMBER)) j -= (j - 1) / 4;
for ( ; i > 0 ; i--) {
if (Chrtbl[*s1++] & NUMBER) {
*kanjitmp++ = *s2++; *kanjitmp++ = *s2++;
*kanjitmp++ = *s2++; *kanjitmp++ = *s2++;
if (--j > 0) { if(--j > 0) {
if ((j % 3) == 0) { if((j % 3) == 0) {
*kanjitmp++ = COMMAHIGH; *kanjitmp++ = COMMAHIGH;
*kanjitmp++ = COMMALOW; *kanjitmp++ = COMMALOW;
} }
} }
} } else
else
s2 += euc_codesize(*s2); s2 += euc_codesize(*s2);
} }
} }
void num_type12(u_char* s1, u_char* s2, JREC* jrec) {
int i;
int j;
for(i = jrec->numlen; i > 0; i--) {
void if(Chrtbl[j = *s1++] & NUMBER) {
num_type12(u_char *s1, u_char *s2, JREC *jrec) j = (j - N_0) * 2;
{
int i;
int j;
for (i = jrec -> numlen ; i > 0 ; i--) {
if (Chrtbl[j = *s1++] & NUMBER) {
j = (j - N_0) * 2;
*kanjitmp++ = Num2tbl[j]; *kanjitmp++ = Num2tbl[j];
*kanjitmp++ = Num2tbl[j + 1]; *kanjitmp++ = Num2tbl[j + 1];
} }
} }
} }
static void static void
num_kurai(u_char *p, int len, u_char *tbl) num_kurai(u_char* p, int len, u_char* tbl) {
{ int i;
int i; int j;
int j; u_char tmp;
u_char tmp;
for (i = 0 ; i < len ; i++) { for(i = 0; i < len; i++) {
tmp = *p++; tmp = *p++;
*kanjitmp++ = tbl[j = ((tmp & 0x0f) - _NUM0) * 2]; *kanjitmp++ = tbl[j = ((tmp & 0x0f) - _NUM0) * 2];
*kanjitmp++ = tbl[j + 1]; *kanjitmp++ = tbl[j + 1];
if (j = ((tmp >> 4) & 3)) { if(j = ((tmp >> 4) & 3)) {
*kanjitmp++ = Num4tbl[j = (3 - j) * 2]; *kanjitmp++ = Num4tbl[j = (3 - j) * 2];
*kanjitmp++ = Num4tbl[j + 1]; *kanjitmp++ = Num4tbl[j + 1];
} }
if (j = ((tmp >> 6) & 3)) { if(j = ((tmp >> 6) & 3)) {
*kanjitmp++ = Num6tbl[j = (3 - j) * 2]; *kanjitmp++ = Num6tbl[j = (3 - j) * 2];
*kanjitmp++ = Num6tbl[j + 1]; *kanjitmp++ = Num6tbl[j + 1];
} }
} }
} }
void num_type13(u_char* s1, u_char* s2, JREC* jrec) {
u_char num[NUMKETALENGTH];
int len;
len = setucnum(s1, (int)jrec->numlen, num);
void
num_type13(u_char *s1, u_char *s2, JREC *jrec)
{
u_char num[NUMKETALENGTH];
int len;
len = setucnum(s1, (int)jrec -> numlen, num);
num_kurai(num, len, Num1tbl); num_kurai(num, len, Num1tbl);
} }
void num_type14(u_char* s1, u_char* s2, JREC* jrec) {
u_char num[NUMKETALENGTH];
int len;
len = setucnum(s1, (int)jrec->numlen, num);
void
num_type14(u_char *s1, u_char *s2, JREC *jrec)
{
u_char num[NUMKETALENGTH];
int len;
len = setucnum(s1, (int)jrec -> numlen, num);
num_kurai(num, len, Num2tbl); num_kurai(num, len, Num2tbl);
} }

View file

@ -33,16 +33,11 @@
* $SonyDate: 1994/06/03 08:02:05 $ * $SonyDate: 1994/06/03 08:02:05 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void mvmemd(u_char* src, u_char* dest, int len) {
mvmemd(u_char *src, u_char *dest, int len) while(len-- > 0) *(--dest) = *(--src);
{
while (len-- > 0) *(--dest) = *(--src);
} }

View file

@ -33,16 +33,11 @@
* $SonyDate: 1994/06/03 08:02:06 $ * $SonyDate: 1994/06/03 08:02:06 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void mvmemi(u_char* src, u_char* dest, int len) {
mvmemi(u_char *src, u_char *dest, int len) while(len-- > 0) *dest++ = *src++;
{
while (len-- > 0) *dest++ = *src++;
} }

View file

@ -33,24 +33,19 @@
* $SonyDate: 1995/07/21 05:22:51 $ * $SonyDate: 1995/07/21 05:22:51 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int prev_kanji(), prev_hinsi(), prev_douon(); static int prev_kanji(), prev_hinsi(), prev_douon();
static int next_kanji(), next_hinsi(), next_douon(); static int next_kanji(), next_hinsi(), next_douon();
static void set_kanji(), set_buf(), add_yomi(); static void set_kanji(), set_buf(), add_yomi();
static void set_idxyomi(); static void set_idxyomi();
static void cd2sjh_chr(u_char ch, u_char *dst); static void cd2sjh_chr(u_char ch, u_char* dst);
int int getusr(u_char* buf) {
getusr(u_char *buf)
{
int nlen; int nlen;
peepyomi[0] = peepknj[0] = peepgrm = 0; peepyomi[0] = peepknj[0] = peepgrm = 0;
@ -60,12 +55,12 @@ getusr(u_char *buf)
peepdptr = segtop(); peepdptr = segtop();
if (segend(peepdptr)) return 0; if(segend(peepdptr)) return 0;
add_yomi(); add_yomi();
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen; peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
peepgrm = *peephptr; peepgrm = *peephptr;
@ -78,13 +73,11 @@ getusr(u_char *buf)
return -1; return -1;
} }
int int nextusr(u_char* buf) {
nextusr(u_char *buf)
{
(*curdict->getdic)(curdict, peepidx); (*curdict->getdic)(curdict, peepidx);
get_askknj(); get_askknj();
if (next_kanji()) { if(next_kanji()) {
set_kanji(); set_kanji();
set_buf(buf); set_buf(buf);
@ -95,13 +88,11 @@ nextusr(u_char *buf)
return 0; return 0;
} }
int int prevusr(u_char* buf) {
prevusr(u_char *buf)
{
(*curdict->getdic)(curdict, peepidx); (*curdict->getdic)(curdict, peepidx);
get_askknj(); get_askknj();
if (prev_kanji()) { if(prev_kanji()) {
set_kanji(); set_kanji();
set_buf(buf); set_buf(buf);
@ -113,27 +104,25 @@ prevusr(u_char *buf)
} }
static void static void
set_kanji() set_kanji() {
{ int len;
int len;
len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr), len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr),
peepkptr, peepknj); peepkptr, peepknj);
*(peepknj + len) = 0; *(peepknj + len) = 0;
} }
static void static void
set_buf(u_char *buf) set_buf(u_char* buf) {
{ u_char* p;
u_char *p; int i, csize;
int i, csize;
for (p = peepyomi ; *p ; ) *buf++ = *p++; for(p = peepyomi; *p;) *buf++ = *p++;
*buf++ = 0; *buf++ = 0;
for (p = peepknj ; *p ; ) { for(p = peepknj; *p;) {
csize = euc_codesize(*p); csize = euc_codesize(*p);
for (i = 0; i < csize; i++ ) *buf++ = *p++; for(i = 0; i < csize; i++) *buf++ = *p++;
} }
*buf++ = 0; *buf++ = 0;
@ -142,45 +131,43 @@ set_buf(u_char *buf)
} }
static int static int
prev_kanji() prev_kanji() {
{ u_char* p1;
u_char *p1; u_char* p2;
u_char *p2;
p1 = peephptr + 1; p1 = peephptr + 1;
if (peepkptr <= p1) return prev_hinsi(); if(peepkptr <= p1) return prev_hinsi();
p2 = peepkptr; p2 = peepkptr;
while (p1 < p2) { while(p1 < p2) {
peepkptr = p1; peepkptr = p1;
p1 = skipkstr(p1); p1 = skipkstr(p1);
} }
return -1; return -1;
} }
static int static int
prev_hinsi() prev_hinsi() {
{ u_char* p1;
u_char *p1; u_char* p2;
u_char *p2; int nlen;
int nlen;
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
p1 = peepdptr + DOUONBLKSIZENUMBER + nlen; p1 = peepdptr + DOUONBLKSIZENUMBER + nlen;
if (peephptr <= p1) return prev_douon(); if(peephptr <= p1) return prev_douon();
p2 = peephptr; p2 = peephptr;
while (p1 < p2) { while(p1 < p2) {
peephptr = p1; peephptr = p1;
p1 = skiphblk(p1); p1 = skiphblk(p1);
} }
peepgrm = *peephptr; peepgrm = *peephptr;
p1 = peephptr + 1; p1 = peephptr + 1;
while (*p1 != HINSIBLKTERM) { while(*p1 != HINSIBLKTERM) {
peepkptr = p1; peepkptr = p1;
p1 = skipkstr(p1); p1 = skipkstr(p1);
@ -190,14 +177,13 @@ prev_hinsi()
} }
static int static int
prev_douon() prev_douon() {
{ u_char* p1;
u_char *p1; u_char* p2;
u_char *p2; int nlen;
int nlen;
if (peepdptr <= segtop()) { if(peepdptr <= segtop()) {
if (peepidx <= DICSEGBASE) return 0; if(peepidx <= DICSEGBASE) return 0;
(*curdict->getdic)(curdict, --peepidx); (*curdict->getdic)(curdict, --peepidx);
get_askknj(); get_askknj();
@ -211,9 +197,8 @@ prev_douon()
add_yomi(); add_yomi();
p1 = getntag(p1); p1 = getntag(p1);
} while (!segend(p1)); } while(!segend(p1));
} } else {
else {
set_idxyomi(); set_idxyomi();
p1 = segtop(); p1 = segtop();
@ -224,17 +209,17 @@ prev_douon()
add_yomi(); add_yomi();
p1 = getntag(p1); p1 = getntag(p1);
} while (p1 < p2); } while(p1 < p2);
} }
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
p1 = peepdptr + DOUONBLKSIZENUMBER + nlen; p1 = peepdptr + DOUONBLKSIZENUMBER + nlen;
p2 = getntag(peepdptr); p2 = getntag(peepdptr);
do { do {
peephptr = p1; peephptr = p1;
p1 = skiphblk(p1); p1 = skiphblk(p1);
} while (p1 < p2); } while(p1 < p2);
peepgrm = *peephptr; peepgrm = *peephptr;
@ -243,19 +228,18 @@ prev_douon()
peepkptr = p1; peepkptr = p1;
p1 = skipkstr(p1); p1 = skipkstr(p1);
} while (*p1 != HINSIBLKTERM); } while(*p1 != HINSIBLKTERM);
return -1; return -1;
} }
static int static int
next_kanji() next_kanji() {
{ u_char* p1;
u_char *p1;
p1 = skipkstr(peepkptr); p1 = skipkstr(peepkptr);
if (*p1 == HINSIBLKTERM) return next_hinsi(); if(*p1 == HINSIBLKTERM) return next_hinsi();
peepkptr = p1; peepkptr = p1;
@ -263,13 +247,12 @@ next_kanji()
} }
static int static int
next_hinsi() next_hinsi() {
{ u_char* p1;
u_char *p1;
p1 = skiphblk(peephptr); p1 = skiphblk(peephptr);
if (p1 >= getntag(peepdptr)) return next_douon(); if(p1 >= getntag(peepdptr)) return next_douon();
peephptr = p1; peephptr = p1;
@ -281,32 +264,29 @@ next_hinsi()
} }
static int static int
next_douon() next_douon() {
{ u_char* p1;
u_char *p1; int nlen;
int nlen;
p1 = getntag(peepdptr); p1 = getntag(peepdptr);
if (segend(p1)) { if(segend(p1)) {
if (peepidx + 1 < curdict->segunit) { if(peepidx + 1 < curdict->segunit) {
(*curdict->getdic)(curdict, ++peepidx); (*curdict->getdic)(curdict, ++peepidx);
get_askknj(); get_askknj();
peepdptr = segtop(); peepdptr = segtop();
set_idxyomi(); set_idxyomi();
} } else
else return 0;
return 0; } else {
}
else {
peepdptr = p1; peepdptr = p1;
} }
add_yomi(); add_yomi();
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen; peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
peepgrm = *peephptr; peepgrm = *peephptr;
@ -316,13 +296,12 @@ next_douon()
} }
static void static void
set_idxyomi() set_idxyomi() {
{ u_char *p1, *p2;
u_char *p1, *p2;
if (p2 = get_idxptr(peepidx)) { if(p2 = get_idxptr(peepidx)) {
p1 = peepyomi; p1 = peepyomi;
while (*p2) { while(*p2) {
cd2sjh_chr(*p2++, p1); cd2sjh_chr(*p2++, p1);
p1 += 2; p1 += 2;
} }
@ -331,10 +310,9 @@ set_idxyomi()
} }
static void static void
add_yomi() add_yomi() {
{
int nlen; int nlen;
u_char *p1, *p2; u_char *p1, *p2;
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
@ -342,7 +320,7 @@ add_yomi()
p2 = peepdptr + DOUONBLKSIZENUMBER; p2 = peepdptr + DOUONBLKSIZENUMBER;
while (nlen--) { while(nlen--) {
cd2sjh_chr(*p2++, p1); cd2sjh_chr(*p2++, p1);
p1 += 2; p1 += 2;
} }
@ -351,46 +329,35 @@ add_yomi()
} }
static void static void
cd2sjh_chr(u_char ch, u_char *dst) cd2sjh_chr(u_char ch, u_char* dst) {
{ if(ch == _TYOUON) {
if (ch == _TYOUON) {
*dst++ = 0xa1; *dst++ = 0xa1;
*dst++ = 0xbc; *dst++ = 0xbc;
} } else if(ch == _IGETA) {
else if (ch == _IGETA) {
*dst++ = 0xa1; *dst++ = 0xa1;
*dst++ = 0xf4; *dst++ = 0xf4;
} } else if(ch == _ATTO) {
else if (ch == _ATTO) {
*dst++ = 0xa1; *dst++ = 0xa1;
*dst++ = 0xf7; *dst++ = 0xf7;
} } else if(ch == _YUUBIN) {
else if (ch == _YUUBIN) {
*dst++ = 0xa2; *dst++ = 0xa2;
*dst++ = 0xa9; *dst++ = 0xa9;
} } else if(ch < N_0) {
else if (ch < N_0) { } else if(ch <= N_9) {
}
else if (ch <= N_9) {
*dst++ = 0xa3; *dst++ = 0xa3;
*dst++ = ch + 0xa0; *dst++ = ch + 0xa0;
} } else if(ch <= A_Z) {
else if (ch <= A_Z) {
*dst++ = 0xa3; *dst++ = 0xa3;
*dst++ = ch + 0xa7; *dst++ = ch + 0xa7;
} } else if(ch <= A_z) {
else if (ch <= A_z) {
*dst++ = 0xa3; *dst++ = 0xa3;
*dst++ = ch + 0xad; *dst++ = ch + 0xad;
} } else if(ch <= _NN) {
else if (ch <= _NN) {
*dst++ = 0xa4; *dst++ = 0xa4;
*dst++ = ch + 0x53; *dst++ = ch + 0x53;
} } else if(ch <= _XKE) {
else if (ch <= _XKE) {
*dst++ = 0xa5; *dst++ = 0xa5;
*dst++ = ch + 0x53; *dst++ = ch + 0x53;
} } else {
else {
} }
} }

View file

@ -33,24 +33,21 @@
* $SonyDate: 1994/06/03 08:02:09 $ * $SonyDate: 1994/06/03 08:02:09 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int ph2knj(u_char* zyomi, u_char* kanji, int knjlen) {
ph2knj(u_char *zyomi, u_char *kanji, int knjlen) u_char* ptr;
{ u_char* dst;
u_char *ptr;
u_char *dst;
int i; int i;
for (ptr = zyomi, dst = hyomi, i = 0 ; *ptr ; ) { for(ptr = zyomi, dst = hyomi, i = 0; *ptr;) {
if (i++ >= MAXPHINPUTLEN) { *kanji = 0; return 0; } if(i++ >= MAXPHINPUTLEN) {
*kanji = 0;
return 0;
}
ptr += sj2cd_chr(ptr, dst++); ptr += sj2cd_chr(ptr, dst++);
} }
*dst = 0; *dst = 0;
@ -59,23 +56,23 @@ ph2knj(u_char *zyomi, u_char *kanji, int knjlen)
prevclgrm = 0; prevclgrm = 0;
prevclrow = 0; prevclrow = 0;
khcount = 0; khcount = 0;
nextcllen = 0; nextcllen = 0;
inputyomi = zyomi; inputyomi = zyomi;
cnvstart = ystart = hyomi; cnvstart = ystart = hyomi;
cnvlen = sstrlen(hyomi); cnvlen = sstrlen(hyomi);
kanjipos = kanji; kanjipos = kanji;
kanjilen = knjlen; kanjilen = knjlen;
while (cnvlen && kanjilen) { while(cnvlen && kanjilen) {
if (!clt1st) { if(!clt1st) {
mkjiritu(DO_CLSTUDY | DO_IKKATU); mkjiritu(DO_CLSTUDY | DO_IKKATU);
mkbunsetu(); mkbunsetu();
if (!maxclptr) wakachi(); if(!maxclptr) wakachi();
jrt1st = maxjptr; jrt1st = maxjptr;
clt1st = maxclptr; clt1st = maxclptr;
@ -85,29 +82,27 @@ ph2knj(u_char *zyomi, u_char *kanji, int knjlen)
selclrec(); selclrec();
prevclgrm = selcl -> jnode -> hinsi; prevclgrm = selcl->jnode->hinsi;
prevclrow = selcl -> right; prevclrow = selcl->right;
clt1st = free_clst(clt1st, (int)selcl -> cllen); clt1st = free_clst(clt1st, (int)selcl->cllen);
jrt1st = free_jlst(jrt1st); jrt1st = free_jlst(jrt1st);
cnvstart += selcl -> cllen; cnvstart += selcl->cllen;
cnvlen -= selcl -> cllen; cnvlen -= selcl->cllen;
cvtphknj(); cvtphknj();
clt1st = clt2nd; clt1st = clt2nd;
jrt1st = jrt2nd; jrt1st = jrt2nd;
} }
if (!kanjilen) { if(!kanjilen) {
free_clall(clt1st); free_clall(clt1st);
free_jall (jrt1st); free_jall(jrt1st);
} }
*kanjipos = 0; *kanjipos = 0;
return(inputyomi - zyomi); return (inputyomi - zyomi);
} }

View file

@ -38,55 +38,52 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void static void
ph_setsty(CLREC *clrec) ph_setsty(CLREC* clrec) {
{ JREC* jrec;
JREC *jrec; TypeDicOfs offset;
TypeDicOfs offset; u_char* ptr;
u_char *ptr; STDYIN* sptr;
STDYIN *sptr;
if (!seldict((jrec = clrec -> jnode) -> dicid)) { if(!seldict((jrec = clrec->jnode)->dicid)) {
if (!khcount) if(!khcount)
ph_setkouho(clrec, (TypeDicOfs)1, (STDYIN *)NULL); ph_setkouho(clrec, (TypeDicOfs)1, (STDYIN*)NULL);
return; return;
} }
(*curdict->getdic)(curdict, jrec -> jseg); (*curdict->getdic)(curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1; ptr = dicbuf + jrec->jofsst + 1;
for ( ; *ptr != HINSIBLKTERM ; ptr = skipkstr(ptr)) { for(; *ptr != HINSIBLKTERM; ptr = skipkstr(ptr)) {
offset = ptr - dicbuf; offset = ptr - dicbuf;
sptr = srchstdy(jrec -> jseg, offset, jrec -> dicid); sptr = srchstdy(jrec->jseg, offset, jrec->dicid);
if (!khcount){ if(!khcount) {
ph_setkouho(clrec, offset, sptr); ph_setkouho(clrec, offset, sptr);
continue; continue;
} }
if (!sptr) continue; if(!sptr) continue;
if (sptr -> styno < kouhotbl[0].styno) { if(sptr->styno < kouhotbl[0].styno) {
ph_setkouho(clrec, offset, sptr); ph_setkouho(clrec, offset, sptr);
} }
else if (sptr -> styno == kouhotbl -> styno) { else if(sptr->styno == kouhotbl->styno) {
if (!(kouhotbl[0].ka_fg && if(!(kouhotbl[0].ka_fg &&
sptr -> ka_kj == kouhotbl[0].ka_kj)) { sptr->ka_kj == kouhotbl[0].ka_kj)) {
ph_setkouho(clrec, offset, sptr); ph_setkouho(clrec, offset, sptr);
} }
} }
} }
} }
int int ph_khtbl(CLREC* clrec) {
ph_khtbl(CLREC *clrec) JREC* jrec;
{ int flg = FALSE;
JREC *jrec;
int flg = FALSE;
switch((jrec = clrec -> jnode) -> class) { switch((jrec = clrec->jnode)->class) {
case C_DICT: case C_DICT:
ph_setsty(clrec); ph_setsty(clrec);
break; break;
@ -101,19 +98,17 @@ ph_khtbl(CLREC *clrec)
case C_N_KAZULONG: case C_N_KAZULONG:
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
if (jrec -> jofsst) { if(jrec->jofsst) {
ph_setsty(clrec); ph_setsty(clrec);
break; break;
} } else
else
flg = TRUE; flg = TRUE;
case C_BUNSETU: case C_BUNSETU:
case C_MINASI: case C_MINASI:
case C_WAKACHI: case C_WAKACHI:
if (!khcount) ph_setkouho(clrec, (TypeDicOfs)0, (STDYIN *)0); if(!khcount) ph_setkouho(clrec, (TypeDicOfs)0, (STDYIN*)0);
break; break;
} }
return flg; return flg;
} }

View file

@ -33,8 +33,6 @@
* $SonyDate: 1994/06/03 08:02:10 $ * $SonyDate: 1994/06/03 08:02:10 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
#include "sj_right.h" #include "sj_right.h"
@ -43,49 +41,44 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
isfukusi(TypeGram hinsi) isfukusi(TypeGram hinsi) {
{ if(FUKUSI_1 <= hinsi && hinsi <= FUKUSI_7)
if (FUKUSI_1 <= hinsi && hinsi <= FUKUSI_7)
return TRUE; return TRUE;
else if (hinsi == MEISI_11 || hinsi == D_MEISI_6) else if(hinsi == MEISI_11 || hinsi == D_MEISI_6)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
static int static int
istaigen(TypeCnct right) istaigen(TypeCnct right) {
{ if(right == R_MEISI || right == R_DMEISI || right == R_SMEISI1)
if (right == R_MEISI || right == R_DMEISI || right == R_SMEISI1)
return TRUE; return TRUE;
if (right == R_WO_MEISI || right == R_DAIMEISI || right == R_JOSUUSI) if(right == R_WO_MEISI || right == R_DAIMEISI || right == R_JOSUUSI)
return TRUE; return TRUE;
if (right == R_RENYOU1 || (R_RENYOU3 <= right && right <= R_SA5RENYOU4)) if(right == R_RENYOU1 || (R_RENYOU3 <= right && right <= R_SA5RENYOU4))
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
static int static int
taicnt(TypeGram hinsi1, TypeGram hinsi2) taicnt(TypeGram hinsi1, TypeGram hinsi2) {
{ if(hinsi2 == TANKANJI) return 0;
if (hinsi2 == TANKANJI) return 0;
if (MYOUJI <= hinsi1 && hinsi1 <= KEN_KU) { if(MYOUJI <= hinsi1 && hinsi1 <= KEN_KU) {
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9) if(MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9)
return Taipri(hinsi1 - MYOUJI, hinsi2); return Taipri(hinsi1 - MYOUJI, hinsi2);
else else
return 3; return 3;
} } else if((MEISI_1 <= hinsi1 && hinsi1 <= MEISI_11) ||
else if ((MEISI_1 <= hinsi1 && hinsi1 <= MEISI_11) || hinsi1 == D_MEISI_2) {
hinsi1 == D_MEISI_2) { if(MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9) {
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9) {
return Taipri(5, hinsi2); return Taipri(5, hinsi2);
} } else
else
return 5; return 5;
} }
else { else {
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9) if(MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9)
return Taipri(6, hinsi2); return Taipri(6, hinsi2);
else else
return 4; return 4;
@ -93,70 +86,65 @@ taicnt(TypeGram hinsi1, TypeGram hinsi2)
} }
static int static int
sttcnt(TypeGram hinsi1, TypeGram hinsi2) sttcnt(TypeGram hinsi1, TypeGram hinsi2) {
{ if(SETTOU_1 <= hinsi1 && hinsi1 <= SETTOU_5) {
if (SETTOU_1 <= hinsi1 && hinsi1 <= SETTOU_5) { if(MEISI_1 <= hinsi2 && hinsi2 <= SUUSI)
if (MEISI_1 <= hinsi2 && hinsi2 <= SUUSI)
return Sttpri(hinsi1 - SETTOU_1, hinsi2); return Sttpri(hinsi1 - SETTOU_1, hinsi2);
} }
return 4; return 4;
} }
int int priority(CLREC* clrec) {
priority(CLREC *clrec) int prty;
{ CLREC* cl2rec;
int prty; int keeplen;
CLREC *cl2rec; TypeGram hinsi1;
int keeplen; int i;
TypeGram hinsi1; int prev = 0;
int i;
int prev = 0;
if (clrec->cllen == clrec->cl2len) return 0xff; if(clrec->cllen == clrec->cl2len) return 0xff;
if (clrec->jnode->class == C_BUNSETU) { if(clrec->jnode->class == C_BUNSETU) {
prty = Termtbl[clrec->right] & GETPRI; prty = Termtbl[clrec->right] & GETPRI;
return(0xf0 + prty); return (0xf0 + prty);
} }
hinsi1 = clrec->jnode->hinsi; hinsi1 = clrec->jnode->hinsi;
if (prevclrow == R_WO || prevclrow == R_WO_S || if(prevclrow == R_WO || prevclrow == R_WO_S ||
prevclrow == R_NI1 || prevclrow == R_DRENYOU2) { prevclrow == R_NI1 || prevclrow == R_DRENYOU2) {
if (clrec -> kubun == K_DOUSHI || isfukusi(hinsi1)) if(clrec->kubun == K_DOUSHI || isfukusi(hinsi1))
prev = 5; prev = 5;
} }
else if (istaigen(prevclrow)) { else if(istaigen(prevclrow)) {
if (clrec -> kubun == K_TAIGEN) if(clrec->kubun == K_TAIGEN)
prev = taicnt(prevclgrm, hinsi1); prev = taicnt(prevclgrm, hinsi1);
else else
prev = 0; prev = 0;
} }
else if (prevclrow == R_SETTOU) { else if(prevclrow == R_SETTOU) {
if (clrec -> jnode -> sttofs) if(clrec->jnode->sttofs)
prty = 2; prty = 2;
else else
prty = sttcnt(prevclgrm, hinsi1); prty = sttcnt(prevclgrm, hinsi1);
} }
if(hinsi1 >= SETUBI_1 && hinsi1 <= SETUBI_9 && (!prev)) {
if (hinsi1 >= SETUBI_1 && hinsi1 <= SETUBI_9 && (!prev)) {
prty = 1; prty = 1;
goto finish; goto finish;
} }
cl2rec = maxclptr; cl2rec = maxclptr;
keeplen = cl2rec -> cllen; keeplen = cl2rec->cllen;
if (clrec->right == R_WO || clrec->right == R_WO_S || if(clrec->right == R_WO || clrec->right == R_WO_S ||
clrec->right == R_NI1 || clrec->right == R_DRENYOU2) { clrec->right == R_NI1 || clrec->right == R_DRENYOU2) {
while (cl2rec && (int)cl2rec->cllen == keeplen) { while(cl2rec && (int)cl2rec->cllen == keeplen) {
if (cl2rec->kubun == K_DOUSHI) { if(cl2rec->kubun == K_DOUSHI) {
prty = 14; prty = 14;
goto finish; goto finish;
} }
@ -164,42 +152,40 @@ priority(CLREC *clrec)
} }
} }
else if (clrec->right == R_SETTOU) { else if(clrec->right == R_SETTOU) {
prty = 0; prty = 0;
while (cl2rec && (int)cl2rec -> cllen == keeplen) { while(cl2rec && (int)cl2rec->cllen == keeplen) {
if (cl2rec -> jnode -> sttofs ) if(cl2rec->jnode->sttofs)
i = 2; i = 2;
else else
i = sttcnt(hinsi1, cl2rec->jnode->hinsi); i = sttcnt(hinsi1, cl2rec->jnode->hinsi);
if (i > prty) if(i > prty)
prty = i; prty = i;
cl2rec = cl2rec -> clsort; cl2rec = cl2rec->clsort;
} }
goto finish; goto finish;
} }
else if (istaigen(clrec->right)) { else if(istaigen(clrec->right)) {
prty = 0; prty = 0;
while (cl2rec && (int)cl2rec->cllen == keeplen) { while(cl2rec && (int)cl2rec->cllen == keeplen) {
i = taicnt(hinsi1, cl2rec->jnode->hinsi); i = taicnt(hinsi1, cl2rec->jnode->hinsi);
if (i > prty) if(i > prty)
prty = i; prty = i;
cl2rec = cl2rec->clsort; cl2rec = cl2rec->clsort;
} }
if (clrec->jnode->stbofs) { if(clrec->jnode->stbofs) {
prty -= 3; prty -= 3;
} }
goto finish; goto finish;
} }
prty = Termtbl[clrec->right]; prty = Termtbl[clrec->right];
if(prty & RENTAI) {
if (prty & RENTAI) { while(cl2rec && (int)cl2rec->cllen == keeplen) {
while (cl2rec && (int)cl2rec->cllen == keeplen) { if(cl2rec->kubun == K_TAIGEN) {
if (cl2rec -> kubun == K_TAIGEN) {
prty &= GETPRI; prty &= GETPRI;
goto finish; goto finish;
} }
@ -211,15 +197,14 @@ priority(CLREC *clrec)
else { else {
prty &= GETPRI; prty &= GETPRI;
if (prty == P_RENYOU_J || prty == P_RENYOU_M ) { if(prty == P_RENYOU_J || prty == P_RENYOU_M) {
while (clrec->cllen != 1 && cl2rec && while(clrec->cllen != 1 && cl2rec &&
(int)cl2rec->cllen == keeplen ) { (int)cl2rec->cllen == keeplen) {
if (cl2rec->kubun == K_DOUSHI) { if(cl2rec->kubun == K_DOUSHI) {
prty = 6; prty = 6;
goto finish; goto finish;
} } else if(cl2rec->jnode->hinsi == SETUBI_1 ||
else if (cl2rec->jnode->hinsi == SETUBI_1 || cl2rec->jnode->hinsi == SETUBI_2) {
cl2rec->jnode->hinsi == SETUBI_2) {
prty = 7; prty = 7;
goto finish; goto finish;
} }
@ -229,57 +214,53 @@ priority(CLREC *clrec)
} }
} }
finish: finish:
cl2rec = maxclptr; cl2rec = maxclptr;
if (hinsi1 == SUUSI) prty -= 4; if(hinsi1 == SUUSI) prty -= 4;
if (cl2rec -> jnode -> hinsi == SUUSI) prty -= 3; if(cl2rec->jnode->hinsi == SUUSI) prty -= 3;
if (cl2rec->jnode->class == C_DICT && if(cl2rec->jnode->class == C_DICT &&
cl2rec->jnode->jlen == 1 && (cl2rec->kubun != K_DOUSHI)) { cl2rec->jnode->jlen == 1 && (cl2rec->kubun != K_DOUSHI)) {
prty -= 2; prty -= 2;
} }
if ((!istaigen(clrec->right)) && (cl2rec->jnode->hinsi == SETUBI_2)) { if((!istaigen(clrec->right)) && (cl2rec->jnode->hinsi == SETUBI_2)) {
prty -= 4; prty -= 4;
} }
prty += 20 - clrec->cllen + clrec->jnode->jlen + clrec->gobiln; prty += 20 - clrec->cllen + clrec->jnode->jlen + clrec->gobiln;
return(prty + prev); return (prty + prev);
} }
void pritiny() {
CLREC* clrec;
int keeplen;
int i, prty = 0;
void clrec = selcl;
pritiny() keeplen = clrec->cllen;
{
CLREC *clrec;
int keeplen;
int i, prty = 0;
clrec = selcl; if(istaigen(prevclrow)) {
keeplen = clrec -> cllen; while(clrec && (int)clrec->cllen == keeplen) {
i = taicnt(prevclgrm, clrec->jnode->hinsi);
if (istaigen(prevclrow)) { if(i > prty) {
while (clrec && (int)clrec -> cllen == keeplen) {
i = taicnt(prevclgrm, clrec -> jnode -> hinsi);
if (i > prty) {
selcl = clrec; selcl = clrec;
prty = i; prty = i;
} }
clrec = clrec -> clsort; clrec = clrec->clsort;
} }
} }
else { else {
while (clrec && (int)clrec -> cllen == keeplen) { while(clrec && (int)clrec->cllen == keeplen) {
if (clrec -> jnode -> hinsi >= MYOUJI && if(clrec->jnode->hinsi >= MYOUJI &&
clrec -> jnode -> hinsi <= KEN_KU) clrec->jnode->hinsi <= KEN_KU)
clrec = clrec -> clsort; clrec = clrec->clsort;
else if (clrec -> jnode -> hinsi == TANKANJI) else if(clrec->jnode->hinsi == TANKANJI)
return; return;
else { else {
selcl = clrec; selcl = clrec;
@ -288,4 +269,3 @@ pritiny()
} }
} }
} }

View file

@ -33,72 +33,216 @@
* $SonyDate: 1994/06/03 08:02:11 $ * $SonyDate: 1994/06/03 08:02:11 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char taipri[7][45] = { u_char taipri[7][45] = {
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, {0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 3, 3, 3, 3, 3, 3, 0, 0, 4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
0, 3, 20, 4, 3, 3, 4, 4, 4, 4, 0, 3, 20, 4, 3, 3, 4, 4, 4, 4,
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, {0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 3, 3, 3, 3, 3, 3, 0, 0, 4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, 4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, {0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 3, 3, 3, 3, 3, 3, 0, 0, 4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6}, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
{ 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, {0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 3, 3, 3, 3, 3, 3, 0, 0, 5, 5, 3, 3, 3, 3, 3, 3, 0, 0,
0, 3, 3, 3, 4, 5, 4, 4, 4, 4, 0, 3, 3, 3, 4, 5, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 4, 4, 4, 4, 6}, 4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 4, 4, 4, 4, 6},
{ 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, {0, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 4, 4, 4, 4, 4, 4, 0, 0, 7, 7, 4, 4, 4, 4, 4, 4, 0, 0,
0, 4, 4, 4, 20, 20, 4, 4, 4, 4, 0, 4, 4, 4, 20, 20, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6}, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
{ 0, 8, 8, 8, 8, 8, 7, 8, 8, 8, {0, 8, 8, 8, 8, 8, 7, 8, 8, 8,
8, 8, 3, 6, 7, 3, 3, 5, 0, 0, 8, 8, 3, 6, 7, 3, 3, 5, 0, 0,
0, 3, 3, 3, 3, 3, 5, 5, 5, 5, 0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 8, 8, 11, 5, 7, 7, 7, 7, 7}, 5, 5, 5, 5, 5, 5, 8, 8, 11, 5, 7, 7, 7, 7, 7},
{ 0, 5, 6, 6, 6, 6, 5, 6, 6, 6, {0, 5, 6, 6, 6, 6, 5, 6, 6, 6,
6, 6, 3, 3, 3, 3, 3, 5, 0, 0, 6, 6, 3, 3, 3, 3, 3, 5, 0, 0,
0, 3, 3, 3, 3, 3, 5, 5, 5, 5, 0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
4, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5} 4, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5}};
};
u_char sttpri[5][31] = {
{
0,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
2,
4,
4,
4,
4,
4,
0,
0,
0,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
},
u_char sttpri[5][31] = { {
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
0,
0,
0,
4,
4,
4,
10,
10,
4,
4,
4,
4,
4,
},
{ 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, {
7, 7, 2, 4, 4, 4, 4, 4, 0, 0, 4,
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, }, 4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
0,
0,
0,
10,
10,
4,
4,
4,
4,
4,
4,
4,
4,
},
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, {
4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0,
0, 4, 4, 4, 10, 10, 4, 4, 4, 4, 4, }, 4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
0,
0,
0,
4,
4,
4,
4,
4,
4,
4,
4,
4,
15,
},
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, {
4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0,
0, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, }, 12,
12,
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12,
4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 12,
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 15, }, 12,
12,
{ 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 9, 9, 9, 9, 9, 9, 0, 0, 12,
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, } 12,
}; 12,
12,
9,
9,
9,
9,
9,
9,
0,
0,
0,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
}};

View file

@ -33,121 +33,118 @@
* $SonyDate: 1995/07/21 05:22:51 $ * $SonyDate: 1995/07/21 05:22:51 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char kigou[] = { u_char kigou[] = {
Y_L_KAKKO, Y_L_KAKKO,
Y_KUTEN, Y_KUTEN,
Y_TOUTEN, Y_TOUTEN,
Y_COMMA, Y_COMMA,
Y_PERIOD, Y_PERIOD,
Y_L_KAKKO, Y_L_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_BIKKURI, Y_BIKKURI,
Y_BIKKURI, Y_BIKKURI,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
_TYOUON, _TYOUON,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_L_KAKKO, Y_L_KAKKO,
Y_QUOTA, Y_QUOTA,
Y_L_KAKKO, Y_L_KAKKO,
Y_QUOTA, Y_QUOTA,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_L_KAKKO, Y_L_KAKKO,
Y_R_KAKKO, Y_R_KAKKO,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_S_KIGOU2, Y_S_KIGOU2,
Y_S_KIGOU1, Y_S_KIGOU1,
Y_S_KIGOU1, Y_S_KIGOU1,
Y_S_KIGOU2, Y_S_KIGOU2,
Y_S_KIGOU1, Y_S_KIGOU1,
Y_S_KIGOU2, Y_S_KIGOU2,
_IGETA, _IGETA,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
_ATTO, _ATTO,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
_YUUBIN, _YUUBIN,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU, Y_KIGOU,
Y_KIGOU Y_KIGOU};
};

File diff suppressed because it is too large Load diff

View file

@ -36,69 +36,69 @@
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void selclrec() {
selclrec() int len;
{ CLREC* rec;
int len;
CLREC *rec;
nextcllen = 0; nextcllen = 0;
len = selcl -> cllen; len = selcl->cllen;
rec = clt1st; rec = clt1st;
while (rec) { while(rec) {
if (len >= (unsigned int) rec -> cllen) break; if(len >= (unsigned int)rec->cllen) break;
rec = rec -> clsort; rec = rec->clsort;
} }
while (rec) { while(rec) {
if (len > (unsigned int) rec -> cllen) return; if(len > (unsigned int)rec->cllen) return;
if (rec -> jnode -> class == C_BUNSETU) break; if(rec->jnode->class == C_BUNSETU) break;
rec = rec -> clsort; rec = rec->clsort;
} }
if (!rec) return; if(!rec) return;
len = ClYomi1Len(CLSTUDYDICT + rec->jnode->jofsst); len = ClYomi1Len(CLSTUDYDICT + rec->jnode->jofsst);
nextcllen = rec -> cllen - len; nextcllen = rec->cllen - len;
while (rec) { while(rec) {
if (len == rec -> cllen) { if(len == rec->cllen) {
selcl = rec; selcl = rec;
break; break;
} }
else if (len > (unsigned int) rec -> cllen) { else if(len > (unsigned int)rec->cllen) {
rec = NULL; rec = NULL;
break; break;
} }
rec = rec -> clsort; rec = rec->clsort;
} }
if (rec == NULL) { if(rec == NULL) {
int klen; int klen;
u_char ch; u_char ch;
free_clall(clt1st); free_clall(clt1st);
free_jall(jrt1st); free_jall(jrt1st);
klen = cnvlen; klen = cnvlen;
cnvlen = len; cnvlen = len;
ch = *(cnvstart + len); ch = *(cnvstart + len);
*(cnvstart + len) = 0; *(cnvstart + len) = 0;
mkjiritu(DO_IKKATU); mkjiritu(DO_IKKATU);
mkbunsetu(); mkbunsetu();
if (!maxclptr) wakachi(); if(!maxclptr) wakachi();
jrt1st = maxjptr; jrt1st = maxjptr;
selcl = clt1st = maxclptr; selcl = clt1st = maxclptr;
cnvlen = klen; cnvlen = klen;
*(cnvstart + len) = ch; *(cnvstart + len) = ch;
} }
free_clall(clt2nd); clt2nd = NULL; free_clall(clt2nd);
free_jall(jrt2nd); jrt2nd = NULL; clt2nd = NULL;
free_jall(jrt2nd);
jrt2nd = NULL;
} }

View file

@ -40,84 +40,72 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_short selsjAR[] = { static u_short selsjAR[] = {
SELARB0, SELARB0,
SELARBCMA | JFLAG_NK4 | JFLAG_NN0, SELARBCMA | JFLAG_NK4 | JFLAG_NN0,
SELKANSJYM | JFLAG_NN0, SELKANSJYM | JFLAG_NN0,
SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0, SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0,
SELKANSJ0 | JFLAG_NK2, SELKANSJ0 | JFLAG_NK2,
SELNUMTERM SELNUMTERM};
};
static u_short selsjARCM[] = { static u_short selsjARCM[] = {
SELARBCMA | JFLAG_NK4 | JFLAG_NN0, SELARBCMA | JFLAG_NK4 | JFLAG_NN0,
SELARB0, SELARB0,
SELKANSJYM | JFLAG_NN0, SELKANSJYM | JFLAG_NN0,
SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0, SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0,
SELKANSJ0 | JFLAG_NK2, SELKANSJ0 | JFLAG_NK2,
SELNUMTERM SELNUMTERM};
};
static u_short selsjKAZU[] = { static u_short selsjKAZU[] = {
SELKANSJYM | JFLAG_NN0, SELKANSJYM | JFLAG_NN0,
SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0, SELKANSJYM2 | SELNUM1_23_10_1 | JFLAG_NN0,
SELKANSJ0 | JFLAG_NK2, SELKANSJ0 | JFLAG_NK2,
SELARB0, SELARB0,
SELARBCMA | JFLAG_NK4 | JFLAG_NN0, SELARBCMA | JFLAG_NK4 | JFLAG_NN0,
SELNUMTERM SELNUMTERM};
};
static u_short selsjSUUJI[] = { static u_short selsjSUUJI[] = {
SELKANSJ0, SELKANSJ0,
SELARB0, SELARB0,
SELNUMTERM SELNUMTERM};
};
static u_short selsjNANSUU[] = { static u_short selsjNANSUU[] = {
SELKANSJYM, SELKANSJYM,
SELNUMTERM SELNUMTERM};
};
static u_short selsjAR17[] = { static u_short selsjAR17[] = {
SELLONGARB, SELLONGARB,
SELLONGARBCMA, SELLONGARBCMA,
SELNUMTERM SELNUMTERM};
};
static u_short selsjAR17CM[] = { static u_short selsjAR17CM[] = {
SELLONGARBCMA, SELLONGARBCMA,
SELLONGARB, SELLONGARB,
SELNUMTERM SELNUMTERM};
};
static u_short selsjAR17SJ[] = { static u_short selsjAR17SJ[] = {
SELLONGARB, SELLONGARB,
SELLONGSJ, SELLONGSJ,
SELNUMTERM SELNUMTERM};
};
static u_short selsjKANKURA[] = { static u_short selsjKANKURA[] = {
SELKANSJKR, SELKANSJKR,
SELARBKR, SELARBKR,
SELNUMTERM SELNUMTERM};
};
static u_short selsjARAKURA[] = { static u_short selsjARAKURA[] = {
SELARBKR, SELARBKR,
SELKANSJKR | JFLAG_NSN, SELKANSJKR | JFLAG_NSN,
SELNUMTERM SELNUMTERM};
};
u_short* selsjadrs[] = {
u_short *selsjadrs[] = { selsjAR,
selsjAR, selsjARCM,
selsjARCM, selsjKAZU,
selsjKAZU, selsjSUUJI,
selsjSUUJI, selsjNANSUU,
selsjNANSUU, selsjKANKURA,
selsjKANKURA, selsjARAKURA,
selsjARAKURA, selsjAR17,
selsjAR17, selsjAR17CM,
selsjAR17CM, selsjAR17SJ};
selsjAR17SJ
};

View file

@ -33,8 +33,6 @@
* $SonyDate: 1994/06/03 08:02:16 $ * $SonyDate: 1994/06/03 08:02:16 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_right.h" #include "sj_right.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
@ -43,32 +41,31 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
cnjstrcmp(u_char *yptr, u_char *cnjp, int *saml) cnjstrcmp(u_char* yptr, u_char* cnjp, int* saml) {
{ int asklen;
int asklen; int nkrlen;
int nkrlen;
asklen = CnjAskLen(cnjp); asklen = CnjAskLen(cnjp);
if (*saml < asklen) return CONT; if(*saml < asklen) return CONT;
if (*saml > asklen) return OVER; if(*saml > asklen) return OVER;
nkrlen = CnjNkrLen(cnjp); nkrlen = CnjNkrLen(cnjp);
yptr += asklen; yptr += asklen;
cnjp ++; cnjp++;
while (nkrlen--) { while(nkrlen--) {
if (*yptr > *cnjp) if(*yptr > *cnjp)
return CONT; return CONT;
else if (*yptr < *cnjp) { else if(*yptr < *cnjp) {
if (!*yptr) return PARTLY; if(!*yptr) return PARTLY;
return OVER; return OVER;
} }
else{ else {
yptr++; yptr++;
cnjp++; cnjp++;
(*saml)++; (*saml)++;
@ -79,22 +76,21 @@ cnjstrcmp(u_char *yptr, u_char *cnjp, int *saml)
} }
static TypeCnct static TypeCnct
cnvrow(JREC *rec, TypeCnct row) cnvrow(JREC* rec, TypeCnct row) {
{ TypeGram hinsi;
TypeGram hinsi; int stt;
int stt;
hinsi = rec -> hinsi; hinsi = rec->hinsi;
if ((stt = rec -> sttofs) == SETTOU_O) { if((stt = rec->sttofs) == SETTOU_O) {
if (R_RENYOU1 <= row && row <= R_SA5RENYOU1) if(R_RENYOU1 <= row && row <= R_SA5RENYOU1)
row += 6; row += 6;
else if (R_RENYOU3 <= row && row <= R_SA5RENYOU3) else if(R_RENYOU3 <= row && row <= R_SA5RENYOU3)
row += 3; row += 3;
else if((hinsi>=KEIYOUSI_1 && hinsi<=KE_DOUSI_9)|| else if((hinsi >= KEIYOUSI_1 && hinsi <= KE_DOUSI_9) ||
(hinsi == MEISI_5) || (hinsi == MEISI_9)) (hinsi == MEISI_5) || (hinsi == MEISI_9))
; ;
@ -102,52 +98,50 @@ cnvrow(JREC *rec, TypeCnct row)
row = 0; row = 0;
} }
else if (stt == SETTOU_GO) { else if(stt == SETTOU_GO) {
if (hinsi == MEISI_7 && row == R_SMEISI1) if(hinsi == MEISI_7 && row == R_SMEISI1)
row++; row++;
} }
return row; return row;
} }
int int setconj(TypeGram hinsi, JREC* jrec, CREC* crec) {
setconj(TypeGram hinsi, JREC *jrec, CREC *crec) u_char* yptr;
{ int cmp;
u_char *yptr; TypeCnct right;
int cmp; int saml;
TypeCnct right; int ofslen;
int saml; int count = 0;
int ofslen; u_char* cnj;
int count = 0;
u_char *cnj;
if (cnj = Conjadr(hinsi)) { if(cnj = Conjadr(hinsi)) {
saml = ofslen = 0; saml = ofslen = 0;
yptr = cnvstart + jrec -> jlen; yptr = cnvstart + jrec->jlen;
if ((*cnj) & TYOUONFLG) { if((*cnj) & TYOUONFLG) {
while (*yptr == _TYOUON) { while(*yptr == _TYOUON) {
yptr++; yptr++;
ofslen++; ofslen++;
} }
} }
for ( ; *cnj != CNJEND ; cnj += CnjRecLen(cnj)) { for(; *cnj != CNJEND; cnj += CnjRecLen(cnj)) {
cmp = cnjstrcmp(yptr, cnj, &saml); cmp = cnjstrcmp(yptr, cnj, &saml);
if (cmp == OVER) break; if(cmp == OVER) break;
if (cmp == PARTLY) break; if(cmp == PARTLY) break;
if (cmp != MATCH) continue; if(cmp != MATCH) continue;
if (isdpnd(*(yptr + saml))) continue; if(isdpnd(*(yptr + saml))) continue;
if (right = cnvrow(jrec, (TypeCnct)CnjRight(cnj))) { if(right = cnvrow(jrec, (TypeCnct)CnjRight(cnj))) {
crec -> len = (u_char)(ofslen + saml); crec->len = (u_char)(ofslen + saml);
crec -> right = right; crec->right = right;
count++; count++;
crec++; crec++;
} }
@ -156,4 +150,3 @@ setconj(TypeGram hinsi, JREC *jrec, CREC *crec)
return count; return count;
} }

View file

@ -39,127 +39,122 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int setj_atrb(u_char* p) {
setj_atrb(u_char *p)
{
return 2; return 2;
} }
int int setj_ofs(u_char* p) {
setj_ofs(u_char *p) int contf = TRUE;
{
int contf = TRUE;
p = dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1); p = dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1);
do { do {
if (p[codesize(*p)] == KANJISTREND) contf = FALSE; if(p[codesize(*p)] == KANJISTREND) contf = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
p += setj_norm1(p); break; p += setj_norm1(p);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
p += setj_norm1(p); break; p += setj_norm1(p);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
p += setj_ofs(p); break; p += setj_ofs(p);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
p += setj_atrb(p); break; p += setj_atrb(p);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
p += setj_norm2(p); break; p += setj_norm2(p);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
p += setj_knj(p); break; p += setj_knj(p);
break;
case KANJISTREND: case KANJISTREND:
contf = FALSE; break; contf = FALSE;
break;
default: default:
p += setj_norm2(p); p += setj_norm2(p);
} }
} while (contf); } while(contf);
return 2; return 2;
} }
int int setj_knj(u_char* p) {
setj_knj(u_char *p) int contf = TRUE;
{
int contf = TRUE;
p = askknj[*p & KNJASSYUKUMASK]; p = askknj[*p & KNJASSYUKUMASK];
do { do {
if (p[codesize(*p)]== KANJISTREND) contf = FALSE; if(p[codesize(*p)] == KANJISTREND) contf = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
p += setj_norm1(p); break; p += setj_norm1(p);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
p += setj_norm1(p); break; p += setj_norm1(p);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
p += setj_ofs(p); break; p += setj_ofs(p);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
p += setj_atrb(p); break; p += setj_atrb(p);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
p += setj_norm2(p); break; p += setj_norm2(p);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
p += setj_knj(p); break; p += setj_knj(p);
break;
case KANJISTREND: case KANJISTREND:
contf = FALSE; break; contf = FALSE;
break;
default: default:
p += setj_norm2(p); p += setj_norm2(p);
} }
} while (contf); } while(contf);
return 1; return 1;
} }
int setj_norm1(u_char* p) {
int
setj_norm1(u_char *p)
{
return 1; return 1;
} }
int setj_norm2(u_char* p) {
int
setj_norm2(u_char *p)
{
return 2; return 2;
} }
int int setj_norm3(u_char* p) {
setj_norm3(u_char *p)
{
return 3; return 3;
} }
static u_char static u_char
chkhead(TypeGram gram) chkhead(TypeGram gram) {
{ if(!headcode) return TRUE;
if (!headcode) return TRUE;
if (headcode == SETTOU_DAI) { if(headcode == SETTOU_DAI) {
if (gram == SUUSI) return TRUE; if(gram == SUUSI) return TRUE;
} }
else { else {
gram--; gram--;
if ((Scncttbl(headcode-1, gram >> 3) << (gram & 0x07)) & 0x80) { if((Scncttbl(headcode - 1, gram >> 3) << (gram & 0x07)) & 0x80) {
return TRUE; return TRUE;
} }
} }
@ -167,146 +162,148 @@ chkhead(TypeGram gram)
return FALSE; return FALSE;
} }
void setjrec(u_char* tagp, int mode) {
TypeGram gram;
void u_char* ptr;
setjrec(u_char *tagp, int mode) u_char* endp;
{ u_char* tmp;
TypeGram gram; JREC* rec;
u_char *ptr; int plen;
u_char *endp; int nlen;
u_char *tmp; int len;
JREC *rec;
int plen;
int nlen;
int len;
plen = getplen(tagp); plen = getplen(tagp);
nlen = getnlen(tagp); nlen = getnlen(tagp);
len = plen + nlen; len = plen + nlen;
if (headcode) len += headlen; if(headcode) len += headlen;
ptr = tagp + DOUONBLKSIZENUMBER + nlen; ptr = tagp + DOUONBLKSIZENUMBER + nlen;
endp = tagp + getsize(tagp); endp = tagp + getsize(tagp);
for ( ; ptr < endp ; ptr = tmp + 1) { for(; ptr < endp; ptr = tmp + 1) {
for (tmp = ptr + 1; *tmp != HINSIBLKTERM ; ) { for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) { switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
tmp += setj_norm1(tmp); break; tmp += setj_norm1(tmp);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
tmp += setj_norm1(tmp); break; tmp += setj_norm1(tmp);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
tmp += setj_ofs(tmp); break; tmp += setj_ofs(tmp);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
tmp += setj_atrb(tmp); break; tmp += setj_atrb(tmp);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
tmp += setj_norm2(tmp); break; tmp += setj_norm2(tmp);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
tmp += setj_knj(tmp); break; tmp += setj_knj(tmp);
break;
case KANJISTREND: case KANJISTREND:
tmp++; break; tmp++;
break;
default: default:
tmp += setj_norm2(tmp); tmp += setj_norm2(tmp);
} }
} }
if ((gram = *ptr) == IKKATU && !(mode & DO_IKKATU)) continue; if((gram = *ptr) == IKKATU && !(mode & DO_IKKATU)) continue;
if (!chkhead(gram)) continue; if(!chkhead(gram)) continue;
if (!(rec = argjrec(len, (JREC *)NULL))) continue; if(!(rec = argjrec(len, (JREC*)NULL))) continue;
rec -> jseg = prevseg; rec->jseg = prevseg;
rec -> jofsst = ptr - dicbuf; rec->jofsst = ptr - dicbuf;
rec -> jofsed = tmp - dicbuf; rec->jofsed = tmp - dicbuf;
rec -> class = C_DICT; rec->class = C_DICT;
rec -> dicid = curdict->dicid; rec->dicid = curdict->dicid;
rec -> hinsi = gram; rec->hinsi = gram;
rec -> sttofs = headcode; rec->sttofs = headcode;
} }
} }
void setnumrec(u_char* tagp, JREC* rec, TypeGram gram) {
u_char* ptr;
void u_char* endp;
setnumrec(u_char *tagp, JREC *rec, TypeGram gram) u_char* tmp;
{ int plen, nlen, len;
u_char *ptr; JREC* jrec;
u_char *endp;
u_char *tmp;
int plen, nlen, len;
JREC *jrec;
plen = getplen(tagp); plen = getplen(tagp);
nlen = getnlen(tagp); nlen = getnlen(tagp);
len = plen + nlen; len = plen + nlen;
ptr = tagp + DOUONBLKSIZENUMBER + nlen; ptr = tagp + DOUONBLKSIZENUMBER + nlen;
endp = tagp + getsize(tagp); endp = tagp + getsize(tagp);
for ( ; ptr < endp ; ptr = tmp + 1) { for(; ptr < endp; ptr = tmp + 1) {
for (tmp = ptr + 1; *tmp != HINSIBLKTERM ; ) { for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) { switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
tmp += setj_norm1(tmp); break; tmp += setj_norm1(tmp);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
tmp += setj_norm1(tmp); break; tmp += setj_norm1(tmp);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
tmp += setj_ofs(tmp); break; tmp += setj_ofs(tmp);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
tmp += setj_atrb(tmp); break; tmp += setj_atrb(tmp);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
tmp += setj_norm2(tmp); break; tmp += setj_norm2(tmp);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
tmp += setj_knj(tmp); break; tmp += setj_knj(tmp);
break;
case KANJISTREND: case KANJISTREND:
tmp++; break; tmp++;
break;
default: default:
tmp += setj_norm2(tmp); tmp += setj_norm2(tmp);
} }
} }
if (gram != *ptr) continue; if(gram != *ptr) continue;
if (!(jrec = argjrec((int)(rec -> jlen + len), rec))) continue; if(!(jrec = argjrec((int)(rec->jlen + len), rec))) continue;
jrec -> jseg = prevseg; jrec->jseg = prevseg;
jrec -> jofsst = ptr - dicbuf; jrec->jofsst = ptr - dicbuf;
jrec -> jofsed = tmp - dicbuf; jrec->jofsed = tmp - dicbuf;
jrec -> dicid = curdict->dicid; jrec->dicid = curdict->dicid;
} }
} }
void setcrec(u_char* tagp) {
JREC* rec;
if(!(rec = argjrec((int)ClYomiLen(tagp), (JREC*)NULL))) return;
void rec->jofsst = tagp - CLSTUDYDICT;
setcrec(u_char *tagp) rec->class = C_BUNSETU;
{ rec->hinsi = ClGramCode(tagp);
JREC *rec;
if (!(rec = argjrec((int)ClYomiLen(tagp), (JREC *)NULL))) return;
rec -> jofsst = tagp - CLSTUDYDICT;
rec -> class = C_BUNSETU;
rec -> hinsi = ClGramCode(tagp);
} }

View file

@ -39,96 +39,94 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int hiraknj(); static int hiraknj();
void void setkouho(CLREC* clrec, TypeDicOfs offs, int mode) {
setkouho(CLREC *clrec, TypeDicOfs offs, int mode) JREC* jrec;
{ KHREC* kptr;
JREC *jrec; u_char* fptr;
KHREC *kptr;
u_char *fptr;
int flg; int flg;
int i; int i;
if (khcount >= MAXKOUHONUMBER) return; if(khcount >= MAXKOUHONUMBER) return;
jrec = clrec -> jnode; jrec = clrec->jnode;
kptr = &kouhotbl[khcount++]; kptr = &kouhotbl[khcount++];
if (mode && !offs) nkhcount++; if(mode && !offs) nkhcount++;
kptr -> clrec = clrec; kptr->clrec = clrec;
kptr -> offs = offs; kptr->offs = offs;
kptr -> rank = 0; kptr->rank = 0;
kptr -> styno = 0; kptr->styno = 0;
kptr -> mode = (u_char)mode; kptr->mode = (u_char)mode;
if (jrec -> flags & JFLAG_KA) { if(jrec->flags & JFLAG_KA) {
kptr -> ka_fg = 1; kptr->ka_fg = 1;
kptr -> ka_kj = 1; kptr->ka_kj = 1;
flg = 1; flg = 1;
} } else if(clrec->fzk_ka) {
else if (clrec -> fzk_ka) { kptr->ka_fg = 1;
kptr -> ka_fg = 1; kptr->ka_kj = 0;
kptr -> ka_kj = 0; flg = 2;
flg = 2; } else {
} kptr->ka_fg = 0;
else { kptr->ka_kj = 0;
kptr -> ka_fg = 0; flg = 0;
kptr -> ka_kj = 0;
flg = 0;
} }
kptr -> sttfg = kptr -> sttkj = 0; kptr->sttfg = kptr->sttkj = 0;
if (!(fptr = Settou_ptr(jrec -> sttofs))) return; if(!(fptr = Settou_ptr(jrec->sttofs))) return;
if (!SttHiraKnj(fptr)) return; if(!SttHiraKnj(fptr)) return;
kptr -> sttfg = 1; kptr->sttfg = 1;
kptr -> sttkj = 0; kptr->sttkj = 0;
i = hiraknj(dicbuf + offs); i = hiraknj(dicbuf + offs);
if (offs > 1 && (i == 2 || i == 3)) return; if(offs > 1 && (i == 2 || i == 3)) return;
if (khcount >= MAXKOUHONUMBER) return; if(khcount >= MAXKOUHONUMBER) return;
kptr++; kptr++;
khcount++; khcount++;
if (mode && !offs) nkhcount++; if(mode && !offs) nkhcount++;
kptr -> clrec = clrec; kptr->clrec = clrec;
kptr -> offs = offs; kptr->offs = offs;
kptr -> rank = 0; kptr->rank = 0;
kptr -> styno = 0; kptr->styno = 0;
kptr -> mode = (u_char)mode; kptr->mode = (u_char)mode;
kptr -> sttfg = 1; kptr->sttfg = 1;
kptr -> sttkj = 1; kptr->sttkj = 1;
switch (flg) { switch(flg) {
case 1: kptr -> ka_fg = kptr -> ka_kj = 1; break; case 1:
case 2: kptr -> ka_fg = 1; kptr -> ka_kj = 0; break; kptr->ka_fg = kptr->ka_kj = 1;
default: kptr -> ka_fg = kptr -> ka_kj = 0; break; break;
case 2:
kptr->ka_fg = 1;
kptr->ka_kj = 0;
break;
default:
kptr->ka_fg = kptr->ka_kj = 0;
break;
} }
} }
void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
JREC* jrec;
u_char* p;
if(sptr) {
void stdytop = sptr;
ph_setkouho(CLREC *clrec, TypeDicOfs offs, STDYIN *sptr) kouhotbl[0].styno = sptr->styno;
{ kouhotbl[0].sttkj = sptr->sttkj;
JREC *jrec; } else {
u_char *p;
if (sptr) {
stdytop = sptr;
kouhotbl[0].styno = sptr -> styno;
kouhotbl[0].sttkj = sptr -> sttkj;
}
else {
kouhotbl[0].styno = -1; kouhotbl[0].styno = -1;
kouhotbl[0].sttkj = 0; kouhotbl[0].sttkj = 0;
} }
@ -137,139 +135,112 @@ ph_setkouho(CLREC *clrec, TypeDicOfs offs, STDYIN *sptr)
kouhotbl[0].offs = offs; kouhotbl[0].offs = offs;
kouhotbl[0].rank = 0; kouhotbl[0].rank = 0;
kouhotbl[0].mode = sel_sjmode(jrec = clrec -> jnode); kouhotbl[0].mode = sel_sjmode(jrec = clrec->jnode);
kouhotbl[0].sttfg = (u_char) kouhotbl[0].sttfg = (u_char)((p = Settou_ptr(jrec->sttofs)) ? (SttHiraKnj(p) ? 1 : 0) : 0);
((p = Settou_ptr(jrec->sttofs)) ? (SttHiraKnj(p)?1:0) : 0);
if (jrec -> flags & JFLAG_KA) { if(jrec->flags & JFLAG_KA) {
kouhotbl[0].ka_fg = kouhotbl[0].ka_fg =
kouhotbl[0].ka_kj = 1; kouhotbl[0].ka_kj = 1;
} } else if(clrec->fzk_ka) {
else if (clrec -> fzk_ka) {
kouhotbl[0].ka_fg = 1; kouhotbl[0].ka_fg = 1;
kouhotbl[0].ka_kj = 0; kouhotbl[0].ka_kj = 0;
} } else {
else {
kouhotbl[0].ka_fg = kouhotbl[0].ka_fg =
kouhotbl[0].ka_kj = 0; kouhotbl[0].ka_kj = 0;
} }
khcount = 1; khcount = 1;
} }
static int static int
hiraknj(u_char *p) hiraknj(u_char* p) {
{ char flg = TRUE;
char flg = TRUE; int i;
int i; int result;
int result;
do { do {
if (p[codesize(*p)] == KANJISTREND) flg = FALSE; if(p[codesize(*p)] == KANJISTREND) flg = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
result = hiraknj_hask(p, &i); break; result = hiraknj_hask(p, &i);
break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
result = hiraknj_kask(p, &i); break; result = hiraknj_kask(p, &i);
break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
result = hiraknj_ofs(p, &i); break; result = hiraknj_ofs(p, &i);
break;
case AIATTRIBUTE: case AIATTRIBUTE:
result = hiraknj_atrb(p, &i); break; result = hiraknj_atrb(p, &i);
break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
result = hiraknj_norm(p, &i); break; result = hiraknj_norm(p, &i);
break;
case KANJIASSYUKU: case KANJIASSYUKU:
result = hiraknj_knj(p, &i); break; result = hiraknj_knj(p, &i);
break;
default: default:
result = hiraknj_hira(p, &i); result = hiraknj_hira(p, &i);
} }
if (result) return result; if(result) return result;
p += i; p += i;
} while (flg); } while(flg);
return 0; return 0;
} }
int hiraknj_atrb(u_char* p, int* len) {
int
hiraknj_atrb(u_char *p, int *len)
{
*len = 2; *len = 2;
return 0; return 0;
} }
int hiraknj_ofs(u_char* p, int* len) {
int
hiraknj_ofs(u_char *p, int *len)
{
*len = 2; *len = 2;
return hiraknj(dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1)); return hiraknj(dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1));
} }
int hiraknj_knj(u_char* p, int* len) {
int
hiraknj_knj(u_char *p, int *len)
{
*len = 1; *len = 1;
return hiraknj(askknj[*p & KNJASSYUKUMASK]); return hiraknj(askknj[*p & KNJASSYUKUMASK]);
} }
int hiraknj_hask(u_char* p, int* len) {
int
hiraknj_hask(u_char *p, int *len)
{
*len = 1; *len = 1;
return 2; return 2;
} }
int hiraknj_kask(u_char* p, int* len) {
int
hiraknj_kask(u_char *p, int *len)
{
*len = 1; *len = 1;
return 3; return 3;
} }
int hiraknj_norm(u_char* p, int* len) {
int hiraknj_norm(u_char *p, int *len)
{
*len = codesize(*p); *len = codesize(*p);
return 1; return 1;
} }
int hiraknj_hira(u_char* p, int* len) {
u_char ch;
int
hiraknj_hira(u_char *p, int *len)
{
u_char ch;
*len = codesize(*p); *len = codesize(*p);
ch = *(p + 1); ch = *(p + 1);
switch (*p) { switch(*p) {
case 0x24: case 0x24:
if (ch >= 0x21 && ch <= 0x73) return 2; if(ch >= 0x21 && ch <= 0x73) return 2;
return 1; return 1;
case 0x25: case 0x25:
if (ch >= 0x21 && ch <= 0x76) return 3; if(ch >= 0x21 && ch <= 0x76) return 3;
return 1; return 1;
default: default:

View file

@ -33,51 +33,44 @@
* $SonyDate: 1994/06/03 08:02:22 $ * $SonyDate: 1994/06/03 08:02:22 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_hinsi.h" #include "sj_hinsi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char* u_char*
getstb(TypeGram hinsi) getstb(TypeGram hinsi) {
{ if(hinsi < MEISI_1 || hinsi > TIMEI) return NULL;
if (hinsi < MEISI_1 || hinsi > TIMEI) return NULL;
return Stbadr(hinsi); return Stbadr(hinsi);
} }
void setubi(JREC* rec, u_char* stbtbl) {
void u_char* stb;
setubi(JREC *rec, u_char *stbtbl) u_char* yptr;
{ u_char* sptr;
u_char *stb;
u_char *yptr;
u_char *sptr;
int slen; int slen;
JREC *new; JREC* new;
int cmp; int cmp;
stb = stbtbl--; stb = stbtbl--;
yptr = cnvstart + rec -> jlen; yptr = cnvstart + rec->jlen;
for ( ; *stb ; stb = sptr + slen + StbKnjLen(stb)) { for(; *stb; stb = sptr + slen + StbKnjLen(stb)) {
slen = StbYomiLen(stb); slen = StbYomiLen(stb);
sptr = StbYomiTop(stb); sptr = StbYomiTop(stb);
cmp = sstrncmp(yptr, sptr, slen); cmp = sstrncmp(yptr, sptr, slen);
if (cmp == OVER || cmp == PARTLY) break; if(cmp == OVER || cmp == PARTLY) break;
if ((cmp != MATCH) || isdpnd(*(yptr + slen))) continue; if((cmp != MATCH) || isdpnd(*(yptr + slen))) continue;
if (!(new = argjrec((int)(rec -> jlen + slen), rec))) continue; if(!(new = argjrec((int)(rec->jlen + slen), rec))) continue;
new -> stbofs = (u_char)(stb - stbtbl); new->stbofs = (u_char)(stb - stbtbl);
new -> flags |= StbBakeru(stb) ? JFLAG_KA : 0; new->flags |= StbBakeru(stb) ? JFLAG_KA : 0;
} }
} }

View file

@ -33,99 +33,88 @@
* $SonyDate: 1995/07/21 05:22:51 $ * $SonyDate: 1995/07/21 05:22:51 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int sj2cd_chr(u_char* euc, u_char* yomi) {
sj2cd_chr(u_char *euc, u_char *yomi) u_char chr;
{
u_char chr;
if ((chr = *euc++) == EUC_a1) { if((chr = *euc++) == EUC_a1) {
chr = *euc; chr = *euc;
if (chr < EUC_START) if(chr < EUC_START)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END) else if(chr <= EUC_END)
*yomi = Kigou[chr - EUC_START]; *yomi = Kigou[chr - EUC_START];
else else
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
} else if (chr == EUC_a2) { } else if(chr == EUC_a2) {
chr = *euc; chr = *euc;
if (chr < EUC_START) if(chr < EUC_START)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END_KIGOU) else if(chr <= EUC_END_KIGOU)
*yomi = Kigou[chr - EUC_START + 94]; *yomi = Kigou[chr - EUC_START + 94];
else else
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
} else if (chr == EUC_a3) { } else if(chr == EUC_a3) {
chr = *euc; chr = *euc;
if (chr < EUC_0) if(chr < EUC_0)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END_0) else if(chr <= EUC_END_0)
*yomi = chr - EUC_0 + N_0; *yomi = chr - EUC_0 + N_0;
else if (chr < EUC_A) else if(chr < EUC_A)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END_A) else if(chr <= EUC_END_A)
*yomi = chr - EUC_A + A_A; *yomi = chr - EUC_A + A_A;
else if (chr < EUC_a) else if(chr < EUC_a)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END_a) else if(chr <= EUC_END_a)
*yomi = chr - EUC_a + A_a; *yomi = chr - EUC_a + A_a;
else else
*yomi = Y_ZENKAKU;
} else if (chr == EUC_a4) {
chr = *euc;
if (chr < EUC_START)
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
else if (chr <= EUC_END_HIRA) } else if(chr == EUC_a4) {
chr = *euc;
if(chr < EUC_START)
*yomi = Y_ZENKAKU;
else if(chr <= EUC_END_HIRA)
*yomi = chr - EUC_START + _XA; *yomi = chr - EUC_START + _XA;
else else
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
} else if (chr == EUC_a5) { } else if(chr == EUC_a5) {
chr = *euc; chr = *euc;
if (chr == EUC_VU) if(chr == EUC_VU)
*yomi = _VU; *yomi = _VU;
else if (chr == EUC_XKA) else if(chr == EUC_XKA)
*yomi = _XKA; *yomi = _XKA;
else if (chr == EUC_XKE) else if(chr == EUC_XKE)
*yomi = _XKE; *yomi = _XKE;
else else
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
} } else {
else {
if (!(chr & 0x80)) { if(!(chr & 0x80)) {
*yomi = Y_HANKAKU; *yomi = Y_HANKAKU;
return 1; return 1;
} else if (chr == SS2) { } else if(chr == SS2) {
*yomi = Y_HANKAKU; *yomi = Y_HANKAKU;
} else if (chr == SS3) { } else if(chr == SS3) {
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
return 3; return 3;
} else } else
*yomi = Y_ZENKAKU; *yomi = Y_ZENKAKU;
} }
return 2; return 2;
} }
int sj2cd_str(u_char* euc, u_char* yomi, int len) {
if(!len--) return FALSE;
int while(*euc && len--) euc += sj2cd_chr(euc, yomi++);
sj2cd_str(u_char *euc, u_char *yomi, int len)
{
if (!len--) return FALSE;
while (*euc && len--) euc += sj2cd_chr(euc, yomi++);
*yomi = 0; *yomi = 0;
return *euc ? FALSE : TRUE; return *euc ? FALSE : TRUE;

View file

@ -39,15 +39,13 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char * u_char*
skiphblk(u_char *ptr) skiphblk(u_char* ptr) {
{
ptr++; ptr++;
while (*ptr != HINSIBLKTERM) ptr = skipkstr(ptr); while(*ptr != HINSIBLKTERM) ptr = skipkstr(ptr);
ptr++; ptr++;
return ptr; return ptr;
} }

View file

@ -42,20 +42,19 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char * u_char*
skipkstr(u_char *ptr) skipkstr(u_char* ptr) {
{ int contf = TRUE, csize;
int contf = TRUE, csize;
do { do {
csize = codesize(*ptr); csize = codesize(*ptr);
if (ptr[csize] == KANJISTREND) contf = FALSE; if(ptr[csize] == KANJISTREND) contf = FALSE;
ptr += csize; ptr += csize;
} while (contf); } while(contf);
ptr++; ptr++;
return ptr; return ptr;
} }

View file

@ -37,41 +37,38 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int yomicmp(u_char* ptr1, u_char* ptr2, u_char* saml) {
yomicmp(u_char *ptr1, u_char *ptr2, u_char *saml) int i, j;
{ int same;
int i, j;
int same;
same = *saml; same = *saml;
i = getplen(ptr2); i = getplen(ptr2);
j = getnlen(ptr2); j = getnlen(ptr2);
if (j == 0) { if(j == 0) {
ptr2 = get_idxptr(prevseg); ptr2 = get_idxptr(prevseg);
for (i = same ; i ; i--) for(i = same; i; i--)
if (*ptr1++ != *ptr2++) return OVER; if(*ptr1++ != *ptr2++) return OVER;
j = sstrlen(ptr2); j = sstrlen(ptr2);
} }
else if (i > same) else if(i > same)
return CONT; return CONT;
else { else {
if (i < same) same = i; if(i < same) same = i;
ptr1 += same; ptr1 += same;
ptr2 += DOUONBLKSIZENUMBER; ptr2 += DOUONBLKSIZENUMBER;
} }
while (j-- > 0) { while(j-- > 0) {
if (*ptr1 > *ptr2) { if(*ptr1 > *ptr2) {
*saml = same; *saml = same;
return CONT; return CONT;
} } else if(*ptr1++ < *ptr2++) {
else if (*ptr1++ < *ptr2++) {
return OVER; return OVER;
} }
same++; same++;
@ -81,24 +78,21 @@ yomicmp(u_char *ptr1, u_char *ptr2, u_char *saml)
return MATCH; return MATCH;
} }
u_char*
u_char * srchdict(u_char* tagp) {
srchdict(u_char *tagp) TypeDicSeg segno;
{ int cmp;
TypeDicSeg segno; int maxlen;
int cmp;
int maxlen;
maxlen = (cnvlen > MAXWDYOMILEN) ? MAXWDYOMILEN : cnvlen; maxlen = (cnvlen > MAXWDYOMILEN) ? MAXWDYOMILEN : cnvlen;
while ((int)dicinl <= maxlen) { while((int)dicinl <= maxlen) {
segno = srchidx(prevseg, (int)dicinl); segno = srchidx(prevseg, (int)dicinl);
(*curdict->getdic)(curdict, segno); (*curdict->getdic)(curdict, segno);
if (prevseg != segno) { if(prevseg != segno) {
prevseg = segno; prevseg = segno;
@ -109,11 +103,11 @@ srchdict(u_char *tagp)
tagp = getntag(tagp); tagp = getntag(tagp);
if (segend(tagp)) { if(segend(tagp)) {
prevseg = ++segno; prevseg = ++segno;
if (segno >= curdict->segunit) return NULL; if(segno >= curdict->segunit) return NULL;
(*curdict->getdic)(curdict, segno); (*curdict->getdic)(curdict, segno);
@ -121,23 +115,23 @@ srchdict(u_char *tagp)
} }
} }
if (tagp == dicbuf) { if(tagp == dicbuf) {
get_askknj(); get_askknj();
tagp += *tagp + 1; tagp += *tagp + 1;
} }
while (!segend(tagp)) { while(!segend(tagp)) {
cmp = yomicmp(cnvstart, tagp, &dicsaml); cmp = yomicmp(cnvstart, tagp, &dicsaml);
if ((int)dicsaml > maxlen) return NULL; if((int)dicsaml > maxlen) return NULL;
if (cmp == OVER) if(cmp == OVER)
return NULL; return NULL;
else if (cmp == MATCH) { else if(cmp == MATCH) {
if (isdpnd(*(cnvstart + dicsaml))) { if(isdpnd(*(cnvstart + dicsaml))) {
break; break;
} }
@ -153,4 +147,3 @@ srchdict(u_char *tagp)
return NULL; return NULL;
} }

View file

@ -33,35 +33,30 @@
* $SonyDate: 1994/06/03 08:02:28 $ * $SonyDate: 1994/06/03 08:02:28 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_yomi.h" #include "sj_yomi.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int srchhead() {
srchhead() if(*cnvstart == _O) {
{
if (*cnvstart == _O) {
headcode = SETTOU_O; headcode = SETTOU_O;
headlen = 1; headlen = 1;
return TRUE; return TRUE;
} }
else if (*cnvstart == _GO) { else if(*cnvstart == _GO) {
headcode = SETTOU_GO; headcode = SETTOU_GO;
headlen = 1; headlen = 1;
return TRUE; return TRUE;
} }
else if ((*cnvstart == _DA) && (*(cnvstart + 1) == _I)) { else if((*cnvstart == _DA) && (*(cnvstart + 1) == _I)) {
headcode = SETTOU_DAI; headcode = SETTOU_DAI;
headlen = 2; headlen = 2;
return TRUE; return TRUE;
} }
headcode = headlen = 0; headcode = headlen = 0;
return FALSE; return FALSE;
} }

View file

@ -38,18 +38,17 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
TypeDicSeg TypeDicSeg
srchidx(TypeDicSeg low, int len) srchidx(TypeDicSeg low, int len) {
{ TypeDicSeg high;
TypeDicSeg high; TypeDicSeg mid;
TypeDicSeg mid; int cmp;
int cmp; u_char* target;
u_char *target;
if ((high = curdict->segunit - 1) < 1) return 0; if((high = curdict->segunit - 1) < 1) return 0;
if (low == (TypeDicSeg)-1) low = 0; if(low == (TypeDicSeg)-1) low = 0;
while (low <= high) { while(low <= high) {
mid = (low + high) >> 1; mid = (low + high) >> 1;
@ -57,11 +56,11 @@ srchidx(TypeDicSeg low, int len)
cmp = istrcmp(cnvstart, target, len, sstrlen(target)); cmp = istrcmp(cnvstart, target, len, sstrlen(target));
if (cmp == OVER) { if(cmp == OVER) {
high = mid - 1; high = mid - 1;
} }
else if(cmp != MATCH){ else if(cmp != MATCH) {
low = mid + 1; low = mid + 1;
} }
@ -72,4 +71,3 @@ srchidx(TypeDicSeg low, int len)
return (cmp == OVER && mid != DICSEGBASE) ? mid - 1 : mid; return (cmp == OVER && mid != DICSEGBASE) ? mid - 1 : mid;
} }

View file

@ -41,138 +41,131 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void srch_kurai1(), srch_kurai2(); static void srch_kurai1(), srch_kurai2();
static void static void
srch_josuu_sub(JREC *jrec, TypeGram gram) srch_josuu_sub(JREC* jrec, TypeGram gram) {
{ u_char* tagp;
u_char *tagp; DICTL* dp;
DICTL *dp;
for (dp = dictlist ; dp ; dp = dp -> next) { for(dp = dictlist; dp; dp = dp->next) {
curdict = dp -> dict; curdict = dp->dict;
dicinl = 1; dicinl = 1;
dicsaml = 0; dicsaml = 0;
prevseg = -1; prevseg = -1;
while (tagp = srchdict(tagp)) setnumrec(tagp, jrec, gram); while(tagp = srchdict(tagp)) setnumrec(tagp, jrec, gram);
} }
} }
static void static void
srch_josuu(JREC *jrec) srch_josuu(JREC* jrec) {
{ u_char* kp;
u_char *kp;
int klen; int klen;
int len; int len;
if (headcode && headcode != SETTOU_DAI) return; if(headcode && headcode != SETTOU_DAI) return;
kp = cnvstart; kp = cnvstart;
klen = cnvlen; klen = cnvlen;
cnvstart += (len = jrec -> numlen); cnvstart += (len = jrec->numlen);
cnvlen -= len; cnvlen -= len;
srch_josuu_sub(jrec, JOSUUSI); srch_josuu_sub(jrec, JOSUUSI);
if (!headcode) srch_josuu_sub(jrec, JOSUUSI2); if(!headcode) srch_josuu_sub(jrec, JOSUUSI2);
cnvstart = kp; cnvstart = kp;
cnvlen = klen; cnvlen = klen;
} }
static void static void
setnrec_sub(u_char *p, u_short flag, int stb) setnrec_sub(u_char* p, u_short flag, int stb) {
{ JREC* rec;
JREC *rec; int len1;
int len1; int len2;
int len2;
len1 = len2 = p - suuji_yptr; len1 = len2 = p - suuji_yptr;
if (headcode) len1 += headlen; if(headcode) len1 += headlen;
if (stb) len2--; if(stb) len2--;
if ((int)suuji_len == len2) { if((int)suuji_len == len2) {
if (suuji_wkeep) { if(suuji_wkeep) {
memcpy((u_char *)suuji_wkeep, (u_char *)suuji_wbuf, memcpy((u_char*)suuji_wkeep, (u_char*)suuji_wbuf,
sizeof(suuji_wbuf[0]) * NUMWORDBUF); sizeof(suuji_wbuf[0]) * NUMWORDBUF);
} }
if (suuji_ukeep) { if(suuji_ukeep) {
memcpy(suuji_ukeep, suuji_ubuf, NUMKETALENGTH); memcpy(suuji_ukeep, suuji_ubuf, NUMKETALENGTH);
} }
suuji_exit = suuji_keta; suuji_exit = suuji_keta;
return; return;
} }
if (rec = argjrec(len1, (JREC *)NULL)) { if(rec = argjrec(len1, (JREC*)NULL)) {
rec -> class = suuji_class; rec->class = suuji_class;
rec -> hinsi = SUUSI; rec->hinsi = SUUSI;
rec -> sttofs = headcode; rec->sttofs = headcode;
rec -> stbofs = (u_char)stb; rec->stbofs = (u_char)stb;
rec -> flags = flag; rec->flags = flag;
rec -> numlen = (u_char)len2; rec->numlen = (u_char)len2;
if (!stb) srch_josuu(rec); if(!stb) srch_josuu(rec);
} }
} }
static void static void
setnrec(u_char *p, u_short flag) setnrec(u_char* p, u_short flag) {
{
setnrec_sub(p, flag, 0); setnrec_sub(p, flag, 0);
if (!headcode && (*p == Y_S_KIGOU2)) { if(!headcode && (*p == Y_S_KIGOU2)) {
setnrec_sub(p + 1, flag, -1); setnrec_sub(p + 1, flag, -1);
} }
} }
static u_char* static u_char*
srchtbl(u_char ch, u_char *tbl, int rec, int n) srchtbl(u_char ch, u_char* tbl, int rec, int n) {
{
int high, low, mid; int high, low, mid;
u_char *p; u_char* p;
if (!ch) return NULL; if(!ch) return NULL;
low = 0; low = 0;
high = n - 1; high = n - 1;
while (low <= high) { while(low <= high) {
mid = (low + high) / 2; mid = (low + high) / 2;
p = tbl + mid * rec; p = tbl + mid * rec;
if (ch == *p) if(ch == *p)
break; break;
else if (ch < *p) else if(ch < *p)
high = mid - 1; high = mid - 1;
else else
low = mid + 1; low = mid + 1;
} }
if (low > high) return NULL; if(low > high) return NULL;
while (mid-- > 0 && ch == *(p - rec)) p -= rec; while(mid-- > 0 && ch == *(p - rec)) p -= rec;
return p; return p;
} }
static int static int
isconnect(u_char *cnct, int num) isconnect(u_char* cnct, int num) {
{
return (cnct[num / 8] & (0x80 >> (num % 8))); return (cnct[num / 8] & (0x80 >> (num % 8)));
} }
static int static int
string_cmp(u_char *s, int l, u_char *d) string_cmp(u_char* s, int l, u_char* d) {
{ u_char* p;
u_char *p;
p = s; p = s;
while (*s && l-- > 0) { while(*s && l-- > 0) {
if (*s != *d) return 0; if(*s != *d) return 0;
s++; s++;
d++; d++;
} }
@ -181,8 +174,7 @@ string_cmp(u_char *s, int l, u_char *d)
} }
static int static int
check_num(u_char *ptr) check_num(u_char* ptr) {
{
int i; int i;
int j; int j;
int k; int k;
@ -191,37 +183,37 @@ check_num(u_char *ptr)
int lketa; int lketa;
int flg = FALSE; int flg = FALSE;
int cnt; int cnt;
u_short flag; u_short flag;
memset((u_char *)suuji_wbuf, 0, sizeof(u_short) * NUMWORDBUF); memset((u_char*)suuji_wbuf, 0, sizeof(u_short) * NUMWORDBUF);
flag = 0; flag = 0;
hketa = lketa = cnt = 0; hketa = lketa = cnt = 0;
for (i = suuji_keta ; --i >= 0 ;) { for(i = suuji_keta; --i >= 0;) {
if (hketa >= 4) return FALSE; if(hketa >= 4) return FALSE;
tmp = suuji_ubuf[i]; tmp = suuji_ubuf[i];
if (j = ((tmp >> 6) & 3)) { if(j = ((tmp >> 6) & 3)) {
if (j < hketa) return FALSE; if(j < hketa) return FALSE;
if (j > hketa) { if(j > hketa) {
flag |= JFLAG_N01; flag |= JFLAG_N01;
do { do {
suuji_wbuf[hketa] |= (_NUM0<<(lketa*4)); suuji_wbuf[hketa] |= (_NUM0 << (lketa * 4));
if (++lketa >= 4) { if(++lketa >= 4) {
lketa = 0; lketa = 0;
hketa++; hketa++;
} }
} while (j > hketa); } while(j > hketa);
} }
} }
k = ((tmp >> 4) & 3); k = ((tmp >> 4) & 3);
if (j || k) { if(j || k) {
if (k < lketa) return FALSE; if(k < lketa) return FALSE;
if (k > lketa) { if(k > lketa) {
flag |= JFLAG_N01; flag |= JFLAG_N01;
do { do {
suuji_wbuf[hketa] |= (_NUM0<<(lketa*4)); suuji_wbuf[hketa] |= (_NUM0 << (lketa * 4));
lketa++; lketa++;
} while (k > lketa); } while(k > lketa);
} }
flg = TRUE; flg = TRUE;
} }
@ -230,16 +222,16 @@ check_num(u_char *ptr)
cnt++; cnt++;
j = (1 << tmp); j = (1 << tmp);
if (j & NUMBERS1) flag |= JFLAG_NS1; if(j & NUMBERS1) flag |= JFLAG_NS1;
if (j & NUMBER01) flag |= JFLAG_N01; if(j & NUMBER01) flag |= JFLAG_N01;
if (j & NUMBER23) flag |= JFLAG_N23; if(j & NUMBER23) flag |= JFLAG_N23;
if (tmp != _NUM0) { if(tmp != _NUM0) {
flg = FALSE; flg = FALSE;
switch (lketa) { switch(lketa) {
case 0: case 0:
if (tmp == _NUM1) flag |= JFLAG_N_1; if(tmp == _NUM1) flag |= JFLAG_N_1;
break; break;
case 1: case 1:
@ -247,22 +239,22 @@ check_num(u_char *ptr)
break; break;
} }
} }
if (++lketa >= 4) { if(++lketa >= 4) {
lketa = 0; lketa = 0;
hketa++; hketa++;
} }
} }
if (flg) return FALSE; if(flg) return FALSE;
if (suuji_keta == 1 || tmp != _NUM0) flag |= JFLAG_NN0; if(suuji_keta == 1 || tmp != _NUM0) flag |= JFLAG_NN0;
if (hketa) if(hketa)
flag |= (JFLAG_NK4 | JFLAG_NK2); flag |= (JFLAG_NK4 | JFLAG_NK2);
else if (lketa > 1) else if(lketa > 1)
flag |= JFLAG_NK2; flag |= JFLAG_NK2;
if (cnt > 1) flag |= JFLAG_NSN; if(cnt > 1) flag |= JFLAG_NSN;
setnrec(ptr, flag); setnrec(ptr, flag);
@ -270,57 +262,56 @@ check_num(u_char *ptr)
} }
static void static void
srch_number1(u_char *ptr) srch_number1(u_char* ptr) {
{ u_char ch;
u_char ch; u_char mode;
u_char mode; u_char* p;
u_char *p; int l;
int l; TypeClass cls;
TypeClass cls; int len;
int len; u_char* tptr;
u_char *tptr;
if (suuji_keta >= NUMKETALENGTH) return; if(suuji_keta >= NUMKETALENGTH) return;
if (!(p = srchtbl((ch = *ptr), Suuji_tbl, SJTBLRECLEN, SJTBLRECNUM))) if(!(p = srchtbl((ch = *ptr), Suuji_tbl, SJTBLRECLEN, SJTBLRECNUM)))
return; return;
len = suuji_yptr + MAXCLINPUTLEN - ptr; len = suuji_yptr + MAXCLINPUTLEN - ptr;
for ( ; *SjTblYPos(p) == ch ; p += SJTBLRECLEN) { for(; *SjTblYPos(p) == ch; p += SJTBLRECLEN) {
if (!(l = string_cmp(SjTblYPos(p), SJTBLYLEN, ptr))) continue; if(!(l = string_cmp(SjTblYPos(p), SJTBLYLEN, ptr))) continue;
if (l > len) continue; if(l > len) continue;
mode = *SjTblModeP(p); mode = *SjTblModeP(p);
suuji_ubuf[suuji_keta++] = SjTblNumber(mode); suuji_ubuf[suuji_keta++] = SjTblNumber(mode);
tptr = ptr + l; tptr = ptr + l;
switch (suuji_class) { switch(suuji_class) {
case C_N_ARABIA: case C_N_ARABIA:
if (!(mode & SJTBLNARABIAF)) break; if(!(mode & SJTBLNARABIAF)) break;
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
srch_kurai2(tptr, (u_char *)NULL); srch_kurai2(tptr, (u_char*)NULL);
break; break;
case C_N_SUUJI: case C_N_SUUJI:
if (mode & (SJTBLNARABIAF | SJTBLNYOMIF)) break; if(mode & (SJTBLNARABIAF | SJTBLNYOMIF)) break;
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
srch_kurai1(tptr, (u_char *)NULL); srch_kurai1(tptr, (u_char*)NULL);
srch_kurai2(tptr, (u_char *)NULL); srch_kurai2(tptr, (u_char*)NULL);
break; break;
case C_N_KAZU: case C_N_KAZU:
case C_N_NANSUU: case C_N_NANSUU:
if (mode & SJTBLNNARABIF) break; if(mode & SJTBLNNARABIF) break;
if (mode & SJTBLNNANSUUF) { if(mode & SJTBLNNANSUUF) {
cls = suuji_class; cls = suuji_class;
suuji_class = C_N_NANSUU; suuji_class = C_N_NANSUU;
} }
@ -328,32 +319,29 @@ srch_number1(u_char *ptr)
srch_kurai1(tptr, SjTblCnctP(p)); srch_kurai1(tptr, SjTblCnctP(p));
srch_kurai2(tptr, SjTblCnctP(p)); srch_kurai2(tptr, SjTblCnctP(p));
if (mode & SJTBLNNANSUUF) suuji_class = cls; if(mode & SJTBLNNANSUUF) suuji_class = cls;
break; break;
default: default:
if (mode & SJTBLNARABIAF) { if(mode & SJTBLNARABIAF) {
suuji_class = C_N_ARABIA; suuji_class = C_N_ARABIA;
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
srch_kurai2(tptr, (u_char *)NULL); srch_kurai2(tptr, (u_char*)NULL);
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
} } else if(mode & SJTBLNYOMIF) {
else if (mode & SJTBLNYOMIF) { if(mode & SJTBLNNANSUUF)
if (mode & SJTBLNNANSUUF)
suuji_class = C_N_NANSUU; suuji_class = C_N_NANSUU;
else else
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
check_num(tptr); check_num(tptr);
} } else if(mode & SJTBLNNARABIF) {
else if (mode & SJTBLNNARABIF) {
suuji_class = C_N_SUUJI; suuji_class = C_N_SUUJI;
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
break; break;
} } else {
else {
suuji_class = C_N_SUUJI; suuji_class = C_N_SUUJI;
srch_number1(tptr); srch_number1(tptr);
@ -370,35 +358,33 @@ srch_number1(u_char *ptr)
} }
static void static void
srch_kurai1(u_char *ptr, u_char *cnct) srch_kurai1(u_char* ptr, u_char* cnct) {
{ u_char ch;
u_char ch; u_char* p;
u_char *p; int l;
int l; int keta;
int keta; int mode;
int mode; TypeClass cls;
TypeClass cls; int len;
int len; u_char* tptr;
u_char *tptr;
if (!(p = srchtbl((ch = *ptr), Kurai1_tbl, KR1TBLRECLEN, KR1TBLRECNUM))) if(!(p = srchtbl((ch = *ptr), Kurai1_tbl, KR1TBLRECLEN, KR1TBLRECNUM)))
return; return;
len = suuji_yptr + MAXCLINPUTLEN - ptr; len = suuji_yptr + MAXCLINPUTLEN - ptr;
for ( ; *Kr1TblYPos(p) == ch ; p += KR1TBLRECLEN) { for(; *Kr1TblYPos(p) == ch; p += KR1TBLRECLEN) {
if (!(l = string_cmp(Kr1TblYPos(p), KR1TBLYLEN, ptr))) continue; if(!(l = string_cmp(Kr1TblYPos(p), KR1TBLYLEN, ptr))) continue;
if (l > len) continue; if(l > len) continue;
mode = *Kr1TblModeP(p); mode = *Kr1TblModeP(p);
keta = Kr1TblKeta(mode); keta = Kr1TblKeta(mode);
tptr = ptr + l; tptr = ptr + l;
if (suuji_class != C_N_KAZU && suuji_class != C_N_NANSUU) { if(suuji_class != C_N_KAZU && suuji_class != C_N_NANSUU) {
cls = suuji_class; cls = suuji_class;
suuji_class = (suuji_class == C_N_ARABIA) ? suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
C_N_ARAKURA : C_N_KANKURA;
suuji_ubuf[suuji_keta - 1] |= (keta << 4); suuji_ubuf[suuji_keta - 1] |= (keta << 4);
check_num(tptr); check_num(tptr);
suuji_class = cls; suuji_class = cls;
@ -406,23 +392,22 @@ srch_kurai1(u_char *ptr, u_char *cnct)
continue; continue;
} }
if (cnct) { if(cnct) {
if (!isconnect(cnct, (int)Kr1TblCnct(mode))) continue; if(!isconnect(cnct, (int)Kr1TblCnct(mode))) continue;
suuji_ubuf[suuji_keta - 1] |= (keta << 4); suuji_ubuf[suuji_keta - 1] |= (keta << 4);
} } else {
else { if(!Kr1TblTop(mode)) continue;
if (!Kr1TblTop(mode)) continue; if(suuji_keta >= NUMKETALENGTH) continue;
if (suuji_keta >= NUMKETALENGTH) continue;
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 4)); suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 4));
} }
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
srch_kurai1(tptr, (u_char *)NULL); srch_kurai1(tptr, (u_char*)NULL);
srch_kurai2(tptr, Kr1TblCnctP(p)); srch_kurai2(tptr, Kr1TblCnctP(p));
if (cnct) if(cnct)
suuji_ubuf[suuji_keta - 1] &= 0xcf; suuji_ubuf[suuji_keta - 1] &= 0xcf;
else else
suuji_keta--; suuji_keta--;
@ -430,59 +415,56 @@ srch_kurai1(u_char *ptr, u_char *cnct)
} }
static void static void
srch_kurai2(u_char *ptr, u_char *cnct) srch_kurai2(u_char* ptr, u_char* cnct) {
{ u_char ch;
u_char ch; u_char* p;
u_char *p; int l;
int l; int keta;
int keta; int mode;
int mode; TypeClass cls;
TypeClass cls; int len;
int len; u_char* tptr;
u_char *tptr;
if ((suuji_ubuf[0] & 0x0f) == _NUM0) return; if((suuji_ubuf[0] & 0x0f) == _NUM0) return;
if (!(p = srchtbl((ch = *ptr), Kurai2_tbl, KR2TBLRECLEN, KR2TBLRECNUM))) if(!(p = srchtbl((ch = *ptr), Kurai2_tbl, KR2TBLRECLEN, KR2TBLRECNUM)))
return; return;
len = suuji_yptr + MAXCLINPUTLEN - ptr; len = suuji_yptr + MAXCLINPUTLEN - ptr;
for ( ; *Kr2TblYPos(p) == ch ; p += KR2TBLRECLEN) { for(; *Kr2TblYPos(p) == ch; p += KR2TBLRECLEN) {
if (!(l = string_cmp(Kr2TblYPos(p), KR2TBLYLEN, ptr))) continue; if(!(l = string_cmp(Kr2TblYPos(p), KR2TBLYLEN, ptr))) continue;
if (l > len) continue; if(l > len) continue;
mode = *Kr2TblModeP(p); mode = *Kr2TblModeP(p);
keta = Kr2TblKeta(mode); keta = Kr2TblKeta(mode);
tptr = ptr + l; tptr = ptr + l;
if (suuji_class != C_N_KAZU && suuji_class != C_N_NANSUU) { if(suuji_class != C_N_KAZU && suuji_class != C_N_NANSUU) {
suuji_ubuf[suuji_keta - 1] |= (keta << 6); suuji_ubuf[suuji_keta - 1] |= (keta << 6);
cls = suuji_class; cls = suuji_class;
suuji_class = (suuji_class == C_N_ARABIA) ? suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
C_N_ARAKURA : C_N_KANKURA;
check_num(tptr); check_num(tptr);
suuji_class = cls; suuji_class = cls;
suuji_ubuf[suuji_keta - 1] &= 0x3f; suuji_ubuf[suuji_keta - 1] &= 0x3f;
continue; continue;
} }
if (cnct) { if(cnct) {
if (!isconnect(cnct, (int)Kr2TblCnct(mode))) continue; if(!isconnect(cnct, (int)Kr2TblCnct(mode))) continue;
suuji_ubuf[suuji_keta - 1] |= (keta << 6); suuji_ubuf[suuji_keta - 1] |= (keta << 6);
} } else {
else { if(suuji_keta >= NUMKETALENGTH) continue;
if (suuji_keta >= NUMKETALENGTH) continue;
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 6)); suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 6));
} }
check_num(tptr); check_num(tptr);
srch_number1(tptr); srch_number1(tptr);
srch_kurai1(tptr, (u_char *)NULL); srch_kurai1(tptr, (u_char*)NULL);
if (cnct) if(cnct)
suuji_ubuf[suuji_keta - 1] &= 0x3f; suuji_ubuf[suuji_keta - 1] &= 0x3f;
else else
suuji_keta--; suuji_keta--;
@ -490,53 +472,47 @@ srch_kurai2(u_char *ptr, u_char *cnct)
} }
static void static void
srch_number2(u_char *p) srch_number2(u_char* p) {
{ u_char ch;
u_char ch; int i;
int i;
suuji_class = (*p == N_0) ? C_N_SUUJILONG : C_N_KAZULONG; suuji_class = (*p == N_0) ? C_N_SUUJILONG : C_N_KAZULONG;
suuji_keta = suuji_comma = 0; suuji_keta = suuji_comma = 0;
for (i = 0 ; i < MAXCLINPUTLEN ; i++) { for(i = 0; i < MAXCLINPUTLEN; i++) {
if ((ch = *p++) == Y_COMMA) { if((ch = *p++) == Y_COMMA) {
if (suuji_keta) { if(suuji_keta) {
if (suuji_comma) { if(suuji_comma) {
if (suuji_comma != 3) break; if(suuji_comma != 3) break;
} else {
if(suuji_keta >= 4) break;
if(*suuji_yptr == N_0) break;
} }
else { } else
if (suuji_keta >= 4) break;
if (*suuji_yptr == N_0) break;
}
}
else
break; break;
suuji_comma = 1; suuji_comma = 1;
ch = *p++; ch = *p++;
} } else if(suuji_comma) {
else if (suuji_comma) {
suuji_comma++; suuji_comma++;
} }
if (suuji_comma > 3) break; if(suuji_comma > 3) break;
if (!(Chrtbl[ch] & NUMBER)) break; if(!(Chrtbl[ch] & NUMBER)) break;
if (suuji_keta < NUMKETALENGTH) { if(suuji_keta < NUMKETALENGTH) {
suuji_ubuf[suuji_keta] = ch - N_0 + _NUM0; suuji_ubuf[suuji_keta] = ch - N_0 + _NUM0;
} }
suuji_keta++; suuji_keta++;
if (!suuji_comma && suuji_keta > NUMKETALENGTH) { if(!suuji_comma && suuji_keta > NUMKETALENGTH) {
setnrec(p, 0); setnrec(p, 0);
} } else if(suuji_comma == 3) {
else if (suuji_comma == 3) { if(suuji_keta <= NUMKETALENGTH) {
if (suuji_keta <= NUMKETALENGTH) {
suuji_class = C_N_ARACMA; suuji_class = C_N_ARACMA;
check_num(p); check_num(p);
} } else {
else {
suuji_class = C_N_KAZULCMA; suuji_class = C_N_KAZULCMA;
setnrec(p, 0); setnrec(p, 0);
} }
@ -545,32 +521,29 @@ srch_number2(u_char *p)
} }
static void static void
srchnum_sub(u_char *p) srchnum_sub(u_char* p) {
{
suuji_yptr = p; suuji_yptr = p;
suuji_comma = suuji_keta = 0; suuji_comma = suuji_keta = 0;
suuji_class = 0; suuji_class = 0;
srch_number1(p); srch_number1(p);
suuji_keta = 0; suuji_keta = 0;
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
srch_kurai1(p, (u_char *)NULL); srch_kurai1(p, (u_char*)NULL);
if (suuji_exit) return; if(suuji_exit) return;
srch_number2(p); srch_number2(p);
} }
void void srchnum() {
srchnum()
{
suuji_len = suuji_exit = 0; suuji_len = suuji_exit = 0;
srchnum_sub(cnvstart); srchnum_sub(cnvstart);
if (!headcode && (*cnvstart == Y_S_KIGOU1)) { if(!headcode && (*cnvstart == Y_S_KIGOU1)) {
headcode = SETTOU_KIGOU; headcode = SETTOU_KIGOU;
headlen = 1; headlen = 1;
srchnum_sub(cnvstart + 1); srchnum_sub(cnvstart + 1);
@ -578,29 +551,24 @@ srchnum()
} }
} }
void void setwdnum(u_char* p, int len, u_short* wd) {
setwdnum(u_char *p, int len, u_short *wd)
{
suuji_len = (u_char)len; suuji_len = (u_char)len;
suuji_wkeep = wd; suuji_wkeep = wd;
suuji_ukeep = NULL; suuji_ukeep = NULL;
headcode = headlen = 0; headcode = headlen = 0;
suuji_exit = 0; suuji_exit = 0;
srchnum_sub(p); srchnum_sub(p);
} }
int int setucnum(u_char* p, int len, u_char* ud) {
setucnum(u_char *p, int len, u_char *ud)
{
suuji_len = (u_char)len; suuji_len = (u_char)len;
suuji_wkeep = NULL; suuji_wkeep = NULL;
suuji_ukeep = ud; suuji_ukeep = ud;
headcode = headlen = 0; headcode = headlen = 0;
suuji_exit = 0; suuji_exit = 0;
srchnum_sub(p); srchnum_sub(p);
return (int)suuji_exit; return (int)suuji_exit;
} }

View file

@ -33,18 +33,14 @@
* $SonyDate: 1994/06/03 08:02:31 $ * $SonyDate: 1994/06/03 08:02:31 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int sstrcmp(u_char* src, u_char* dst) {
sstrcmp(u_char *src, u_char *dst) for(; *src; src++, dst++)
{ if(*src != *dst) break;
for ( ; *src ; src++, dst++)
if (*src != *dst) break;
return (*src - *dst); return (*src - *dst);
} }

View file

@ -33,22 +33,17 @@
* $SonyDate: 1994/06/03 08:02:32 $ * $SonyDate: 1994/06/03 08:02:32 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int sstrlen(u_char* ptr) {
sstrlen(u_char *ptr) u_char* head;
{
u_char *head;
head = ptr; head = ptr;
while (*ptr) ptr++; while(*ptr) ptr++;
return (ptr - head); return (ptr - head);
} }

View file

@ -33,25 +33,21 @@
* $SonyDate: 1994/06/03 08:02:33 $ * $SonyDate: 1994/06/03 08:02:33 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_const.h" #include "sj_const.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int sstrncmp(u_char* src, u_char* dst, int len) {
sstrncmp(u_char *src, u_char *dst, int len)
{
while (len-- > 0) { while(len-- > 0) {
if (*src > *dst) if(*src > *dst)
return CONT; return CONT;
if (*src < *dst) { if(*src < *dst) {
if (!*src) return PARTLY; if(!*src) return PARTLY;
return OVER; return OVER;
} }
src++; src++;
@ -60,4 +56,3 @@ sstrncmp(u_char *src, u_char *dst, int len)
return MATCH; return MATCH;
} }

View file

@ -33,9 +33,6 @@
* $SonyDate: 1994/06/03 08:02:34 $ * $SonyDate: 1994/06/03 08:02:34 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_yomi.h" #include "sj_yomi.h"
@ -43,105 +40,118 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char name_stb[] = { static u_char name_stb[] = {
0x22, MEISI_1, _KU, _NN, 0x22, MEISI_1, _KU, _NN,
0xb7, 0xaf, 0xb7, 0xaf,
0x22, MEISI_1, _SA, _MA, 0x22, MEISI_1, _SA, _MA,
0xcd, 0xcd, 0xcd, 0xcd,
0x24, MEISI_1, _SA, _NN, 0x24, MEISI_1, _SA, _NN,
0xa4, 0xb5, 0xa4, 0xf3, 0xa4, 0xb5, 0xa4, 0xf3,
0x12, MEISI_1, _SI, 0x12, MEISI_1, _SI,
0xbb, 0xe1, 0xbb, 0xe1,
0x36, MEISI_1, _TI, _XYA, _NN, 0x36, MEISI_1, _TI, _XYA, _NN,
0xa4, 0xc1, 0xa4, 0xe3, 0xa4, 0xf3, 0xa4, 0xc1, 0xa4, 0xe3, 0xa4, 0xf3,
0x22, MEISI_1, _DO, _NO, 0x22, MEISI_1, _DO, _NO,
0xc5, 0xc2, 0xc5, 0xc2,
0x00 0x00};
};
static u_char timei_stb[] = { static u_char timei_stb[] = {
0x22, MEISI_1, _E, _KI, 0x22, MEISI_1, _E, _KI,
0xb1, 0xd8, 0xb1, 0xd8,
0x44, MEISI_1, _E, _KI, _HA, _TU, 0x44, MEISI_1, _E, _KI, _HA, _TU,
0xb1, 0xd8, 0xc8, 0xaf, 0xb1, 0xd8, 0xc8, 0xaf,
0x44, MEISI_1, _E, _KI, _YU, _KI, 0x44, MEISI_1, _E, _KI, _YU, _KI,
0xb1, 0xd8, 0xb9, 0xd4, 0xb1, 0xd8, 0xb9, 0xd4,
0x22, MEISI_1, _GU, _NN, 0x22, MEISI_1, _GU, _NN,
0xb7, 0xb4, 0xb7, 0xb4,
0x12, MEISI_1, _SI, 0x12, MEISI_1, _SI,
0xbb, 0xd4, 0xbb, 0xd4,
0x32, MEISI_1, _TI, _XYO, _U, 0x32, MEISI_1, _TI, _XYO, _U,
0xc4, 0xae, 0xc4, 0xae,
0x22, MEISI_1, _HA, _TU, 0x22, MEISI_1, _HA, _TU,
0xc8, 0xaf, 0xc8, 0xaf,
0x22, MEISI_1, _MA, _TI, 0x22, MEISI_1, _MA, _TI,
0xc4, 0xae, 0xc4, 0xae,
0x22, MEISI_1, _MU, _RA, 0x22, MEISI_1, _MU, _RA,
0xc2, 0xbc, 0xc2, 0xbc,
0x00 0x00};
};
static u_char meisi_stb[] = { static u_char meisi_stb[] = {
0x44, MEISI_6, _A, _TU, _KA, _I, 0x44, MEISI_6, _A, _TU, _KA, _I,
0xb0, 0xb7, 0xa4, 0xa4, 0xb0, 0xb7, 0xa4, 0xa4,
0x1a, MEISI_6, _KA, 0x1a, MEISI_6, _KA,
0xb2, 0xbd, 0xb2, 0xbd,
0x22, MEISI_8, _TE, _KI, 0x22, MEISI_8, _TE, _KI,
0xc5, 0xaa, 0xc5, 0xaa,
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4,
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6,
0x22, MEISI_8, _HU, _U, 0x22, MEISI_8, _HU, _U,
0xc9, 0xf7, 0xc9, 0xf7,
0x00 0x00};
};
static u_char sahen_stb[] = { static u_char sahen_stb[] = {
0x44, MEISI_6, _A, _TU, _KA, _I, 0x44, MEISI_6, _A, _TU, _KA, _I,
0xb0, 0xb7, 0xa4, 0xa4, 0xb0, 0xb7, 0xa4, 0xa4,
0x1a, MEISI_6, _KA, 0x1a, MEISI_6, _KA,
0xb2, 0xbd, 0xb2, 0xbd,
0x12, MEISI_11, _GO, 0x12, MEISI_11, _GO,
0xb8, 0xe5, 0xb8, 0xe5,
0x22, MEISI_11, _GO, _TO, 0x22, MEISI_11, _GO, _TO,
0xcb, 0xe8, 0xcb, 0xe8,
0x32, MEISI_11, _ZI, _XYO, _U, 0x32, MEISI_11, _ZI, _XYO, _U,
0xbe, 0xe5, 0xbe, 0xe5,
0x32, MEISI_11, _TI, _XYU, _U, 0x32, MEISI_11, _TI, _XYU, _U,
0xc3, 0xe6, 0xc3, 0xe6,
0x22, MEISI_8, _TE, _KI, 0x22, MEISI_8, _TE, _KI,
0xc5, 0xaa, 0xc5, 0xaa,
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4,
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6,
0x22, MEISI_8, _HU, _U, 0x22, MEISI_8, _HU, _U,
0xc9, 0xf7, 0xc9, 0xf7,
0x22, MEISI_11, _MA, _E, 0x22, MEISI_11, _MA, _E,
0xc1, 0xb0, 0xc1, 0xb0,
0x00 0x00};
};
static u_char human_stb[] = { static u_char human_stb[] = {
0x24, MEISI_1, _SA, _NN, 0x24, MEISI_1, _SA, _NN,
0xa4, 0xb5, 0xa4, 0xf3, 0xa4, 0xb5, 0xa4, 0xf3,
0x00 0x00};
};
static u_char ippan_stb[] = { static u_char ippan_stb[] = {
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _I,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa4,
0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U, 0x56, FUKUSI_1, _NI, _TO, _MO, _NA, _U,
0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6, 0xa4, 0xcb, 0xc8, 0xbc, 0xa4, 0xa6,
0x00 0x00};
};
u_char *stbadr[] = { u_char* stbadr[] = {
0, 0,
ippan_stb, ippan_stb, ippan_stb, meisi_stb, sahen_stb, ippan_stb,
sahen_stb, sahen_stb, meisi_stb, meisi_stb, meisi_stb, ippan_stb,
ippan_stb, ippan_stb, human_stb, ippan_stb, ippan_stb, ippan_stb,
ippan_stb, ippan_stb, ippan_stb, 0, 0, meisi_stb,
name_stb, name_stb, 0, timei_stb, sahen_stb,
sahen_stb,
sahen_stb,
meisi_stb,
meisi_stb,
meisi_stb,
ippan_stb,
ippan_stb,
human_stb,
ippan_stb,
ippan_stb,
ippan_stb,
ippan_stb,
ippan_stb,
0,
0,
name_stb,
name_stb,
0,
timei_stb,
}; };

View file

@ -33,58 +33,39 @@
* $SonyDate: 1994/06/03 08:02:37 $ * $SonyDate: 1994/06/03 08:02:37 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char o_settou[] = { static u_char o_settou[] = {
0xA1, 0xb8, 0xe6, 0xa4, 0xaa 0xA1, 0xb8, 0xe6, 0xa4, 0xaa};
};
static u_char go_settou[] = { static u_char go_settou[] = {
0xA1, 0xb8, 0xe6, 0xa4, 0xb4 0xA1, 0xb8, 0xe6, 0xa4, 0xb4};
};
static u_char dai_settou[] = { static u_char dai_settou[] = {
0x22, 0xc2, 0xe8, 0xc2, 0xe8 0x22, 0xc2, 0xe8, 0xc2, 0xe8};
};
static u_char kigou_settou[] = { static u_char kigou_settou[] = {
0x01 0x01};
};
u_char* settou_ptr[] = {
NULL, o_settou, go_settou, dai_settou, kigou_settou};
u_char scncttbl[2][24] = {
{
u_char *settou_ptr[] = { 0x48, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
NULL, o_settou, go_settou, dai_settou, kigou_settou
};
0x18, 0x18, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0xff,
0x00, 0x1f, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x00},
u_char scncttbl[2][24] = { {
{
0x48, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0x18, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
0x00, 0x1f, 0xf0, 0x00, 0xff, 0x00, 0x00, 0x00
},
{
0x22, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
};

View file

@ -37,96 +37,94 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int study(STDYOUT* stdy) {
study(STDYOUT *stdy) STDYOUT outp;
{ STDYIN* p1;
STDYOUT outp; STDYIN* p2;
STDYIN *p1; int wcnt;
STDYIN *p2; int ret;
int wcnt; TypeDicSeg seg;
int ret; TypeDicOfs ofs;
TypeDicSeg seg; TypeStyNum nm;
TypeDicOfs ofs; TypeStyNum wi;
TypeStyNum nm;
TypeStyNum wi;
if (!StudyExist()) return STUDYNODICT; if(!StudyExist()) return STUDYNODICT;
memcpy((u_char *)&outp, (u_char *)stdy, sizeof(outp)); memcpy((u_char*)&outp, (u_char*)stdy, sizeof(outp));
if (outp.stdy1.offset == 0) return STUDYNOTSTUDY; if(outp.stdy1.offset == 0) return STUDYNOTSTUDY;
p1 = srchstdy(outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid); p1 = srchstdy(outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid);
if (p1) { if(p1) {
nm = p1 -> styno; nm = p1->styno;
for (wcnt = STUDYCOUNT, p2 = STUDYDICT ; wcnt-- ; p2++) { for(wcnt = STUDYCOUNT, p2 = STUDYDICT; wcnt--; p2++) {
if (p2 -> styno < nm) p2 -> styno++; if(p2->styno < nm) p2->styno++;
} }
p1 -> styno = 1; p1->styno = 1;
if (outp.sttfg) p1 -> sttkj = outp.stdy1.sttkj; if(outp.sttfg) p1->sttkj = outp.stdy1.sttkj;
if (outp.ka_fg) p1 -> ka_kj = outp.stdy1.ka_kj; if(outp.ka_fg) p1->ka_kj = outp.stdy1.ka_kj;
p1 -> nmflg = outp.stdy1.nmflg; p1->nmflg = outp.stdy1.nmflg;
putstydic(); putstydic();
return STUDYNORMEND; return STUDYNORMEND;
} }
if(STUDYCOUNT >= STUDYMAX) {
if (STUDYCOUNT >= STUDYMAX) { p1 = STUDYDICT;
p2 = NULL;
p1 = STUDYDICT; p2 = NULL; wi = 0; wi = 0;
for (wcnt = STUDYMAX ; wcnt-- ; p1++) { for(wcnt = STUDYMAX; wcnt--; p1++) {
if ((nm = p1 -> styno + 1) > wi) { if((nm = p1->styno + 1) > wi) {
wi = nm; wi = nm;
p2 = p1; p2 = p1;
} }
p1 -> styno = nm; p1->styno = nm;
} }
if (p2) { if(p2) {
mvmemi((u_char *)(p2 + 1), (u_char *)p2, mvmemi((u_char*)(p2 + 1), (u_char*)p2,
(STUDYTAIL - p2) * STUDYRECSIZE); (STUDYTAIL - p2) * STUDYRECSIZE);
STUDYCOUNT -= 1; STUDYCOUNT -= 1;
} } else
else
return STUDYERROR; return STUDYERROR;
ret = STUDYFULLAREA; ret = STUDYFULLAREA;
} } else {
else {
p1 = STUDYDICT; p1 = STUDYDICT;
for (wcnt = STUDYCOUNT ; wcnt-- ; p1++) p1 -> styno++; for(wcnt = STUDYCOUNT; wcnt--; p1++) p1->styno++;
ret = STUDYNORMEND; ret = STUDYNORMEND;
} }
p1 = STUDYDICT; p1 = STUDYDICT;
seg = outp.stdy1.seg; seg = outp.stdy1.seg;
for (wcnt = STUDYCOUNT ; wcnt && (p1 -> seg < seg) ; ) { for(wcnt = STUDYCOUNT; wcnt && (p1->seg < seg);) {
wcnt--; p1++; wcnt--;
}
ofs = outp.stdy1.offset;
while (wcnt-- && (p1 -> seg == seg)) {
if (p1 -> offset > ofs) break;
p1++; p1++;
} }
mvmemd((u_char *)(STUDYTAIL - 1), (u_char *)STUDYTAIL, ofs = outp.stdy1.offset;
(u_char *)(STUDYTAIL - 1) - (u_char *)p1); while(wcnt-- && (p1->seg == seg)) {
p1 -> offset = outp.stdy1.offset; if(p1->offset > ofs) break;
p1 -> seg = outp.stdy1.seg; p1++;
p1 -> dicid = outp.stdy1.dicid; }
p1 -> styno = 1;
p1 -> sttkj = (outp.sttfg) ? outp.stdy1.sttkj : 0; mvmemd((u_char*)(STUDYTAIL - 1), (u_char*)STUDYTAIL,
p1 -> ka_kj = (outp.ka_fg) ? outp.stdy1.ka_kj : 0; (u_char*)(STUDYTAIL - 1) - (u_char*)p1);
p1 -> nmflg = outp.stdy1.nmflg; p1->offset = outp.stdy1.offset;
p1->seg = outp.stdy1.seg;
p1->dicid = outp.stdy1.dicid;
p1->styno = 1;
p1->sttkj = (outp.sttfg) ? outp.stdy1.sttkj : 0;
p1->ka_kj = (outp.ka_fg) ? outp.stdy1.ka_kj : 0;
p1->nmflg = outp.stdy1.nmflg;
STUDYCOUNT += 1; STUDYCOUNT += 1;
putstydic(); putstydic();
@ -134,54 +132,51 @@ study(STDYOUT *stdy)
return ret; return ret;
} }
STDYIN * STDYIN*
srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) {
{
int high; int high;
int mid; int mid;
int low; int low;
STDYIN *ptr; STDYIN* ptr;
if(!StudyExist()) return NULL;
if (!StudyExist()) return NULL; if(!STUDYCOUNT || !ofs) return NULL;
if (!STUDYCOUNT || !ofs) return NULL; low = 0;
low = 0;
high = STUDYCOUNT - 1; high = STUDYCOUNT - 1;
for ( ; ; ) { for(;;) {
mid = ((low + high) >> 1); mid = ((low + high) >> 1);
if (STUDYDICT[mid].seg > seg) if(STUDYDICT[mid].seg > seg)
high = mid - 1; high = mid - 1;
else if (STUDYDICT[mid].seg < seg) else if(STUDYDICT[mid].seg < seg)
low = mid + 1; low = mid + 1;
else else
break; break;
if (low > high) return NULL; if(low > high) return NULL;
} }
low = mid + 1; low = mid + 1;
ptr = &STUDYDICT[mid]; ptr = &STUDYDICT[mid];
while (ptr -> seg == seg) { while(ptr->seg == seg) {
if (ptr -> offset < ofs) break; if(ptr->offset < ofs) break;
if (ptr -> dicid == dicid && ptr -> offset == ofs) return ptr; if(ptr->dicid == dicid && ptr->offset == ofs) return ptr;
if (!mid--) break; if(!mid--) break;
ptr--; ptr--;
} }
ptr = &STUDYDICT[low]; ptr = &STUDYDICT[low];
mid = STUDYCOUNT - low; mid = STUDYCOUNT - low;
while (mid-- && ptr -> seg == seg) { while(mid-- && ptr->seg == seg) {
if (ptr -> offset > ofs) break; if(ptr->offset > ofs) break;
if (ptr -> dicid == dicid && ptr -> offset == ofs) return ptr; if(ptr->dicid == dicid && ptr->offset == ofs) return ptr;
ptr++; ptr++;
} }
return NULL; return NULL;
} }

View file

@ -33,9 +33,6 @@
* $SonyDate: 1994/06/03 08:02:39 $ * $SonyDate: 1994/06/03 08:02:39 $
*/ */
#include "sj_const.h" #include "sj_const.h"
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
@ -44,153 +41,126 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
#define NA SJTBLNARABIAF #define NA SJTBLNARABIAF
#define NY SJTBLNYOMIF #define NY SJTBLNYOMIF
#define NN SJTBLNNARABIF #define NN SJTBLNNARABIF
#define NS SJTBLNNANSUUF #define NS SJTBLNNANSUUF
u_char suuji_tbl[] = {
N_0, _NIL, _NIL, _NUM0 | NA, 0x00, 0x00,
N_1, _NIL, _NIL, _NUM1 | NA, 0xec, 0x07,
N_2, _NIL, _NIL, _NUM2 | NA, 0xec, 0x07,
N_3, _NIL, _NIL, _NUM3 | NA, 0xff, 0x07,
N_4, _NIL, _NIL, _NUM4 | NA, 0xec, 0x07,
N_5, _NIL, _NIL, _NUM5 | NA, 0xec, 0x07,
N_6, _NIL, _NIL, _NUM6 | NA, 0xec, 0xc7,
N_7, _NIL, _NIL, _NUM7 | NA, 0xec, 0x07,
N_8, _NIL, _NIL, _NUM8 | NA, 0xec, 0xc7,
N_9, _NIL, _NIL, _NUM9 | NA, 0xec, 0x07,
_I, _TI, _NIL, _NUM1, 0x00, 0x05,
_I, _XTU, _NIL, _NUM1S | NY, 0x20, 0x02,
_KI, _XYU, _U, _NUM9, 0xec, 0x07,
_KU, _NIL, _NIL, _NUM9 | NY, 0x00, 0x00,
_GO, _NIL, _NIL, _NUM5, 0xec, 0x07,
_GO, _U, _NIL, _NUM5 | NN, 0x00, 0x00,
_SA, _NN, _NIL, _NUM3, 0xd3, 0x07,
_SI, _NIL, _NIL, _NUM4 | NY, 0x80, 0x00,
_SI, _I, _NIL, _NUM4 | NN, 0x00, 0x00,
_SI, _TI, _NIL, _NUM7, 0xec, 0x07,
_SU, _U, _NIL, _NUMS | NY | NS, 0xec, 0x07,
_ZE, _RO, _NIL, _NUM0 | NN, 0x00, 0x00,
_NA, _NA, _NIL, _NUM7, 0xec, 0x07,
_NA, _NN, _NIL, _NUMN | NY | NS, 0xf3, 0x07,
_NI, _NIL, _NIL, _NUM2, 0xec, 0x07,
_NI, _I, _NIL, _NUM2 | NN, 0x00, 0x00,
_HA, _TI, _NIL, _NUM8, 0xc0, 0x05,
_HA, _XTU, _NIL, _NUM8 | NY, 0x20, 0xc2,
_MA, _RU, _NIL, _NUM0 | NN, 0x00, 0x00,
_YO, _NIL, _NIL, _NUM4 | NY, 0x00, 0x00,
_YO, _NN, _NIL, _NUM4, 0xec, 0x07,
_RE, _I, _NIL, _NUM0 | NN, 0xec, 0x00,
_RO, _KU, _NIL, _NUM6, 0xe0, 0x07,
_RO, _XTU, _NIL, _NUM6 | NY, 0x00, 0xc2,
0};
u_char kurai1_tbl[] = {
_ZI, _XYU, _U, (1 << 4) + 0 + KR1TBLTOPF, 0x05,
_ZI, _XYU, _XTU, (1 << 4) + 1 + KR1TBLTOPF, 0x02,
_SE, _NN, _NIL, (3 << 4) + 2 + KR1TBLTOPF, 0x07,
_ZE, _NN, _NIL, (3 << 4) + 3, 0x05,
_HI, _XYA, _KU, (2 << 4) + 4 + KR1TBLTOPF, 0x07,
_HI, _XYA, _XTU, (2 << 4) + 5 + KR1TBLTOPF, 0x02,
_BI, _XYA, _KU, (2 << 4) + 6, 0x07,
_BI, _XYA, _XTU, (2 << 4) + 7, 0x00,
_PI, _XYA, _KU, (2 << 4) + 8, 0x07,
_PI, _XYA, _XTU, (2 << 4) + 9, 0x00,
0};
u_char suuji_tbl[] = { u_char kurai2_tbl[] = {
N_0,_NIL,_NIL, _NUM0 | NA, 0x00, 0x00, _O, _KU, _NIL, (2 << 4) + 13,
N_1,_NIL,_NIL, _NUM1 | NA, 0xec, 0x07, _TI, _XYO, _U, (3 << 4) + 14,
N_2,_NIL,_NIL, _NUM2 | NA, 0xec, 0x07, _MA, _NN, _NIL, (1 << 4) + 15,
N_3,_NIL,_NIL, _NUM3 | NA, 0xff, 0x07, 0};
N_4,_NIL,_NIL, _NUM4 | NA, 0xec, 0x07,
N_5,_NIL,_NIL, _NUM5 | NA, 0xec, 0x07,
N_6,_NIL,_NIL, _NUM6 | NA, 0xec, 0xc7,
N_7,_NIL,_NIL, _NUM7 | NA, 0xec, 0x07,
N_8,_NIL,_NIL, _NUM8 | NA, 0xec, 0xc7,
N_9,_NIL,_NIL, _NUM9 | NA, 0xec, 0x07,
_I, _TI, _NIL, _NUM1, 0x00, 0x05,
_I, _XTU,_NIL, _NUM1S | NY, 0x20, 0x02,
_KI,_XYU,_U, _NUM9, 0xec, 0x07,
_KU,_NIL,_NIL, _NUM9 | NY, 0x00, 0x00,
_GO,_NIL,_NIL, _NUM5, 0xec, 0x07,
_GO,_U, _NIL, _NUM5 | NN, 0x00, 0x00,
_SA,_NN, _NIL, _NUM3, 0xd3, 0x07,
_SI,_NIL,_NIL, _NUM4 | NY, 0x80, 0x00,
_SI,_I, _NIL, _NUM4 | NN, 0x00, 0x00,
_SI,_TI, _NIL, _NUM7, 0xec, 0x07,
_SU,_U, _NIL, _NUMS | NY | NS, 0xec, 0x07,
_ZE,_RO, _NIL, _NUM0 | NN, 0x00, 0x00,
_NA,_NA, _NIL, _NUM7, 0xec, 0x07,
_NA,_NN, _NIL, _NUMN | NY | NS, 0xf3, 0x07,
_NI,_NIL,_NIL, _NUM2, 0xec, 0x07,
_NI,_I, _NIL, _NUM2 | NN, 0x00, 0x00,
_HA,_TI, _NIL, _NUM8, 0xc0, 0x05,
_HA,_XTU,_NIL, _NUM8 | NY, 0x20, 0xc2,
_MA,_RU, _NIL, _NUM0 | NN, 0x00, 0x00,
_YO,_NIL,_NIL, _NUM4 | NY, 0x00, 0x00,
_YO,_NN, _NIL, _NUM4, 0xec, 0x07,
_RE,_I, _NIL, _NUM0 | NN, 0xec, 0x00,
_RO,_KU, _NIL, _NUM6, 0xe0, 0x07,
_RO,_XTU,_NIL, _NUM6 | NY, 0x00, 0xc2,
0
};
u_char num1tbl[] = {
0xa3, 0xb0,
0xa3, 0xb1,
0xa3, 0xb2,
0xa3, 0xb3,
0xa3, 0xb4,
0xa3, 0xb5,
0xa3, 0xb6,
0xa3, 0xb7,
0xa3, 0xb8,
0xa3, 0xb9,
0xa3, 0xb1,
0xbf, 0xf4,
0xb2, 0xbf};
u_char num2tbl[] = {
0xa1, 0xbb,
0xb0, 0xec,
0xc6, 0xf3,
0xbb, 0xb0,
0xbb, 0xcd,
0xb8, 0xde,
0xcf, 0xbb,
0xbc, 0xb7,
0xc8, 0xac,
0xb6, 0xe5,
0xb0, 0xec,
0xbf, 0xf4,
0xb2, 0xbf};
u_char kurai1_tbl[] = { u_char num3tbl[] = {
_ZI,_XYU,_U, (1<<4)+0+KR1TBLTOPF, 0x05, 0xce, 0xed,
_ZI,_XYU,_XTU, (1<<4)+1+KR1TBLTOPF, 0x02, 0xb0, 0xed,
_SE,_NN, _NIL, (3<<4)+2+KR1TBLTOPF, 0x07, 0xc6, 0xf5,
_ZE,_NN, _NIL, (3<<4)+3, 0x05, 0xbb, 0xb2,
_HI,_XYA,_KU, (2<<4)+4+KR1TBLTOPF, 0x07, 0xbb, 0xcd,
_HI,_XYA,_XTU, (2<<4)+5+KR1TBLTOPF, 0x02, 0xb8, 0xde,
_BI,_XYA,_KU, (2<<4)+6, 0x07, 0xcf, 0xbb,
_BI,_XYA,_XTU, (2<<4)+7, 0x00, 0xbc, 0xb7,
_PI,_XYA,_KU, (2<<4)+8, 0x07, 0xc8, 0xac,
_PI,_XYA,_XTU, (2<<4)+9, 0x00, 0xb6, 0xe5,
0 0xb0, 0xed,
}; 0xbf, 0xf4,
0xb2, 0xbf};
u_char num4tbl[] = {
0xc0, 0xe9,
0xc9, 0xb4,
0xbd, 0xbd,
0};
u_char num5tbl[] = {
0xc0, 0xe9,
0xc9, 0xb4,
0xbd, 0xa6,
0};
u_char kurai2_tbl[] = { u_char num6tbl[] = {
_O, _KU, _NIL, (2<<4)+13, 0xc3, 0xfb,
_TI,_XYO,_U, (3<<4)+14, 0xb2, 0xaf,
_MA,_NN, _NIL, (1<<4)+15, 0xcb, 0xfc,
0 0};
};
u_char num1tbl[] = {
0xa3, 0xb0,
0xa3, 0xb1,
0xa3, 0xb2,
0xa3, 0xb3,
0xa3, 0xb4,
0xa3, 0xb5,
0xa3, 0xb6,
0xa3, 0xb7,
0xa3, 0xb8,
0xa3, 0xb9,
0xa3, 0xb1,
0xbf, 0xf4,
0xb2, 0xbf
};
u_char num2tbl[] = {
0xa1, 0xbb,
0xb0, 0xec,
0xc6, 0xf3,
0xbb, 0xb0,
0xbb, 0xcd,
0xb8, 0xde,
0xcf, 0xbb,
0xbc, 0xb7,
0xc8, 0xac,
0xb6, 0xe5,
0xb0, 0xec,
0xbf, 0xf4,
0xb2, 0xbf
};
u_char num3tbl[] = {
0xce, 0xed,
0xb0, 0xed,
0xc6, 0xf5,
0xbb, 0xb2,
0xbb, 0xcd,
0xb8, 0xde,
0xcf, 0xbb,
0xbc, 0xb7,
0xc8, 0xac,
0xb6, 0xe5,
0xb0, 0xed,
0xbf, 0xf4,
0xb2, 0xbf
};
u_char num4tbl[] = {
0xc0, 0xe9,
0xc9, 0xb4,
0xbd, 0xbd,
0
};
u_char num5tbl[] = {
0xc0, 0xe9,
0xc9, 0xb4,
0xbd, 0xa6,
0
};
u_char num6tbl[] = {
0xc3, 0xfb,
0xb2, 0xaf,
0xcb, 0xfc,
0
};

View file

@ -33,40 +33,33 @@
* $SonyDate: 1994/06/03 08:02:40 $ * $SonyDate: 1994/06/03 08:02:40 $
*/ */
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_right.h" #include "sj_right.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
int int terminate(TypeCnct right, u_char* yomi) {
terminate(TypeCnct right, u_char *yomi) u_char ch;
{
u_char ch;
if((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER))
if ((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER))
return TRUE; return TRUE;
ch = *yomi; ch = *yomi;
if (Termtbl[right] & T_SHUUJO) { if(Termtbl[right] & T_SHUUJO) {
if (!ch) return TRUE; if(!ch) return TRUE;
if (Chrtbl[ch] & FZKTOP) return FALSE; if(Chrtbl[ch] & FZKTOP) return FALSE;
if (!isdpnd(ch)) return SHU; if(!isdpnd(ch)) return SHU;
} }
if (Termtbl[right] & T_KANOU) { if(Termtbl[right] & T_KANOU) {
if (ch && (Chrtbl[ch] & FZKTOP)) return FALSE; if(ch && (Chrtbl[ch] & FZKTOP)) return FALSE;
if (!isdpnd(ch)) return TRUE; if(!isdpnd(ch)) return TRUE;
} }
return FALSE; return FALSE;
} }

View file

@ -33,8 +33,6 @@
* $SonyDate: 1994/06/03 08:02:42 $ * $SonyDate: 1994/06/03 08:02:42 $
*/ */
#include "sj_rename.h" #include "sj_rename.h"
#include "sj_typedef.h" #include "sj_typedef.h"
#include "sj_const.h" #include "sj_const.h"
@ -42,286 +40,285 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
u_char termtbl[] = { u_char termtbl[] = {
0, 0,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_A, T_KANOU + P_JOSHI_A,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + 8, T_KANOU + 8,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_E, T_KANOU + P_JOSHI_E,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
T_KANOU + P_RENYOU_M, T_KANOU + P_RENYOU_M,
0, 0,
0, 0,
0, 0,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_SHUUJO+ P_SHUUSI, T_SHUUJO + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + RENTAI + 8, T_KANOU + RENTAI + 8,
T_KANOU + RENTAI + 10, T_KANOU + RENTAI + 10,
T_KANOU + RENTAI + 7, T_KANOU + RENTAI + 7,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + RENTAI + 7, T_KANOU + RENTAI + 7,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + RENTAI + 7, T_KANOU + RENTAI + 7,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_SHUUJO+ RENTAI + 6, T_SHUUJO + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 7, T_KANOU + RENTAI + 7,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + RENTAI + 6, T_KANOU + RENTAI + 6,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + 3, T_KANOU + 3,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_KAMEI, T_KANOU + P_KAMEI,
T_KANOU + P_MEIREI, T_KANOU + P_MEIREI,
T_KANOU + P_MEIREI, T_KANOU + P_MEIREI,
T_SHUUJO+ P_MEIREI, T_SHUUJO + P_MEIREI,
T_SHUUJO+ P_MEIREI, T_SHUUJO + P_MEIREI,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_FUKA, T_KANOU + P_FUKA,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_DAIMEISI, T_KANOU + P_DAIMEISI,
T_KANOU + P_DAIMEISI, T_KANOU + P_DAIMEISI,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_JOSHI_E, T_KANOU + P_JOSHI_E,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_DAIMEISI, T_KANOU + P_DAIMEISI,
T_KANOU + P_FUKUSI, T_KANOU + P_FUKUSI,
T_KANOU + P_FUKUSI, T_KANOU + P_FUKUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_DAIMEISI, T_KANOU + P_DAIMEISI,
T_KANOU + 7, T_KANOU + 7,
0 + P_FUKA, 0 + P_FUKA,
T_SHUUJO+ P_JOSHI_E, T_SHUUJO + P_JOSHI_E,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_A, T_KANOU + P_JOSHI_A,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_F_FUKUSI, T_KANOU + P_F_FUKUSI,
0, 0,
T_KANOU + P_JOSHI_F, T_KANOU + P_JOSHI_F,
0, 0,
0, 0,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
T_KANOU + P_RENYOU_J, T_KANOU + P_RENYOU_J,
T_KANOU + P_RENYOU_F, T_KANOU + P_RENYOU_F,
0 + P_FUKA, 0 + P_FUKA,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
0 + P_FUKA, 0 + P_FUKA,
T_SHUUJO+ P_SHUUSI, T_SHUUJO + P_SHUUSI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + 1, T_KANOU + 1,
T_KANOU + P_JOSHI_F, T_KANOU + P_JOSHI_F,
T_KANOU + P_JOSHI_F, T_KANOU + P_JOSHI_F,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_F, T_KANOU + P_JOSHI_F,
T_KANOU + P_SHUUSI, T_KANOU + P_SHUUSI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_JOSHI_D, T_KANOU + P_JOSHI_D,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_SHUUJO+ P_SHUUSI, T_SHUUJO + P_SHUUSI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_B, T_KANOU + P_JOSHI_B,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_JOSHI_C, T_KANOU + P_JOSHI_C,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
T_KANOU + P_KEISIKI, T_KANOU + P_KEISIKI,
0 + P_JOSHI_C, 0 + P_JOSHI_C,
T_KANOU + P_SUUSI, T_KANOU + P_SUUSI,
T_KANOU + P_SETUZOKU, T_KANOU + P_SETUZOKU,
T_KANOU + P_KANDOU, T_KANOU + P_KANDOU,
T_KANOU + P_SETTOU, T_KANOU + P_SETTOU,
T_KANOU + P_FUKUSI, T_KANOU + P_FUKUSI,
T_KANOU + P_FZKKGU, T_KANOU + P_FZKKGU,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
T_KANOU + P_MEISI, T_KANOU + P_MEISI,
0 + P_SETUBI, 0 + P_SETUBI,
T_KANOU + P_SETUBI, T_KANOU + P_SETUBI,
T_KANOU + P_JOSUUSI, T_KANOU + P_JOSUUSI,
T_KANOU + P_RENTAISI, T_KANOU + P_RENTAISI,
T_KANOU + P_TANKAN T_KANOU + P_TANKAN};
};

View file

@ -39,18 +39,16 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void void wakachi() {
wakachi() JREC* jrec;
{ CLREC* clrec;
JREC *jrec;
CLREC *clrec;
CREC crec[4]; CREC crec[4];
int count; int count;
u_char *next; u_char* next;
TypeCnct right; TypeCnct right;
int i; int i;
int maxlen; int maxlen;
free_jall(maxjptr); free_jall(maxjptr);
maxjptr = NULL; maxjptr = NULL;
@ -58,49 +56,47 @@ wakachi()
maxlen = (cnvlen > MAXCLINPUTLEN) ? MAXCLINPUTLEN : cnvlen; maxlen = (cnvlen > MAXCLINPUTLEN) ? MAXCLINPUTLEN : cnvlen;
next = cnvstart; next = cnvstart;
if (Chrtbl[*next] & (TAI_KGU | FZK_KGU)) { if(Chrtbl[*next] & (TAI_KGU | FZK_KGU)) {
while (*next && (Chrtbl[*next] & (TAI_KGU | FZK_KGU))) while(*next && (Chrtbl[*next] & (TAI_KGU | FZK_KGU)))
next++; next++;
if ((i = next - cnvstart) > maxlen) { if((i = next - cnvstart) > maxlen) {
next = cnvstart + maxlen; next = cnvstart + maxlen;
i = maxlen; i = maxlen;
} }
if (!(jrec = argjrec(i, (JREC *)NULL))) return; if(!(jrec = argjrec(i, (JREC*)NULL))) return;
jrec -> class = C_WAKACHI; jrec->class = C_WAKACHI;
jrec -> hinsi = D_MEISI_1; jrec->hinsi = D_MEISI_1;
if (Chrtbl[*(next - 1)] & TAI_KGU) if(Chrtbl[*(next - 1)] & TAI_KGU)
srchfzk(jrec, next, R_DAIMEISI, 0); srchfzk(jrec, next, R_DAIMEISI, 0);
} }
else { else {
if (!(jrec = argjrec(0, (JREC *)NULL))) return; if(!(jrec = argjrec(0, (JREC*)NULL))) return;
jrec -> class = C_WAKACHI; jrec->class = C_WAKACHI;
jrec -> hinsi = MEISI_6; jrec->hinsi = MEISI_6;
while ((int)jrec -> jlen < maxlen) { while((int)jrec->jlen < maxlen) {
count = setconj((TypeGram)MEISI_6, jrec, crec); count = setconj((TypeGram)MEISI_6, jrec, crec);
for (i = count ; i-- > 0 ; ) { for(i = count; i-- > 0;) {
right = crec[i].right; right = crec[i].right;
gobilen = crec[i].len; gobilen = crec[i].len;
next = cnvstart + jrec->jlen + gobilen; next = cnvstart + jrec->jlen + gobilen;
if (gobilen) { if(gobilen) {
if (terminate(right, next)) { if(terminate(right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(jrec, next, right); setclrec(jrec, next, right);
} }
} } else if((Chrtbl[*next] & NUMBER) && (jrec->jlen)) {
else if ((Chrtbl[*next] & NUMBER)
&& (jrec -> jlen)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(jrec, next, right); setclrec(jrec, next, right);
return; return;
@ -109,22 +105,21 @@ wakachi()
srchfzk(jrec, next, right, 0); srchfzk(jrec, next, right, 0);
} }
if (maxclptr) break; if(maxclptr) break;
(jrec -> jlen)++; (jrec->jlen)++;
} }
} }
if ((maxclptr) && (Chrtbl[*(cnvstart + jrec -> jlen)] & FZKTOP)) if((maxclptr) && (Chrtbl[*(cnvstart + jrec->jlen)] & FZKTOP))
return; return;
if (jrec -> jlen) { if(jrec->jlen) {
if (clrec = argclrec((int)jrec -> jlen)) { if(clrec = argclrec((int)jrec->jlen)) {
clrec -> jnode = jrec; clrec->jnode = jrec;
clrec -> right = R_MEISI; clrec->right = R_MEISI;
clrec -> kubun = K_TAIGEN; clrec->kubun = K_TAIGEN;
(jrec -> count)++; (jrec->count)++;
} }
} }
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -33,7 +33,6 @@
* $SonyDate: 1994/11/17 06:49:21 $ * $SonyDate: 1994/11/17 06:49:21 $
*/ */
#include <stdio.h> #include <stdio.h>
#include <locale.h> #include <locale.h>
#include "wchar16.h" #include "wchar16.h"
@ -47,108 +46,93 @@
#define FALSE (0) #define FALSE (0)
#endif #endif
#define sjis2euc sj3_sjis2euc #define sjis2euc sj3_sjis2euc
#define euc2sjis sj3_euc2sjis #define euc2sjis sj3_euc2sjis
#define issjis1(c) (((0x81 <= (c)) && ((c) <= 0x9f)) || \ #define issjis1(c) (((0x81 <= (c)) && ((c) <= 0x9f)) || \
((0xe0 <= (c)) && ((c) <= 0xfc))) ((0xe0 <= (c)) && ((c) <= 0xfc)))
#define iseuc(c) ((0xa1 <= (c)) && ((c) <= 0xfe)) #define iseuc(c) ((0xa1 <= (c)) && ((c) <= 0xfe))
#define iskana(c) ((0xa1 <= (c)) && ((c) <= 0xdf)) #define iskana(c) ((0xa1 <= (c)) && ((c) <= 0xdf))
extern int current_locale; extern int current_locale;
int int sj3_iswcntrl16(wchar16_t wc) {
sj3_iswcntrl16(wchar16_t wc) if((wc < 0x20) || (wc == 0x7f)) return TRUE;
{
if ((wc < 0x20) || (wc == 0x7f)) return TRUE;
return FALSE; return FALSE;
} }
int int sj3_iswupper16(wchar16_t wc) {
sj3_iswupper16(wchar16_t wc) if(((0x40 < wc) && (wc < 0x5b)) ||
{ ((0xa3c0 < wc) && (wc < 0xa3db))) return TRUE;
if (((0x40 < wc) && (wc < 0x5b)) ||
((0xa3c0 < wc) && (wc < 0xa3db))) return TRUE;
return FALSE; return FALSE;
} }
int int sj3_iswdigit16(wchar16_t wc) {
sj3_iswdigit16(wchar16_t wc) if(((0x29 < wc) && (wc < 0x3a)) ||
{ ((0xa3af < wc) && (wc < 0xa3ba))) return TRUE;
if (((0x29 < wc) && (wc < 0x3a)) ||
((0xa3af < wc) && (wc < 0xa3ba))) return TRUE;
return FALSE; return FALSE;
} }
int int sj3_iswxdigit16(wchar16_t wc) {
sj3_iswxdigit16(wchar16_t wc) if(((0x29 < wc) && (wc < 0x3a)) ||
{ ((0xa3af < wc) && (wc < 0xa3ba))) return TRUE;
if (((0x29 < wc) && (wc < 0x3a)) ||
((0xa3af < wc) && (wc < 0xa3ba))) return TRUE;
if (((0x60 < wc) && (wc < 0x67)) || if(((0x60 < wc) && (wc < 0x67)) ||
((0x40 < wc) && (wc < 0x47))) return TRUE; ((0x40 < wc) && (wc < 0x47))) return TRUE;
if (((0xa3c0 < wc) && (wc < 0xa3c7)) || if(((0xa3c0 < wc) && (wc < 0xa3c7)) ||
((0xa3e0 < wc) && (wc < 0xa3e6))) return TRUE; ((0xa3e0 < wc) && (wc < 0xa3e6))) return TRUE;
return FALSE; return FALSE;
} }
int int sj3_wslen16(wchar16_t* ws) {
sj3_wslen16(wchar16_t *ws) int i = 0;
{
int i=0;
if (!ws) return 0; if(!ws) return 0;
while (*ws++) i++; while(*ws++) i++;
return i; return i;
} }
int int sj3_wscmp16(wchar16_t* ws1, wchar16_t* ws2) {
sj3_wscmp16(wchar16_t *ws1, wchar16_t *ws2) while((*ws1 && *ws2) && (*ws1 == *ws2)) {
{
while ((*ws1 && *ws2) && (*ws1 == *ws2)) {
ws1++; ws1++;
ws2++; ws2++;
} }
if (!*ws1 && !*ws2) return 0; if(!*ws1 && !*ws2) return 0;
if (!*ws1) return -1; if(!*ws1) return -1;
if (!*ws2) return 1; if(!*ws2) return 1;
if (*ws1 < *ws2) return -1; if(*ws1 < *ws2) return -1;
return 1;
}
int
sj3_wsncmp16(wchar16_t *ws1, wchar16_t *ws2, int n)
{
int i=0;
while ((*ws1 && *ws2) && (*ws1 == *ws2) && (i < n)) {
ws1++;
ws2++;
i++;
}
if (!*ws1 && !*ws2) return 0;
if (i == n) return 0;
if (!*ws1) return -1;
if (!*ws2) return 1;
if (*ws1 < *ws2) return -1;
return 1; return 1;
} }
wchar16_t * int sj3_wsncmp16(wchar16_t* ws1, wchar16_t* ws2, int n) {
sj3_wscpy16(wchar16_t *ws1, wchar16_t *ws2) int i = 0;
{
wchar16_t *ws;
if (!ws2) return NULL; while((*ws1 && *ws2) && (*ws1 == *ws2) && (i < n)) {
ws1++;
ws2++;
i++;
}
if(!*ws1 && !*ws2) return 0;
if(i == n) return 0;
if(!*ws1) return -1;
if(!*ws2) return 1;
if(*ws1 < *ws2) return -1;
return 1;
}
wchar16_t*
sj3_wscpy16(wchar16_t* ws1, wchar16_t* ws2) {
wchar16_t* ws;
if(!ws2) return NULL;
ws = ws1; ws = ws1;
while (*ws2) { while(*ws2) {
*ws++ = *ws2++; *ws++ = *ws2++;
} }
*ws = 0; *ws = 0;
@ -156,35 +140,33 @@ sj3_wscpy16(wchar16_t *ws1, wchar16_t *ws2)
return ws1; return ws1;
} }
wchar16_t * wchar16_t*
sj3_wsncpy16(wchar16_t *ws1, wchar16_t *ws2, int n) sj3_wsncpy16(wchar16_t* ws1, wchar16_t* ws2, int n) {
{ wchar16_t* ws;
wchar16_t *ws; int i = 0;
int i=0;
if (!ws2) return NULL; if(!ws2) return NULL;
ws = ws1; ws = ws1;
while (*ws2 && (i < n)) { while(*ws2 && (i < n)) {
*ws++ = *ws2++; *ws++ = *ws2++;
i++; i++;
} }
if (i < n) *ws = 0; if(i < n) *ws = 0;
return ws1; return ws1;
} }
wchar16_t * wchar16_t*
sj3_wscat16(wchar16_t *ws1, wchar16_t *ws2) sj3_wscat16(wchar16_t* ws1, wchar16_t* ws2) {
{ wchar16_t* ws;
wchar16_t *ws;
if (!ws1) return NULL; if(!ws1) return NULL;
if (!ws2) return NULL; if(!ws2) return NULL;
ws = ws1; ws = ws1;
while (*ws) ws++; while(*ws) ws++;
while (*ws2) { while(*ws2) {
*ws++ = *ws2++; *ws++ = *ws2++;
} }
*ws = 0; *ws = 0;
@ -192,15 +174,13 @@ sj3_wscat16(wchar16_t *ws1, wchar16_t *ws2)
return ws1; return ws1;
} }
wchar16_t wchar16_t
sj3_euc2wc16(unsigned int code) sj3_euc2wc16(unsigned int code) {
{
wchar16_t wc = 0; wchar16_t wc = 0;
if (((code >> 16) & 0xff) == SS3) { if(((code >> 16) & 0xff) == SS3) {
wc = code & 0xff7f; wc = code & 0xff7f;
} else if (((code >> 8) & 0xff) == SS2) { } else if(((code >> 8) & 0xff) == SS2) {
wc = code & 0xff; wc = code & 0xff;
} else { } else {
wc = code; wc = code;
@ -210,13 +190,12 @@ sj3_euc2wc16(unsigned int code)
} }
wchar16_t wchar16_t
sj3_sjis2wc16(unsigned int code) sj3_sjis2wc16(unsigned int code) {
{
unsigned short ch; unsigned short ch;
if ((code >> 8) & 0xff) { if((code >> 8) & 0xff) {
ch = sjis2euc(code); ch = sjis2euc(code);
} else if (code & MSB) { } else if(code & MSB) {
ch = (SS2 << 8) + (code & 0xff); ch = (SS2 << 8) + (code & 0xff);
} else { } else {
return code; return code;
@ -225,20 +204,19 @@ sj3_sjis2wc16(unsigned int code)
} }
unsigned int unsigned int
sj3_wc2euc16(wchar16_t wc) sj3_wc2euc16(wchar16_t wc) {
{ unsigned int code = 0;
unsigned int code = 0;
unsigned char tmp; unsigned char tmp;
tmp = (wc >> 8) & 0xff; tmp = (wc >> 8) & 0xff;
if (tmp) { if(tmp) {
if (wc & MSB) { if(wc & MSB) {
code = wc; code = wc;
} else { } else {
code = (SS3 << 16) + wc + MSB; code = (SS3 << 16) + wc + MSB;
} }
} else { } else {
if (wc & MSB) { if(wc & MSB) {
code = (SS2 << 8) + wc; code = (SS2 << 8) + wc;
} else { } else {
code = wc; code = wc;
@ -249,49 +227,46 @@ sj3_wc2euc16(wchar16_t wc)
} }
unsigned int unsigned int
sj3_wc2sjis16(wchar16_t wc) sj3_wc2sjis16(wchar16_t wc) {
{
unsigned int ch; unsigned int ch;
ch = sj3_wc2euc16(wc); ch = sj3_wc2euc16(wc);
if ((ch >> 16) == SS3) { if((ch >> 16) == SS3) {
return 0; return 0;
} else if ((ch >> 8) == SS2) { } else if((ch >> 8) == SS2) {
return (ch & 0xff); return (ch & 0xff);
} else if ((ch >> 8) & 0xff) { } else if((ch >> 8) & 0xff) {
return euc2sjis(ch); return euc2sjis(ch);
} else { } else {
return wc; return wc;
} }
} }
int int sj3_wcs2eucs16(unsigned char* mb, wchar16_t* ws, int n) {
sj3_wcs2eucs16(unsigned char *mb, wchar16_t *ws, int n) int i = 0;
{ unsigned int code;
int i = 0;
unsigned int code;
unsigned char c; unsigned char c;
while (*ws && (i < n)) { while(*ws && (i < n)) {
code = sj3_wc2euc16(*ws); code = sj3_wc2euc16(*ws);
if (c = ((code >> 16) & 0xff)) { if(c = ((code >> 16) & 0xff)) {
*mb++ = c; *mb++ = c;
i++; i++;
if (i == n) break; if(i == n) break;
*mb++ = ((code >> 8) & 0xff); *mb++ = ((code >> 8) & 0xff);
i++; i++;
if (i == n) break; if(i == n) break;
*mb++ = code & 0xff; *mb++ = code & 0xff;
i++; i++;
if (i == n) break; if(i == n) break;
} else if (c = ((code >> 8) & 0xff)) { } else if(c = ((code >> 8) & 0xff)) {
*mb++ = c; *mb++ = c;
i++; i++;
if (i == n) break; if(i == n) break;
*mb++ = code & 0xff; *mb++ = code & 0xff;
i++; i++;
if (i == n) break; if(i == n) break;
} else if (c = (code & 0xff)) { } else if(c = (code & 0xff)) {
*mb++ = c; *mb++ = c;
i++; i++;
} else { } else {
@ -300,30 +275,28 @@ sj3_wcs2eucs16(unsigned char *mb, wchar16_t *ws, int n)
ws++; ws++;
} }
if (!*ws) { if(!*ws) {
*mb = '\0'; *mb = '\0';
} }
return i; return i;
} }
int int sj3_wcs2sjiss16(unsigned char* mb, wchar16_t* ws, int n) {
sj3_wcs2sjiss16(unsigned char *mb, wchar16_t *ws, int n) int i = 0;
{ unsigned int code;
int i = 0;
unsigned int code;
unsigned char c; unsigned char c;
while (*ws && (i < n)) { while(*ws && (i < n)) {
code = sj3_wc2sjis16(*ws); code = sj3_wc2sjis16(*ws);
if (c = ((code >> 8) & 0xff)) { if(c = ((code >> 8) & 0xff)) {
*mb++ = c; *mb++ = c;
i++; i++;
if (i == n) break; if(i == n) break;
*mb++ = code & 0xff; *mb++ = code & 0xff;
i++; i++;
if (i == n) break; if(i == n) break;
} else if (c = (code & 0xff)) { } else if(c = (code & 0xff)) {
*mb++ = c; *mb++ = c;
i++; i++;
} else { } else {
@ -332,83 +305,73 @@ sj3_wcs2sjiss16(unsigned char *mb, wchar16_t *ws, int n)
ws++; ws++;
} }
if (!*ws) { if(!*ws) {
*mb = '\0'; *mb = '\0';
} }
return i; return i;
} }
int int sj3_eucs2wcs16(wchar16_t* ws, unsigned char* mb, int n) {
sj3_eucs2wcs16(wchar16_t *ws, unsigned char *mb, int n) int i = 0;
{
int i = 0;
unsigned int code; unsigned int code;
while (*mb && (i < n)) { while(*mb && (i < n)) {
if (*mb == SS3) { if(*mb == SS3) {
code = *mb++ << 16; code = *mb++ << 16;
code += *mb++ << 8; code += *mb++ << 8;
code += *mb++; code += *mb++;
} else if ((*mb == SS2) || (*mb & 0x80)) { } else if((*mb == SS2) || (*mb & 0x80)) {
code = *mb++ << 8; code = *mb++ << 8;
code += *mb++; code += *mb++;
} else { } else {
code = *mb++; code = *mb++;
} }
*ws = sj3_euc2wc16(code); *ws = sj3_euc2wc16(code);
if (!*ws) return -1; if(!*ws) return -1;
ws++; ws++;
i++; i++;
} }
if (!*mb) { if(!*mb) {
*ws = 0; *ws = 0;
} }
return i; return i;
} }
int int sj3_sjiss2wcs16(wchar16_t* ws, unsigned char* mb, int n) {
sj3_sjiss2wcs16(wchar16_t *ws, unsigned char *mb, int n) int i = 0;
{
int i = 0;
unsigned int code; unsigned int code;
while (*mb && (i < n)) { while(*mb && (i < n)) {
if (issjis1(*mb)) { if(issjis1(*mb)) {
code = *mb++ << 8; code = *mb++ << 8;
code += *mb++; code += *mb++;
} else { } else {
code = *mb++; code = *mb++;
} }
*ws = sj3_sjis2wc16(code); *ws = sj3_sjis2wc16(code);
if (!*ws) return -1; if(!*ws) return -1;
ws++; ws++;
i++; i++;
} }
if (!*mb) { if(!*mb) {
*ws = 0; *ws = 0;
} }
return i; return i;
} }
int int sj3_mbstowcs16(wchar16_t* ws, unsigned char* mb, int n) {
sj3_mbstowcs16(wchar16_t *ws, unsigned char *mb, int n) if(current_locale == LC_CTYPE_EUC)
{ return sj3_eucs2wcs16(ws, mb, n);
if (current_locale == LC_CTYPE_EUC)
return sj3_eucs2wcs16(ws, mb, n);
else else
return sj3_sjiss2wcs16(ws, mb, n); return sj3_sjiss2wcs16(ws, mb, n);
} }
int int sj3_wcstombs16(unsigned char* mb, unsigned char* ws, int n) {
sj3_wcstombs16(unsigned char *mb, unsigned char *ws, int n) if(current_locale == LC_CTYPE_EUC)
{ return sj3_wcs2eucs16(mb, ws, n);
if (current_locale == LC_CTYPE_EUC)
return sj3_wcs2eucs16(mb, ws, n);
else else
return sj3_wcs2sjiss16(mb, ws, n); return sj3_wcs2sjiss16(mb, ws, n);
} }

View file

@ -33,61 +33,61 @@
* $SonyDate: 1994/06/03 08:00:32 $ * $SonyDate: 1994/06/03 08:00:32 $
*/ */
#include "sj_euc.h" #include "sj_euc.h"
#include "sj3_dict_const.h" #include "sj3_dict_const.h"
#include "sj3mkdic.h" #include "sj3mkdic.h"
int int cnvyomi(int code) {
cnvyomi(int code)
{
u_short hh; u_short hh;
u_char high; u_char high;
u_char low; u_char low;
hh = ((code >> 16) & 0xffff); hh = ((code >> 16) & 0xffff);
high = ((code >> 8) & 0xff); high = ((code >> 8) & 0xff);
low = (code & 0xff); low = (code & 0xff);
if (!hh) { if(!hh) {
if (high == 0xa1) { if(high == 0xa1) {
switch (low) { switch(low) {
case 0xbc: return 1; case 0xbc:
case 0xf4: return 2; return 1;
case 0xf7: return 3; case 0xf4:
case 0xa7: return 4; return 2;
case 0xf7:
return 3;
case 0xa7:
return 4;
} }
} } else if(high == 0xa2) {
else if (high == 0xa2) { if(low == 0xa9)
if (low == 0xa9) return 4;
return 4; } else if(high == 0xa3) {
} if(low < 0xb0)
else if (high == 0xa3) { ;
if (low < 0xb0) else if(low <= 0xb9)
; return (low - 0xb0 + 0x10);
else if (low <= 0xb9) else if(low < 0xc0)
return(low - 0xb0 + 0x10); ;
else if (low < 0xc0) else if(low <= 0xda)
; return (low - 0xc1 + 0x1A);
else if (low <= 0xda) else if(low < 0xe1)
return(low - 0xc1 + 0x1A); ;
else if (low < 0xe1) else if(low <= 0xfa)
; return (low - 0xe1 + 0x34);
else if (low <= 0xfa) } else if(high == 0xa4) {
return(low - 0xe1 + 0x34); if(low < 0xa1)
} ;
else if (high == 0xa4) { else if(low <= 0xf3)
if (low < 0xa1) return (low - 0xa1 + 0x4e);
; } else if(high == 0xa5) {
else if (low <= 0xf3) switch(low) {
return(low - 0xa1 + 0x4e); case 0xf4:
} return 0xa1;
else if (high == 0xa5) { case 0xf5:
switch (low) { return 0xa2;
case 0xf4: return 0xa1; case 0xf6:
case 0xf5: return 0xa2; return 0xa3;
case 0xf6: return 0xa3;
} }
} }
} }
@ -95,177 +95,172 @@ cnvyomi(int code)
return 0; return 0;
} }
int h2kcode(int code) {
int
h2kcode(int code)
{
u_short hh; u_short hh;
u_char high; u_char high;
u_char low; u_char low;
hh = ((code >> 16) & 0xffff); hh = ((code >> 16) & 0xffff);
high = ((code >> 8) & 0xff); high = ((code >> 8) & 0xff);
low = (code & 0xff); low = (code & 0xff);
if (!hh) { if(!hh) {
if (high != 0xa4) if(high != 0xa4)
return code; return code;
else else
return (code + 0x0100); return (code + 0x0100);
} }
return code; /* XXX */ return code; /* XXX */
} }
int codesize(u_char code) {
int switch(code & KANJIMODEMASK) {
codesize(u_char code) case ZENHIRAASSYUKU:
{ case ZENKATAASSYUKU:
switch (code & KANJIMODEMASK) { case KANJIASSYUKU:
case ZENHIRAASSYUKU: case KANJISTREND:
case ZENKATAASSYUKU:
case KANJIASSYUKU:
case KANJISTREND:
return 1; return 1;
case LEADINGHANKAKU: case LEADINGHANKAKU:
case OFFSETASSYUKU: case OFFSETASSYUKU:
case AIATTRIBUTE: case AIATTRIBUTE:
return 2; return 2;
default: default:
return 2; return 2;
} }
} }
void output_knj(FILE* fp, u_char* p, int l) {
void while(l > 0) {
output_knj(FILE *fp, u_char *p, int l) switch(*p & KANJIMODEMASK) {
{ case ZENHIRAASSYUKU:
while (l > 0) {
switch (*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
fprintf(fp, "\244\322%d", (*p++ & 0x0f) + 1); fprintf(fp, "\244\322%d", (*p++ & 0x0f) + 1);
l--; l--;
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
fprintf(fp, "\245\253%d", (*p++ & 0x0f) + 1); fprintf(fp, "\245\253%d", (*p++ & 0x0f) + 1);
l--; l--;
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
fprintf(fp, "\260\265%1x", (*p++ & 0x0f)); fprintf(fp, "\260\265%1x", (*p++ & 0x0f));
l--; l--;
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
#ifndef USEHANKAKUINDICT #ifndef USEHANKAKUINDICT
l = 0; l = 0;
fprintf(stderr, "\244\252\244\253\244\267\244\244"); fprintf(stderr, "\244\252\244\253\244\267\244\244");
#else #else
fputc(*p++, fp); l--; fputc(*p++, fp);
fputc(*p++, fp); l--; l--;
fputc(*p++, fp);
l--;
#endif #endif
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
fprintf(fp, "ofs%1x", (*p++ & 0x0f)); fprintf(fp, "ofs%1x", (*p++ & 0x0f));
l--; l--;
fprintf(fp, "%02x", *p++); l--; fprintf(fp, "%02x", *p++);
l--;
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
fprintf(fp, "\302\260%1x", (*p++ & 0x0f)); fprintf(fp, "\302\260%1x", (*p++ & 0x0f));
l--; l--;
fprintf(fp, "%02x", *p++); l--; fprintf(fp, "%02x", *p++);
l--;
break; break;
case KANJISTREND: case KANJISTREND:
p++; l--; p++;
l--;
break; break;
default: default:
if (p[1] & 0x80) if(p[1] & 0x80)
fputc(SS3, fp); fputc(SS3, fp);
fputc((*p | 0x80), fp); l--; p++; fputc((*p | 0x80), fp);
fputc((*p | 0x80), fp); l--; p++; l--;
p++;
} fputc((*p | 0x80), fp);
l--;
p++;
}
} }
} }
void output_str(FILE* fp, char* p) {
void while(*p) {
output_str(FILE *fp, char *p) fputc(*p, fp);
{ p++;
while (*p) { fputc(*p, fp); p++; } }
} }
void output_int(FILE* fp, int* p) {
while(*p) {
void if(*p < 0x100) {
output_int(FILE *fp, int *p) fputc(*p, fp);
{ p++;
while (*p) { } else if(*p < 0x10000) {
if (*p < 0x100) {
fputc(*p, fp); p++;
}
else if (*p < 0x10000) {
fputc((*p >> 8) & 0xff, fp); fputc((*p >> 8) & 0xff, fp);
fputc(*p & 0xff, fp); p++; fputc(*p & 0xff, fp);
} p++;
else if (*p < 0x1000000) { } else if(*p < 0x1000000) {
fputc((*p >> 16) & 0xff, fp); fputc((*p >> 16) & 0xff, fp);
fputc((*p >> 8) & 0xff, fp); fputc((*p >> 8) & 0xff, fp);
fputc(*p & 0xff, fp); p++; fputc(*p & 0xff, fp);
} p++;
else { } else {
fputc((*p >> 24) & 0xff, fp); fputc((*p >> 24) & 0xff, fp);
fputc((*p >> 16) & 0xff, fp); fputc((*p >> 16) & 0xff, fp);
fputc((*p >> 8) & 0xff, fp); fputc((*p >> 8) & 0xff, fp);
fputc(*p & 0xff, fp); p++; fputc(*p & 0xff, fp);
p++;
} }
} }
} }
int yomi2zen(int code) {
static char num[] = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
switch(code) {
int case 0x01:
yomi2zen(int code) return 0xa1bc;
{ case 0x02:
static char num[] = { return 0xa1f4;
'0', '1', '2', '3', '4', '5', '6', '7', case 0x03:
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' return 0xa1f7;
}; case 0x04:
return 0xa2a9;
switch (code) { case 0xa1:
case 0x01: return 0xa1bc; return 0xa5f4;
case 0x02: return 0xa1f4; case 0xa2:
case 0x03: return 0xa1f7; return 0xa5f5;
case 0x04: return 0xa2a9; case 0xa3:
case 0xa1: return 0xa5f4; return 0xa5f6;
case 0xa2: return 0xa5f5; default:
case 0xa3: return 0xa5f6; break;
default: break;
} }
if (code < 0x10) if(code < 0x10)
; ;
else if (code < 0x1a) else if(code < 0x1a)
return(0xa300 + code - 0x10 + 0xb0); return (0xa300 + code - 0x10 + 0xb0);
else if (code < 0x34) else if(code < 0x34)
return(0xa300 + code - 0x1a + 0xc1); return (0xa300 + code - 0x1a + 0xc1);
else if (code < 0x4e) else if(code < 0x4e)
return(0xa300 + code - 0x34 + 0xe1); return (0xa300 + code - 0x34 + 0xe1);
else if (code < 0xa1) else if(code < 0xa1)
return(0xa400 + code - 0x4e + 0xa1); return (0xa400 + code - 0x4e + 0xa1);
return ((num[(code >> 4) & 0x0f] << 8) | num[code & 0x0f]); return ((num[(code >> 4) & 0x0f] << 8) | num[code & 0x0f]);
} }
void output_yomi(FILE* fp, u_char* p) {
int i;
while(*p) {
void
output_yomi(FILE *fp, u_char *p)
{
int i;
while (*p) {
i = yomi2zen(*p++); i = yomi2zen(*p++);
fputc((i >> 8) & 0xff, fp); fputc((i >> 8) & 0xff, fp);
fputc(i & 0xff, fp); fputc(i & 0xff, fp);

View file

@ -33,83 +33,68 @@
* $SonyDate: 1996/05/27 06:59:47 $ * $SonyDate: 1996/05/27 06:59:47 $
*/ */
#include "sj3mkdic.h" #include "sj3mkdic.h"
static struct gram_code { static struct gram_code {
char *name; char* name;
int code; int code;
} gramtbl[] = { } gramtbl[] = {
#include "GramTable" #include "GramTable"
}; };
#define GramMax (sizeof(gramtbl)/sizeof(struct gram_code) - 1) #define GramMax (sizeof(gramtbl) / sizeof(struct gram_code) - 1)
int int u_strcmp(u_char* a, u_char* b) {
u_strcmp(u_char *a, u_char *b) if(!a || !b) return 0;
{
if (!a || !b) return 0;
while (*a && *b) { while(*a && *b) {
if (*a < *b) return -1; if(*a < *b) return -1;
if (*a > *b) return 1; if(*a > *b) return 1;
a++; a++;
b++; b++;
} }
if (!*a && !*b) return 0; if(!*a && !*b) return 0;
if (!*a) return -1; if(!*a) return -1;
return 1; return 1;
} }
int cnvhinsi(u_char* buf) {
int int min;
cnvhinsi(u_char *buf) int max;
{ int mid;
int min; int i;
int max;
int mid;
int i;
min = 0; min = 0;
max = GramMax; max = GramMax;
while (min <= max) { while(min <= max) {
mid = (min + max) / 2; mid = (min + max) / 2;
i = u_strcmp(buf, gramtbl[mid].name); i = u_strcmp(buf, gramtbl[mid].name);
if(i < 0) {
if (i < 0) {
max = mid - 1; max = mid - 1;
} }
else if (i > 0) { else if(i > 0) {
min = mid + 1; min = mid + 1;
} }
else { else {
return(gramtbl[mid].code); return (gramtbl[mid].code);
} }
} }
return 0; return 0;
} }
char* hinsi_str(int code) {
int i;
for(i = 0; i <= GramMax; i++) {
char * if(gramtbl[i].code == code) return gramtbl[i].name;
hinsi_str(int code)
{
int i;
for (i = 0 ; i <= GramMax ; i++) {
if (gramtbl[i].code == code) return gramtbl[i].name;
} }
return "Err"; return "Err";

Some files were not shown because too many files have changed in this diff Show more