File: kctype.h

package info (click to toggle)
fdclone 3.01b-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch
  • size: 4,772 kB
  • ctags: 8,674
  • sloc: ansic: 100,552; makefile: 4,497; sh: 1,480; sed: 224
file content (405 lines) | stat: -rw-r--r-- 13,752 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
/*
 *	kctype.h
 *
 *	Kanji code type macros
 */

#ifndef	__KCTYPE_H_
#define	__KCTYPE_H_

#include "depend.h"
#include <ctype.h>

#ifdef	K_EXTERN
#define	K_INTERN
#define	K_INIT(x)		=x
#else
#define	K_EXTERN		extern
#define	K_INIT(x)
#endif

#define	C_BS			'\010'
#define	C_DEL			'\177'
#define	C_EKANA			0x8e

#ifdef	LSI_C
#include <jctype.h>
#define	Xtoupper(c)		toupper((u_char)(c))
#define	Xtolower(c)		tolower((u_char)(c))
#define	Xisalnum(c)		isalnum((u_char)(c))
#define	Xisalpha(c)		isalpha((u_char)(c))
#define	Xiscntrl(c)		iscntrl((u_char)(c))
#define	Xisdigit(c)		isdigit((u_char)(c))
#define	Xisupper(c)		isupper((u_char)(c))
#define	Xislower(c)		islower((u_char)(c))
#define	Xisxdigit(c)		isxdigit((u_char)(c))
#define	Xisspace(c)		isspace((u_char)(c))
#define	Xisprint(c)		isprint((u_char)(c))
#define	Xisblank(c)		((c) == ' ' || (c) == '\t')
#define	Xiskana(c)		iskana((u_char)(c))
#define	issjis1(c)		iskanji((u_char)(c))
#define	issjis2(c)		iskanji2((u_char)(c))
#define	isutf2(c1, c2)		((((u_char)(c1) & 0xe0) == 0xc0) \
				&& ((u_char)(c2) & 0xc0) == 0x80)
#define	isutf3(c1, c2, c3)	(((u_char)(c1) & 0xf0) == 0xe0 \
				&& ((u_char)(c2) & 0xc0) == 0x80 \
				&& ((u_char)(c3) & 0xc0) == 0x80)
