xref: /minix3/bin/csh/char.c (revision d1e4d7ce7de96b58a7e34cb41f3fd9aa036d9692)
1*d1e4d7ceSDavid van Moolenbroek /* $NetBSD: char.c,v 1.10 2012/01/19 02:42:53 christos Exp $ */
2*d1e4d7ceSDavid van Moolenbroek 
3*d1e4d7ceSDavid van Moolenbroek /*-
4*d1e4d7ceSDavid van Moolenbroek  * Copyright (c) 1980, 1991, 1993
5*d1e4d7ceSDavid van Moolenbroek  *	The Regents of the University of California.  All rights reserved.
6*d1e4d7ceSDavid van Moolenbroek  *
7*d1e4d7ceSDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
8*d1e4d7ceSDavid van Moolenbroek  * modification, are permitted provided that the following conditions
9*d1e4d7ceSDavid van Moolenbroek  * are met:
10*d1e4d7ceSDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
11*d1e4d7ceSDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer.
12*d1e4d7ceSDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce the above copyright
13*d1e4d7ceSDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer in the
14*d1e4d7ceSDavid van Moolenbroek  *    documentation and/or other materials provided with the distribution.
15*d1e4d7ceSDavid van Moolenbroek  * 3. Neither the name of the University nor the names of its contributors
16*d1e4d7ceSDavid van Moolenbroek  *    may be used to endorse or promote products derived from this software
17*d1e4d7ceSDavid van Moolenbroek  *    without specific prior written permission.
18*d1e4d7ceSDavid van Moolenbroek  *
19*d1e4d7ceSDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20*d1e4d7ceSDavid van Moolenbroek  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21*d1e4d7ceSDavid van Moolenbroek  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22*d1e4d7ceSDavid van Moolenbroek  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23*d1e4d7ceSDavid van Moolenbroek  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24*d1e4d7ceSDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25*d1e4d7ceSDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26*d1e4d7ceSDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27*d1e4d7ceSDavid van Moolenbroek  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28*d1e4d7ceSDavid van Moolenbroek  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29*d1e4d7ceSDavid van Moolenbroek  * SUCH DAMAGE.
30*d1e4d7ceSDavid van Moolenbroek  */
31*d1e4d7ceSDavid van Moolenbroek 
32*d1e4d7ceSDavid van Moolenbroek #include <sys/cdefs.h>
33*d1e4d7ceSDavid van Moolenbroek #ifndef lint
34*d1e4d7ceSDavid van Moolenbroek #if 0
35*d1e4d7ceSDavid van Moolenbroek static char sccsid[] = "@(#)char.c	8.1 (Berkeley) 5/31/93";
36*d1e4d7ceSDavid van Moolenbroek #else
37*d1e4d7ceSDavid van Moolenbroek __RCSID("$NetBSD: char.c,v 1.10 2012/01/19 02:42:53 christos Exp $");
38*d1e4d7ceSDavid van Moolenbroek #endif
39*d1e4d7ceSDavid van Moolenbroek #endif /* not lint */
40*d1e4d7ceSDavid van Moolenbroek 
41*d1e4d7ceSDavid van Moolenbroek #include "char.h"
42*d1e4d7ceSDavid van Moolenbroek 
43*d1e4d7ceSDavid van Moolenbroek /* on default same as original map */
44*d1e4d7ceSDavid van Moolenbroek unsigned short _cmap[256] = {
45*d1e4d7ceSDavid van Moolenbroek /*	  0 nul		  1 soh		  2 stx		  3 etx	*/
46*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
47*d1e4d7ceSDavid van Moolenbroek 
48*d1e4d7ceSDavid van Moolenbroek /*	  4 eot		  5 enq		  6 ack		  7 bel	*/
49*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
50*d1e4d7ceSDavid van Moolenbroek 
51*d1e4d7ceSDavid van Moolenbroek /*	  8 bs		  9 ht		 10 nl		 11 vt	*/
52*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
53*d1e4d7ceSDavid van Moolenbroek 
54*d1e4d7ceSDavid van Moolenbroek /*	 12 np		 13 cr		 14 so		 15 si	*/
55*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
56*d1e4d7ceSDavid van Moolenbroek 
57*d1e4d7ceSDavid van Moolenbroek /*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
58*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
59*d1e4d7ceSDavid van Moolenbroek 
60*d1e4d7ceSDavid van Moolenbroek /*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
61*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
62*d1e4d7ceSDavid van Moolenbroek 
63*d1e4d7ceSDavid van Moolenbroek /*	 24 can		 25 em		 26 sub		 27 esc	*/
64*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
65*d1e4d7ceSDavid van Moolenbroek 
66*d1e4d7ceSDavid van Moolenbroek /*	 28 fs		 29 gs		 30 rs		 31 us	*/
67*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
68*d1e4d7ceSDavid van Moolenbroek 
69*d1e4d7ceSDavid van Moolenbroek /*	 32 sp		 33 !		 34 "		 35 #	*/
70*d1e4d7ceSDavid van Moolenbroek 	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
71*d1e4d7ceSDavid van Moolenbroek 
72*d1e4d7ceSDavid van Moolenbroek /*	 36 $		 37 %		 38 &		 39 '	*/
73*d1e4d7ceSDavid van Moolenbroek 	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
74*d1e4d7ceSDavid van Moolenbroek 
75*d1e4d7ceSDavid van Moolenbroek /*	 40 (		 41 )		 42 *		 43 +	*/
76*d1e4d7ceSDavid van Moolenbroek 	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
77*d1e4d7ceSDavid van Moolenbroek 
78*d1e4d7ceSDavid van Moolenbroek /*	 44 ,		 45 -		 46 .		 47 /	*/
79*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
80*d1e4d7ceSDavid van Moolenbroek 
81*d1e4d7ceSDavid van Moolenbroek /*	 48 0		 49 1		 50 2		 51 3	*/
82*d1e4d7ceSDavid van Moolenbroek 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
83*d1e4d7ceSDavid van Moolenbroek 
84*d1e4d7ceSDavid van Moolenbroek /*	 52 4		 53 5		 54 6		 55 7	*/
85*d1e4d7ceSDavid van Moolenbroek 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
86*d1e4d7ceSDavid van Moolenbroek 
87*d1e4d7ceSDavid van Moolenbroek /*	 56 8		 57 9		 58 :		 59 ;	*/
88*d1e4d7ceSDavid van Moolenbroek 	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
89*d1e4d7ceSDavid van Moolenbroek 
90*d1e4d7ceSDavid van Moolenbroek /*	 60 <		 61 =		 62 >		 63 ?	*/
91*d1e4d7ceSDavid van Moolenbroek 	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
92*d1e4d7ceSDavid van Moolenbroek 
93*d1e4d7ceSDavid van Moolenbroek /*	 64 @		 65 A		 66 B		 67 C	*/
94*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
95*d1e4d7ceSDavid van Moolenbroek 
96*d1e4d7ceSDavid van Moolenbroek /*	 68 D		 69 E		 70 F		 71 G	*/
97*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
98*d1e4d7ceSDavid van Moolenbroek 
99*d1e4d7ceSDavid van Moolenbroek /*	 72 H		 73 I		 74 J		 75 K	*/
100*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
101*d1e4d7ceSDavid van Moolenbroek 
102*d1e4d7ceSDavid van Moolenbroek /*	 76 L		 77 M		 78 N		 79 O	*/
103*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
104*d1e4d7ceSDavid van Moolenbroek 
105*d1e4d7ceSDavid van Moolenbroek /*	 80 P		 81 Q		 82 R		 83 S	*/
106*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
107*d1e4d7ceSDavid van Moolenbroek 
108*d1e4d7ceSDavid van Moolenbroek /*	 84 T		 85 U		 86 V		 87 W	*/
109*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
110*d1e4d7ceSDavid van Moolenbroek 
111*d1e4d7ceSDavid van Moolenbroek /*	 88 X		 89 Y		 90 Z		 91 [	*/
112*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
113*d1e4d7ceSDavid van Moolenbroek 
114*d1e4d7ceSDavid van Moolenbroek /*	 92 \		 93 ]		 94 ^		 95 _	*/
115*d1e4d7ceSDavid van Moolenbroek 	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
116*d1e4d7ceSDavid van Moolenbroek 
117*d1e4d7ceSDavid van Moolenbroek /*	 96 `		 97 a		 98 b		 99 c	*/
118*d1e4d7ceSDavid van Moolenbroek   _QB|_GLOB|_META|_PUN,	_LET|_LOW|_XD,	_LET|_LOW|_XD,	_LET|_LOW|_XD,
119*d1e4d7ceSDavid van Moolenbroek 
120*d1e4d7ceSDavid van Moolenbroek /*	100 d		101 e		102 f		103 g	*/
121*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW|_XD,	_LET|_LOW|_XD,	_LET|_LOW|_XD,	_LET|_LOW,
122*d1e4d7ceSDavid van Moolenbroek 
123*d1e4d7ceSDavid van Moolenbroek /*	104 h		105 i		106 j		107 k	*/
124*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
125*d1e4d7ceSDavid van Moolenbroek 
126*d1e4d7ceSDavid van Moolenbroek /*	108 l		109 m		110 n		111 o	*/
127*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
128*d1e4d7ceSDavid van Moolenbroek 
129*d1e4d7ceSDavid van Moolenbroek /*	112 p		113 q		114 r		115 s	*/
130*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
131*d1e4d7ceSDavid van Moolenbroek 
132*d1e4d7ceSDavid van Moolenbroek /*	116 t		117 u		118 v		119 w	*/
133*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
134*d1e4d7ceSDavid van Moolenbroek 
135*d1e4d7ceSDavid van Moolenbroek /*	120 x		121 y		122 z		123 {	*/
136*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_GLOB|_PUN,
137*d1e4d7ceSDavid van Moolenbroek 
138*d1e4d7ceSDavid van Moolenbroek /*	124 |		125 }		126 ~		127 del	*/
139*d1e4d7ceSDavid van Moolenbroek 	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
140*d1e4d7ceSDavid van Moolenbroek 
141*d1e4d7ceSDavid van Moolenbroek #ifdef SHORT_STRINGS
142*d1e4d7ceSDavid van Moolenbroek /****************************************************************/
143*d1e4d7ceSDavid van Moolenbroek /* 128 - 255 The below is supposedly ISO 8859/1			*/
144*d1e4d7ceSDavid van Moolenbroek /****************************************************************/
145*d1e4d7ceSDavid van Moolenbroek /*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
146*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
147*d1e4d7ceSDavid van Moolenbroek 
148*d1e4d7ceSDavid van Moolenbroek /*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
149*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
150*d1e4d7ceSDavid van Moolenbroek 
151*d1e4d7ceSDavid van Moolenbroek /*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
152*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
153*d1e4d7ceSDavid van Moolenbroek 
154*d1e4d7ceSDavid van Moolenbroek /*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
155*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
156*d1e4d7ceSDavid van Moolenbroek 
157*d1e4d7ceSDavid van Moolenbroek /*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
158*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
159*d1e4d7ceSDavid van Moolenbroek 
160*d1e4d7ceSDavid van Moolenbroek /*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
161*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
162*d1e4d7ceSDavid van Moolenbroek 
163*d1e4d7ceSDavid van Moolenbroek /*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
164*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
165*d1e4d7ceSDavid van Moolenbroek 
166*d1e4d7ceSDavid van Moolenbroek /*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
167*d1e4d7ceSDavid van Moolenbroek 	_CTR,		_CTR,		_CTR,		_CTR,
168*d1e4d7ceSDavid van Moolenbroek 
169*d1e4d7ceSDavid van Moolenbroek /*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
170*d1e4d7ceSDavid van Moolenbroek 	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
171*d1e4d7ceSDavid van Moolenbroek 
172*d1e4d7ceSDavid van Moolenbroek /*	164 currency	165 yen		166 brokenbar	167 section	*/
173*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
174*d1e4d7ceSDavid van Moolenbroek 
175*d1e4d7ceSDavid van Moolenbroek /*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
176*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
177*d1e4d7ceSDavid van Moolenbroek 
178*d1e4d7ceSDavid van Moolenbroek /*	172 notsign	173 hyphen	174 registered	175 macron	*/
179*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
180*d1e4d7ceSDavid van Moolenbroek 
181*d1e4d7ceSDavid van Moolenbroek /*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
182*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
183*d1e4d7ceSDavid van Moolenbroek 
184*d1e4d7ceSDavid van Moolenbroek /*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
185*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
186*d1e4d7ceSDavid van Moolenbroek 
187*d1e4d7ceSDavid van Moolenbroek /*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
188*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
189*d1e4d7ceSDavid van Moolenbroek 
190*d1e4d7ceSDavid van Moolenbroek /*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
191*d1e4d7ceSDavid van Moolenbroek 	_PUN,		_PUN,		_PUN,		_PUN,
192*d1e4d7ceSDavid van Moolenbroek 
193*d1e4d7ceSDavid van Moolenbroek /*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
194*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
195*d1e4d7ceSDavid van Moolenbroek 
196*d1e4d7ceSDavid van Moolenbroek /*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
197*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
198*d1e4d7ceSDavid van Moolenbroek 
199*d1e4d7ceSDavid van Moolenbroek /*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
200*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
201*d1e4d7ceSDavid van Moolenbroek 
202*d1e4d7ceSDavid van Moolenbroek /*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
203*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
204*d1e4d7ceSDavid van Moolenbroek 
205*d1e4d7ceSDavid van Moolenbroek /*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
206*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
207*d1e4d7ceSDavid van Moolenbroek 
208*d1e4d7ceSDavid van Moolenbroek /*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
209*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
210*d1e4d7ceSDavid van Moolenbroek 
211*d1e4d7ceSDavid van Moolenbroek /*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
212*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
213*d1e4d7ceSDavid van Moolenbroek 
214*d1e4d7ceSDavid van Moolenbroek /*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
215*d1e4d7ceSDavid van Moolenbroek 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_LOW,
216*d1e4d7ceSDavid van Moolenbroek 
217*d1e4d7ceSDavid van Moolenbroek /*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
218*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
219*d1e4d7ceSDavid van Moolenbroek 
220*d1e4d7ceSDavid van Moolenbroek /*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
221*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
222*d1e4d7ceSDavid van Moolenbroek 
223*d1e4d7ceSDavid van Moolenbroek /*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
224*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
225*d1e4d7ceSDavid van Moolenbroek 
226*d1e4d7ceSDavid van Moolenbroek /*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
227*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
228*d1e4d7ceSDavid van Moolenbroek 
229*d1e4d7ceSDavid van Moolenbroek /*	240 eth		241 ntilde	242 ograve	243 oacute	*/
230*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
231*d1e4d7ceSDavid van Moolenbroek 
232*d1e4d7ceSDavid van Moolenbroek /*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
233*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_PUN,
234*d1e4d7ceSDavid van Moolenbroek 
235*d1e4d7ceSDavid van Moolenbroek /*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
236*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
237*d1e4d7ceSDavid van Moolenbroek 
238*d1e4d7ceSDavid van Moolenbroek /*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
239*d1e4d7ceSDavid van Moolenbroek 	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,	_LET|_LOW,
240*d1e4d7ceSDavid van Moolenbroek #endif /* SHORT_STRINGS */
241*d1e4d7ceSDavid van Moolenbroek };
242*d1e4d7ceSDavid van Moolenbroek 
243*d1e4d7ceSDavid van Moolenbroek #ifndef NLS
244*d1e4d7ceSDavid van Moolenbroek /* _cmap_lower, _cmap_upper for ISO 8859/1 */
245*d1e4d7ceSDavid van Moolenbroek 
246*d1e4d7ceSDavid van Moolenbroek unsigned char _cmap_lower[256] = {
247*d1e4d7ceSDavid van Moolenbroek 	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
248*d1e4d7ceSDavid van Moolenbroek 	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
249*d1e4d7ceSDavid van Moolenbroek 	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
250*d1e4d7ceSDavid van Moolenbroek 	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
251*d1e4d7ceSDavid van Moolenbroek 	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
252*d1e4d7ceSDavid van Moolenbroek 	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
253*d1e4d7ceSDavid van Moolenbroek 	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
254*d1e4d7ceSDavid van Moolenbroek 	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
255*d1e4d7ceSDavid van Moolenbroek 	0100,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
256*d1e4d7ceSDavid van Moolenbroek 	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
257*d1e4d7ceSDavid van Moolenbroek 	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
258*d1e4d7ceSDavid van Moolenbroek 	0170,	0171,	0172,	0133,	0134,	0135,	0136,	0137,
259*d1e4d7ceSDavid van Moolenbroek 	0140,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
260*d1e4d7ceSDavid van Moolenbroek 	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
261*d1e4d7ceSDavid van Moolenbroek 	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
262*d1e4d7ceSDavid van Moolenbroek 	0170,	0171,	0172,	0173,	0174,	0175,	0176,	0177,
263*d1e4d7ceSDavid van Moolenbroek 	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
264*d1e4d7ceSDavid van Moolenbroek 	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
265*d1e4d7ceSDavid van Moolenbroek 	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
266*d1e4d7ceSDavid van Moolenbroek 	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
267*d1e4d7ceSDavid van Moolenbroek 	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
268*d1e4d7ceSDavid van Moolenbroek 	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
269*d1e4d7ceSDavid van Moolenbroek 	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
270*d1e4d7ceSDavid van Moolenbroek 	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
271*d1e4d7ceSDavid van Moolenbroek 	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
272*d1e4d7ceSDavid van Moolenbroek 	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
273*d1e4d7ceSDavid van Moolenbroek 	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0327,
274*d1e4d7ceSDavid van Moolenbroek 	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0337,
275*d1e4d7ceSDavid van Moolenbroek 	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
276*d1e4d7ceSDavid van Moolenbroek 	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
277*d1e4d7ceSDavid van Moolenbroek 	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0367,
278*d1e4d7ceSDavid van Moolenbroek 	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0377,
279*d1e4d7ceSDavid van Moolenbroek };
280*d1e4d7ceSDavid van Moolenbroek 
281*d1e4d7ceSDavid van Moolenbroek unsigned char _cmap_upper[256] = {
282*d1e4d7ceSDavid van Moolenbroek 	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
283*d1e4d7ceSDavid van Moolenbroek 	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
284*d1e4d7ceSDavid van Moolenbroek 	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
285*d1e4d7ceSDavid van Moolenbroek 	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
286*d1e4d7ceSDavid van Moolenbroek 	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
287*d1e4d7ceSDavid van Moolenbroek 	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
288*d1e4d7ceSDavid van Moolenbroek 	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
289*d1e4d7ceSDavid van Moolenbroek 	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
290*d1e4d7ceSDavid van Moolenbroek 	0100,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
291*d1e4d7ceSDavid van Moolenbroek 	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
292*d1e4d7ceSDavid van Moolenbroek 	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
293*d1e4d7ceSDavid van Moolenbroek 	0130,	0131,	0132,	0133,	0134,	0135,	0136,	0137,
294*d1e4d7ceSDavid van Moolenbroek 	0140,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
295*d1e4d7ceSDavid van Moolenbroek 	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
296*d1e4d7ceSDavid van Moolenbroek 	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
297*d1e4d7ceSDavid van Moolenbroek 	0130,	0131,	0132,	0173,	0174,	0175,	0176,	0177,
298*d1e4d7ceSDavid van Moolenbroek 	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
299*d1e4d7ceSDavid van Moolenbroek 	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
300*d1e4d7ceSDavid van Moolenbroek 	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
301*d1e4d7ceSDavid van Moolenbroek 	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
302*d1e4d7ceSDavid van Moolenbroek 	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
303*d1e4d7ceSDavid van Moolenbroek 	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
304*d1e4d7ceSDavid van Moolenbroek 	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
305*d1e4d7ceSDavid van Moolenbroek 	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
306*d1e4d7ceSDavid van Moolenbroek 	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
307*d1e4d7ceSDavid van Moolenbroek 	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
308*d1e4d7ceSDavid van Moolenbroek 	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0327,
309*d1e4d7ceSDavid van Moolenbroek 	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0337,
310*d1e4d7ceSDavid van Moolenbroek 	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
311*d1e4d7ceSDavid van Moolenbroek 	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
312*d1e4d7ceSDavid van Moolenbroek 	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0367,
313*d1e4d7ceSDavid van Moolenbroek 	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0377,
314*d1e4d7ceSDavid van Moolenbroek };
315*d1e4d7ceSDavid van Moolenbroek #endif /* NLS */
316