1
/* CJK character converter HTCJK.h
2
** =======================
4
** Added 11-Jun-96 by FM, based on jiscode.h for
5
** Yutaka Sato's (ysato@etl.go.jp) SJIS.c, and
6
** Takuya ASADA's (asada@three-a.co.jp) CJK patches.
19
** STATUS CHANGE CODES
24
#define ESC CH_ESC /* S/390 -- gil -- 0098 */
28
#define TO_KANA '\016'
29
#define TO_KANAOUT '\017'
31
#define TO_KANJI "\033$B"
32
#define TO_HANJI "\033$A"
33
#define TO_HANGUL "\033$(C"
34
#define TO_ASCII "\033(B"
36
#define IS_SJIS_LO(lo) ((0x40<=lo)&&(lo!=0x7F)&&(lo<=0xFC))
37
#define IS_SJIS_HI1(hi) ((0x81<=hi)&&(hi<=0x9F)) /* 1st lev. */
38
#define IS_SJIS_HI2(hi) ((0xE0<=hi)&&(hi<=0xEF)) /* 2nd lev. */
39
#define IS_SJIS(hi,lo,in_sjis) (!IS_SJIS_LO(lo)?0:IS_SJIS_HI1(hi)?(in_sjis=1):in_sjis&&IS_SJIS_HI2(hi))
40
#define IS_SJIS_2BYTE(hi,lo) (IS_SJIS_LO(lo)&&(IS_SJIS_HI1(hi)||IS_SJIS_HI2(hi)))
41
#define IS_SJIS_X0201KANA(lo) ((0xA1<=lo)&&(lo<=0xDF))
43
#define IS_EUC_LOX(lo) ((0xA1<=lo)&&(lo<=0xFE)) /* extended */
44
#define IS_EUC_HI(hi) ((0xA1<=hi)&&(hi<=0xFE))
45
#define IS_EUC_X0201KANA(hi,lo) ((hi==0x8E)&&(0xA1<=lo)&&(lo<=0xDF))
46
#define IS_EUC(hi,lo) ((IS_EUC_HI(hi) && IS_EUC_LOX(lo))||IS_EUC_X0201KANA(hi,lo))
48
#define IS_JAPANESE_2BYTE(hi,lo) (IS_SJIS_2BYTE(hi,lo) || IS_EUC(hi,lo))
50
#define IS_BIG5_LOS(lo) ((0x40<=lo)&&(lo<=0x7E)) /* standard */
51
#define IS_BIG5_LOX(lo) ((0xA1<=lo)&&(lo<=0xFE)) /* extended */
52
#define IS_BIG5_HI(hi) ((0xA1<=hi)&&(hi<=0xFE))
53
#define IS_BIG5(hi,lo) (IS_BIG5_HI(hi) && (IS_BIG5_LOS(lo) || IS_BIG5_LOX(lo)))
55
typedef enum {NOKANJI, EUC, SJIS, JIS} HTkcode;
56
typedef enum {NOCJK, JAPANESE, CHINESE, KOREAN, TAIPEI} HTCJKlang;
58
extern HTCJKlang HTCJK;
61
** Function prototypes.
63
extern void JISx0201TO0208_EUC PARAMS((
64
register unsigned char IHI,
65
register unsigned char ILO,
66
register unsigned char * OHI,
67
register unsigned char * OLO));
69
extern unsigned char * SJIS_TO_JIS1 PARAMS((
70
register unsigned char HI,
71
register unsigned char LO,
72
register unsigned char * JCODE));
74
extern unsigned char * JIS_TO_SJIS1 PARAMS((
75
register unsigned char HI,
76
register unsigned char LO,
77
register unsigned char * SJCODE));
79
extern unsigned char * EUC_TO_SJIS1 PARAMS((
82
register unsigned char * SJCODE));
84
extern void JISx0201TO0208_SJIS PARAMS((
85
register unsigned char I,
86
register unsigned char * OHI,
87
register unsigned char * OLO));
89
extern unsigned char * SJIS_TO_EUC1 PARAMS((
92
unsigned char * EUCp));
94
extern unsigned char * SJIS_TO_EUC PARAMS((
96
unsigned char * dst));
98
extern unsigned char * EUC_TO_SJIS PARAMS((
100
unsigned char * dst));
102
extern unsigned char * EUC_TO_JIS PARAMS((
108
extern unsigned char * TO_EUC PARAMS((
109
CONST unsigned char * jis,
110
unsigned char * euc));
112
extern void TO_SJIS PARAMS((
113
CONST unsigned char * any,
114
unsigned char * sjis));
116
extern void TO_JIS PARAMS((
117
CONST unsigned char * any,
118
unsigned char * jis));
120
extern char *str_kcode PARAMS((HTkcode code));