#else	/* !LSI_C */
K_EXTERN CONST u_char uppercase[256]
#ifdef	K_INTERN
= {
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,	/* 0x00 */
	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,	/* 0x10 */
	0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,	/* 0x20 */
	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,	/* 0x30 */
	0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,	/* 0x40 */
	0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,	/* 0x50 */
	0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
	0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,	/* 0x60 */
	0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,	/* 0x70 */
	0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,	/* 0x80 */
	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,	/* 0x90 */
	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,	/* 0xa0 */
	0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,	/* 0xb0 */
	0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,	/* 0xc0 */
	0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,	/* 0xd0 */
	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,	/* 0xe0 */
	0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,	/* 0xf0 */
	0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
}
#endif	/* K_INTERN */
;
K_EXTERN CONST u_char lowercase[256]
#ifdef	K_INTERN
= {
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,	/* 0x00 */
	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,	/* 0x10 */
	0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,	/* 0x20 */
	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,	/* 0x30 */
	0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
	0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,	/* 0x40 */
	0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,	/* 0x50 */
	0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,	/* 0x60 */
	0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,	/* 0x70 */
	0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,	/* 0x80 */
	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,	/* 0x90 */
	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,	/* 0xa0 */
	0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,	/* 0xb0 */
	0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,	/* 0xc0 */
	0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,	/* 0xd0 */
	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,	/* 0xe0 */
	0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,	/* 0xf0 */
	0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
}
#endif	/* K_INTERN */
;
K_EXTERN CONST u_char ctypetable[256]
#ifdef	K_INTERN
= {
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,	/* 0x00 */
	0020, 0260, 0060, 0060, 0060, 0060, 0020, 0020,
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,	/* 0x10 */
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
	0340, 0100, 0100, 0100, 0100, 0100, 0100, 0100,	/* 0x20 */
	0100, 0100, 0100, 0100, 0100, 0100, 0100, 0100,
	0101, 0101, 0101, 0101, 0101, 0101, 0101, 0101,	/* 0x30 */
	0111, 0101, 0100, 0100, 0100, 0100, 0100, 0100,
	0100, 0112, 0112, 0112, 0112, 0112, 0112, 0102,	/* 0x40 */
	0102, 0102, 0102, 0102, 0102, 0102, 0102, 0102,
	0102, 0102, 0102, 0102, 0102, 0102, 0102, 0102,	/* 0x50 */
	0102, 0102, 0102, 0100, 0100, 0100, 0100, 0100,
	0100, 0114, 0114, 0114, 0114, 0114, 0114, 0104,	/* 0x60 */
	0104, 0104, 0104, 0104, 0104, 0104, 0104, 0104,
	0104, 0104, 0104, 0104, 0104, 0104, 0104, 0104,	/* 0x70 */
	0104, 0104, 0104, 0100, 0100, 0100, 0100, 0020,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0x80 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0x90 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xa0 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xb0 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xc0 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xd0 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xe0 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0xf0 */
}
#endif	/* K_INTERN */
;
K_EXTERN CONST u_char kctypetable[256]
#ifdef	K_INTERN
= {
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0x00 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0x10 */
	   0, 0020, 0020, 0020, 0020, 0020, 0020, 0020,	/* 0x20 */
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,	/* 0x30 */
	0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,	/* 0x40 */
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,	/* 0x50 */
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,	/* 0x60 */
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,
	0022, 0022, 0022, 0022, 0022, 0022, 0022, 0022,	/* 0x70 */
	0022, 0022, 0022, 0022, 0022, 0022, 0022,    0,
	0042, 0043, 0043, 0043, 0043, 0043, 0043, 0043,	/* 0x80 */
	0043, 0043, 0043, 0043, 0043, 0043, 0043, 0043,
	0043, 0043, 0043, 0043, 0043, 0043, 0043, 0043,	/* 0x90 */
	0043, 0043, 0043, 0043, 0043, 0043, 0043, 0043,
	0042, 0056, 0056, 0056, 0056, 0056, 0056, 0056,	/* 0xa0 */
	0056, 0056, 0056, 0056, 0056, 0056, 0056, 0056,
	0056, 0056, 0056, 0056, 0056, 0056, 0056, 0056,	/* 0xb0 */
	0056, 0056, 0056, 0056, 0056, 0056, 0056, 0056,
	0116, 0116, 0116, 0116, 0116, 0116, 0116, 0116,	/* 0xc0 */
	0116, 0116, 0116, 0116, 0116, 0116, 0116, 0116,
	0116, 0116, 0116, 0116, 0116, 0116, 0116, 0116,	/* 0xd0 */
	0116, 0116, 0116, 0116, 0116, 0116, 0116, 0116,
	0213, 0213, 0213, 0213, 0213, 0213, 0213, 0213,	/* 0xe0 */
	0213, 0213, 0213, 0213, 0213, 0213, 0213, 0213,
	0013, 0013, 0013, 0013, 0013, 0013, 0013, 0013,	/* 0xf0 */
	0013, 0013, 0013, 0013, 0013, 0010, 0010,    0
}
#endif	/* K_INTERN */
;
#define	Xtoupper(c)		(uppercase[(u_char)(c)])
#define	Xtolower(c)		(lowercase[(u_char)(c)])
#define	C_DIGIT			0001
#define	C_UPPER			0002
#define	C_LOWER			0004
#define	C_HEX			0010
#define	C_CNTRL			0020
#define	C_SPACE			0040
#define	C_PRINT			0100
#define	C_BLANK			0200
#define	Xisalnum(c)		(ctypetable[(u_char)(c)] \
				& (C_DIGIT | C_UPPER | C_LOWER))
