1*35159Smarc /*
2*35159Smarc 
3*35159Smarc  *      Copyright (c) 1984, 1985, 1986 AT&T
4*35159Smarc  *      All Rights Reserved
5*35159Smarc 
6*35159Smarc  *      THIS IS UNPUBLISHED PROPRIETARY SOURCE
7*35159Smarc  *      CODE OF AT&T.
8*35159Smarc  *      The copyright notice above does not
9*35159Smarc  *      evidence any actual or intended
10*35159Smarc  *      publication of such source code.
11*35159Smarc 
12*35159Smarc  */
13*35159Smarc 
14*35159Smarc /* @(#)national.h	1.1 */
15*35159Smarc 
16*35159Smarc /*
17*35159Smarc  *  national.h -  definitions for international character sets
18*35159Smarc  *
19*35159Smarc  *   David Korn
20*35159Smarc  *   AT&T Bell Laboratories
21*35159Smarc  *   Room 5D-112
22*35159Smarc  *   Murray Hill, N. J. 07974
23*35159Smarc  *   Tel. x7975
24*35159Smarc  *
25*35159Smarc  */
26*35159Smarc 
27*35159Smarc /*
28*35159Smarc  * This data must be defined for each country in defs.c
29*35159Smarc  */
30*35159Smarc 
31*35159Smarc #ifndef HIGHBIT
32*35159Smarc # define HIGHBIT		0x80
33*35159Smarc #endif /* HIGHBIT */
34*35159Smarc 
35*35159Smarc #ifndef ESS_MAXCHAR	/* allow multiple includes */
36*35159Smarc 
37*35159Smarc /*
38*35159Smarc  *  This section may change from country to country
39*35159Smarc  */
40*35159Smarc 
41*35159Smarc #define ESS_MAXCHAR	2	/* Maximum number of non-escape bytes
42*35159Smarc 				   for any and all character sets */
43*35159Smarc #define	CCS1_IN_SIZE	2
44*35159Smarc #define	CCS1_OUT_SIZE	2
45*35159Smarc #define	CCS2_IN_SIZE	1
46*35159Smarc #define	CCS2_OUT_SIZE	1
47*35159Smarc #define	CCS3_IN_SIZE	2
48*35159Smarc #define	CCS3_OUT_SIZE	2
49*35159Smarc 
50*35159Smarc /*
51*35159Smarc  * This part is generic
52*35159Smarc  */
53*35159Smarc 
54*35159Smarc #define MARKER		0x100	/* Must be invalid character */
55*35159Smarc #define ESS2		0x8e	/* Escape to char set 2 */
56*35159Smarc #define ESS3		0x8f	/* Escape to char set 3 */
57*35159Smarc #define ESS_SETMASK	(3<<(7*ESS_MAXCHAR))	/* character set bits */
58*35159Smarc 
59*35159Smarc #define	echarset(c)	((c)==ESS3?3:((c)==ESS2)?2:((c)>>7)&1)
60*35159Smarc #define icharset(i)	((i)>>(7*ESS_MAXCHAR)&3)
61*35159Smarc 
62*35159Smarc #define in_csize(s)	int_charsize[s]
63*35159Smarc #define out_csize(s)	int_charsize[s+4]
64*35159Smarc 
65*35159Smarc extern char int_charsize[8];
66*35159Smarc 
67*35159Smarc #endif /* ESS_MAXCHAR */
68