#define	Xisalpha(c)		(ctypetable[(u_char)(c)] & (C_UPPER | C_LOWER))
#define	Xiscntrl(c)		(ctypetable[(u_char)(c)] & C_CNTRL)
#define	Xisdigit(c)		(ctypetable[(u_char)(c)] & C_DIGIT)
#define	Xisupper(c)		(ctypetable[(u_char)(c)] & C_UPPER)
#define	Xislower(c)		(ctypetable[(u_char)(c)] & C_LOWER)
#define	Xisxdigit(c)		(ctypetable[(u_char)(c)] & (C_DIGIT | C_HEX))
#define	Xisspace(c)		(ctypetable[(u_char)(c)] & C_SPACE)
#define	Xisprint(c)		(ctypetable[(u_char)(c)] & C_PRINT)
#define	Xisblank(c)		(ctypetable[(u_char)(c)] & C_BLANK)
#define	KC_SJIS1		0001
#define	KC_SJIS2		0002
#define	KC_KANA			0004
#define	KC_EUCJP		0010
#define	KC_JIS			0020
#define	KC_UTFN			0040
#define	KC_UTF2			0100
#define	KC_UTF3			0200
#define	Xiskana(c)		(kctypetable[(u_char)(c)] & KC_KANA)
#ifndef	issjis1
#define	issjis1(c)		(kctypetable[(u_char)(c)] & KC_SJIS1)
#endif
#ifndef	issjis2
#define	issjis2(c)		(kctypetable[(u_char)(c)] & KC_SJIS2)
#endif
#ifndef	iseuc
#define	iseuc(c)		(kctypetable[(u_char)(c)] & KC_EUCJP)
#endif
#ifndef	isjis
#define	isjis(c)		(kctypetable[(u_char)(c)] & KC_JIS)
#endif
#define	isutf2(c1, c2)		((kctypetable[(u_char)(c1)] & KC_UTF2) \
				&& (kctypetable[(u_char)(c2)] & KC_UTFN))
#define	isutf3(c1, c2, c3)	((kctypetable[(u_char)(c1)] & KC_UTF3) \
				&& (kctypetable[(u_char)(c2)] & KC_UTFN) \
				&& (kctypetable[(u_char)(c3)] & KC_UTFN))
#endif	/* !LSI_C */

#define	ismsb(c)		(((u_char)(c)) & 0x80)
#define	isekana(s, i)		((u_char)((s)[i]) == C_EKANA \
				&& Xiskana((s)[(i) + 1]))
#define	isskana(s, i)		Xiskana((s)[i])
#define	isjkana(s, i)		Xiskana(((s)[i]) ^ 0x80)
#define	iswucs2(u)		(((u) & 0xff00) \
				&& ((u) < 0xff61 || (u) > 0xff9f))

#ifndef	MINIMUMSHELL
K_EXTERN CONST u_char b2htable[16]
#ifdef	K_INTERN
= {
	'0', '1', '2', '3', '4', '5', '6', '7',
	'8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
}
#endif
;
#define	tohexa(c)		b2htable[(u_char)(c)]
#endif	/* !MINIMUMSHELL */

#define	NOCNV			0
#define	ENG			1
#define	SJIS			2
#define	EUC			3
#define	JIS7			4
#define	O_JIS7			5
#define	JIS8			6
#define	O_JIS8			7
#define	JUNET			8
#define	O_JUNET			9
#define	HEX			10
#define	CAP			11
#define	UTF8			12
#define	M_UTF8			13
#define	I_UTF8			14

#ifdef	CODEEUC
#define	DEFCODE			EUC
#define	SECCODE			SJIS
#define	KANAWID			2
#define	iskanji1(s, i)		isweuc(s, i)
#define	iswchar(s, i)		(isweuc(s, i) || isekana(s, i))
#else
#define	DEFCODE			SJIS
#define	SECCODE			EUC
#define	KANAWID			1
#define	iskanji1(s, i)		iswsjis(s, i)
#define	iswchar(s, i)		iswsjis(s, i)
#endif

#define	MAXKANJIBUF		(3 + 2 + 3)
#define	MAXKLEN			2
#define	MAXUTF8LEN		3
#define	MAXNFLEN		4

#if	!defined (_NOKANJICONV) || (defined (FD) && !defined (_NODOSDRIVE))
K_EXTERN int kanjierrno K_INIT(0);
#endif
#ifndef	_NOKANJIFCONV
K_EXTERN int defaultkcode K_INIT(NOCNV);
#endif
#ifdef	_NOKANJICONV
#define	inputkcode		NOCNV
#else
K_EXTERN int inputkcode K_INIT(NOCNV);
#endif
#if	!defined (_NOKANJICONV) \
|| (!defined (_NOENGMES) && !defined (_NOJPNMES))
K_EXTERN int outputkcode K_INIT(NOCNV);
#endif
#if	!defined (_NOKANJICONV) && defined (DEP_PTY)
K_EXTERN int ptyinkcode K_INIT(NOCNV);
K_EXTERN int ptyoutkcode K_INIT(NOCNV);
#endif
#ifndef	_NOKANJIFCONV
K_EXTERN int fnamekcode K_INIT(NOCNV);
#endif
#if	!defined (_NOENGMES) && !defined (_NOJPNMES)
K_EXTERN int messagelang K_INIT(NOCNV);
#endif

#define	L_INPUT			0001
#define	L_OUTPUT		0002
#define	L_FNAME			0004
#define	L_TERMINAL		0010
#define	L_MESSAGE		0020

K_EXTERN CONST char kanjiiomode[]
# ifdef	K_INTERN
= {
	          L_OUTPUT | L_FNAME | L_TERMINAL | L_MESSAGE,	/* NOCNV */
	          L_OUTPUT                        | L_MESSAGE,	/* ENG */
	L_INPUT | L_OUTPUT | L_FNAME | L_TERMINAL,		/* SJIS */
	L_INPUT | L_OUTPUT | L_FNAME | L_TERMINAL,		/* EUC */
	          L_OUTPUT | L_FNAME,				/* JIS7 */
	          L_OUTPUT | L_FNAME,				/* O_JIS7 */
	          L_OUTPUT | L_FNAME,				/* JIS8 */
	          L_OUTPUT | L_FNAME,				/* O_JIS8 */
	          L_OUTPUT | L_FNAME,				/* JUNET */
	          L_OUTPUT | L_FNAME,				/* O_JUNET */
	                     L_FNAME,				/* HEX */
	                     L_FNAME,				/* CAP */
	L_INPUT | L_OUTPUT | L_FNAME | L_TERMINAL,		/* UTF8 */
	L_INPUT | L_OUTPUT | L_FNAME | L_TERMINAL,		/* M_UTF8 */
	L_INPUT | L_OUTPUT | L_FNAME | L_TERMINAL,		/* I_UTF8 */
}
# endif	/* K_INTERN */
;

K_EXTERN int iswsjis __P_((CONST char *, int));
#ifndef	LSI_C
K_EXTERN int isweuc __P_((CONST char *, int));
#endif
K_EXTERN int iskana1 __P_((CONST char *, int *));

#ifdef	K_INTERN
int iswsjis(s, i)
CONST char *s;
int i;
{
	return(issjis1(s[i]) && issjis2(s[++i]));
}

# ifndef	LSI_C
int isweuc(s, i)
CONST char *s;
int i;
{
	return(iseuc(s[i]) && iseuc(s[++i]));
}
# endif

int iskana1(s, ip)
CONST char *s;
int *ip;
{
# ifdef	CODEEUC
	int n;

	if ((n = isekana(s, *ip))) (*ip)++;
	return(n);
# else
	return(isskana(s, *ip));
# endif
}
#endif	/* K_INTERN */

#ifdef	_NOKANJICONV
# ifdef	CODEEUC
# define	isinkanji1(c, k) \
				iseuc(c)
# define	isinkanji2(c, k) \
				iseuc(c)
# else
# define	isinkanji1(c, k) \
				issjis1(c)
# define	isinkanji2(c, k) \
				issjis2(c)
# endif
#else	/* !_NOKANJICONV */
#define	isinkanji1(c, k)	(((k) == EUC) ? iseuc(c) : \
				(((k) == SJIS) ? issjis1(c) : 0))
#define	isinkanji2(c, k)	(((k) == EUC) ? iseuc(c) : \
				(((k) == SJIS) ? issjis2(c) : 0))
#endif	/* !_NOKANJICONV */

#endif	/* !__KCTYPE_H_ */