xref: /freebsd-src/contrib/tcsh/sh.char.c (revision 6560ac57ce879857203bc456cdc3849808dc0700)
1c80476e4SDavid E. O'Brien /*
2c80476e4SDavid E. O'Brien  * sh.char.c: Character classification tables
3c80476e4SDavid E. O'Brien  */
4c80476e4SDavid E. O'Brien /*-
5c80476e4SDavid E. O'Brien  * Copyright (c) 1980, 1991 The Regents of the University of California.
6c80476e4SDavid E. O'Brien  * All rights reserved.
7c80476e4SDavid E. O'Brien  *
8c80476e4SDavid E. O'Brien  * Redistribution and use in source and binary forms, with or without
9c80476e4SDavid E. O'Brien  * modification, are permitted provided that the following conditions
10c80476e4SDavid E. O'Brien  * are met:
11c80476e4SDavid E. O'Brien  * 1. Redistributions of source code must retain the above copyright
12c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer.
13c80476e4SDavid E. O'Brien  * 2. Redistributions in binary form must reproduce the above copyright
14c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer in the
15c80476e4SDavid E. O'Brien  *    documentation and/or other materials provided with the distribution.
1629301572SMark Peek  * 3. Neither the name of the University nor the names of its contributors
17c80476e4SDavid E. O'Brien  *    may be used to endorse or promote products derived from this software
18c80476e4SDavid E. O'Brien  *    without specific prior written permission.
19c80476e4SDavid E. O'Brien  *
20c80476e4SDavid E. O'Brien  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21c80476e4SDavid E. O'Brien  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22c80476e4SDavid E. O'Brien  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23c80476e4SDavid E. O'Brien  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24c80476e4SDavid E. O'Brien  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25c80476e4SDavid E. O'Brien  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26c80476e4SDavid E. O'Brien  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27c80476e4SDavid E. O'Brien  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28c80476e4SDavid E. O'Brien  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29c80476e4SDavid E. O'Brien  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c80476e4SDavid E. O'Brien  * SUCH DAMAGE.
31c80476e4SDavid E. O'Brien  */
32c80476e4SDavid E. O'Brien #include "sh.h"
33c80476e4SDavid E. O'Brien #include "sh.char.h"
34c80476e4SDavid E. O'Brien 
35c80476e4SDavid E. O'Brien /* on default same as original map */
36c80476e4SDavid E. O'Brien unsigned short _cmap[256] = {
37c80476e4SDavid E. O'Brien /*	  0 nul		  1 soh		  2 stx		  3 etx	*/
38c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
39c80476e4SDavid E. O'Brien 
40c80476e4SDavid E. O'Brien /*	  4 eot		  5 enq		  6 ack		  7 bel	*/
41c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
42c80476e4SDavid E. O'Brien 
43c80476e4SDavid E. O'Brien /*	  8 bs		  9 ht		 10 nl		 11 vt	*/
44c80476e4SDavid E. O'Brien 	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
45c80476e4SDavid E. O'Brien 
46c80476e4SDavid E. O'Brien /*	 12 np		 13 cr		 14 so		 15 si	*/
47c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
48c80476e4SDavid E. O'Brien 
49c80476e4SDavid E. O'Brien /*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
50c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
51c80476e4SDavid E. O'Brien 
52c80476e4SDavid E. O'Brien /*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
53c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
54c80476e4SDavid E. O'Brien 
55c80476e4SDavid E. O'Brien /*	 24 can		 25 em		 26 sub		 27 esc	*/
56c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
57c80476e4SDavid E. O'Brien 
58c80476e4SDavid E. O'Brien /*	 28 fs		 29 gs		 30 rs		 31 us	*/
59c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
60c80476e4SDavid E. O'Brien 
61c80476e4SDavid E. O'Brien /*	 32 sp		 33 !		 34 "		 35 #	*/
62c80476e4SDavid E. O'Brien 	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
63c80476e4SDavid E. O'Brien 
64c80476e4SDavid E. O'Brien /*	 36 $		 37 %		 38 &		 39 '	*/
65c80476e4SDavid E. O'Brien 	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
66c80476e4SDavid E. O'Brien 
67c80476e4SDavid E. O'Brien /*	 40 (		 41 )		 42 *		 43 +	*/
68c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
69c80476e4SDavid E. O'Brien 
70c80476e4SDavid E. O'Brien /*	 44 ,		 45 -		 46 .		 47 /	*/
71c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
72c80476e4SDavid E. O'Brien 
73c80476e4SDavid E. O'Brien /*	 48 0		 49 1		 50 2		 51 3	*/
74c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
75c80476e4SDavid E. O'Brien 
76c80476e4SDavid E. O'Brien /*	 52 4		 53 5		 54 6		 55 7	*/
77c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
78c80476e4SDavid E. O'Brien 
79c80476e4SDavid E. O'Brien /*	 56 8		 57 9		 58 :		 59 ;	*/
80c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
81c80476e4SDavid E. O'Brien 
82c80476e4SDavid E. O'Brien /*	 60 <		 61 =		 62 >		 63 ?	*/
83c80476e4SDavid E. O'Brien 	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
84c80476e4SDavid E. O'Brien 
85c80476e4SDavid E. O'Brien /*	 64 @		 65 A		 66 B		 67 C	*/
86c80476e4SDavid E. O'Brien 	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
87c80476e4SDavid E. O'Brien 
88c80476e4SDavid E. O'Brien /*	 68 D		 69 E		 70 F		 71 G	*/
89c80476e4SDavid E. O'Brien 	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
90c80476e4SDavid E. O'Brien 
91c80476e4SDavid E. O'Brien /*	 72 H		 73 I		 74 J		 75 K	*/
92c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
93c80476e4SDavid E. O'Brien 
94c80476e4SDavid E. O'Brien /*	 76 L		 77 M		 78 N		 79 O	*/
95c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
96c80476e4SDavid E. O'Brien 
97c80476e4SDavid E. O'Brien /*	 80 P		 81 Q		 82 R		 83 S	*/
98c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
99c80476e4SDavid E. O'Brien 
100c80476e4SDavid E. O'Brien /*	 84 T		 85 U		 86 V		 87 W	*/
101c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
102c80476e4SDavid E. O'Brien 
103c80476e4SDavid E. O'Brien /*	 88 X		 89 Y		 90 Z		 91 [	*/
104c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
105c80476e4SDavid E. O'Brien 
106c80476e4SDavid E. O'Brien /*	 92 \		 93 ]		 94 ^		 95 _	*/
107c80476e4SDavid E. O'Brien 	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
108c80476e4SDavid E. O'Brien 
109c80476e4SDavid E. O'Brien /*	 96 `		 97 a		 98 b		 99 c	*/
110c80476e4SDavid E. O'Brien   _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
111c80476e4SDavid E. O'Brien 
112c80476e4SDavid E. O'Brien /*	100 d		101 e		102 f		103 g	*/
113c80476e4SDavid E. O'Brien 	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
114c80476e4SDavid E. O'Brien 
115c80476e4SDavid E. O'Brien /*	104 h		105 i		106 j		107 k	*/
116c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
117c80476e4SDavid E. O'Brien 
118c80476e4SDavid E. O'Brien /*	108 l		109 m		110 n		111 o	*/
119c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
120c80476e4SDavid E. O'Brien 
121c80476e4SDavid E. O'Brien /*	112 p		113 q		114 r		115 s	*/
122c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
123c80476e4SDavid E. O'Brien 
124c80476e4SDavid E. O'Brien /*	116 t		117 u		118 v		119 w	*/
125c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
126c80476e4SDavid E. O'Brien 
127c80476e4SDavid E. O'Brien /*	120 x		121 y		122 z		123 {	*/
128c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
129c80476e4SDavid E. O'Brien 
130c80476e4SDavid E. O'Brien /*	124 |		125 }		126 ~		127 del	*/
131c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
132c80476e4SDavid E. O'Brien 
133a15e6f9aSMark Peek #ifdef SHORT_STRINGS
134c80476e4SDavid E. O'Brien /****************************************************************/
135c80476e4SDavid E. O'Brien /* 128 - 255 The below is supposedly ISO 8859/1			*/
136c80476e4SDavid E. O'Brien /****************************************************************/
137c80476e4SDavid E. O'Brien /*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
138c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
139c80476e4SDavid E. O'Brien 
140c80476e4SDavid E. O'Brien /*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
141c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
142c80476e4SDavid E. O'Brien 
143c80476e4SDavid E. O'Brien /*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
144c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
145c80476e4SDavid E. O'Brien 
146c80476e4SDavid E. O'Brien /*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
147c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
148c80476e4SDavid E. O'Brien 
149c80476e4SDavid E. O'Brien /*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
150c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
151c80476e4SDavid E. O'Brien 
152c80476e4SDavid E. O'Brien /*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
153c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
154c80476e4SDavid E. O'Brien 
155c80476e4SDavid E. O'Brien /*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
156c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
157c80476e4SDavid E. O'Brien 
158c80476e4SDavid E. O'Brien /*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
159c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
160c80476e4SDavid E. O'Brien 
161c80476e4SDavid E. O'Brien /*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
162c80476e4SDavid E. O'Brien 	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
163c80476e4SDavid E. O'Brien 
164c80476e4SDavid E. O'Brien /*	164 currency	165 yen		166 brokenbar	167 section	*/
165c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
166c80476e4SDavid E. O'Brien 
167c80476e4SDavid E. O'Brien /*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
168c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
169c80476e4SDavid E. O'Brien 
170c80476e4SDavid E. O'Brien /*	172 notsign	173 hyphen	174 registered	175 macron	*/
171c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
172c80476e4SDavid E. O'Brien 
173c80476e4SDavid E. O'Brien /*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
174c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
175c80476e4SDavid E. O'Brien 
176c80476e4SDavid E. O'Brien /*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
177c80476e4SDavid E. O'Brien 	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
178c80476e4SDavid E. O'Brien 
179c80476e4SDavid E. O'Brien /*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
180c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
181c80476e4SDavid E. O'Brien 
182c80476e4SDavid E. O'Brien /*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
183c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
184c80476e4SDavid E. O'Brien 
185c80476e4SDavid E. O'Brien /*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
186c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
187c80476e4SDavid E. O'Brien 
188c80476e4SDavid E. O'Brien /*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
189c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
190c80476e4SDavid E. O'Brien 
191c80476e4SDavid E. O'Brien /*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
192c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
193c80476e4SDavid E. O'Brien 
194c80476e4SDavid E. O'Brien /*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
195c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
196c80476e4SDavid E. O'Brien 
197c80476e4SDavid E. O'Brien /*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
198c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
199c80476e4SDavid E. O'Brien 
200c80476e4SDavid E. O'Brien /*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
201c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
202c80476e4SDavid E. O'Brien 
203c80476e4SDavid E. O'Brien /*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
204c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
205c80476e4SDavid E. O'Brien 
206c80476e4SDavid E. O'Brien /*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
207c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
208c80476e4SDavid E. O'Brien 
209c80476e4SDavid E. O'Brien /*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
210c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
211c80476e4SDavid E. O'Brien 
212c80476e4SDavid E. O'Brien /*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
213c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
214c80476e4SDavid E. O'Brien 
215c80476e4SDavid E. O'Brien /*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
216c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
217c80476e4SDavid E. O'Brien 
218c80476e4SDavid E. O'Brien /*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
219c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
220c80476e4SDavid E. O'Brien 
221c80476e4SDavid E. O'Brien /*	240 eth		241 ntilde	242 ograve	243 oacute	*/
222c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
223c80476e4SDavid E. O'Brien 
224c80476e4SDavid E. O'Brien /*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
225c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
226c80476e4SDavid E. O'Brien 
227c80476e4SDavid E. O'Brien /*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
228c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
229c80476e4SDavid E. O'Brien 
230c80476e4SDavid E. O'Brien /*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
231c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
232a15e6f9aSMark Peek #endif /* SHORT_STRINGS */
233*9ccc37e3SMark Peek };
234a15e6f9aSMark Peek 
235a15e6f9aSMark Peek #if defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE)
236c80476e4SDavid E. O'Brien /* original table */
237c80476e4SDavid E. O'Brien unsigned short _cmap_c[256] = {
238c80476e4SDavid E. O'Brien /*	  0 nul		  1 soh		  2 stx		  3 etx	*/
239c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
240c80476e4SDavid E. O'Brien 
241c80476e4SDavid E. O'Brien /*	  4 eot		  5 enq		  6 ack		  7 bel	*/
242c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
243c80476e4SDavid E. O'Brien 
244c80476e4SDavid E. O'Brien /*	  8 bs		  9 ht		 10 nl		 11 vt	*/
245c80476e4SDavid E. O'Brien 	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
246c80476e4SDavid E. O'Brien 
247c80476e4SDavid E. O'Brien /*	 12 np		 13 cr		 14 so		 15 si	*/
248c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
249c80476e4SDavid E. O'Brien 
250c80476e4SDavid E. O'Brien /*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
251c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
252c80476e4SDavid E. O'Brien 
253c80476e4SDavid E. O'Brien /*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
254c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
255c80476e4SDavid E. O'Brien 
256c80476e4SDavid E. O'Brien /*	 24 can		 25 em		 26 sub		 27 esc	*/
257c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
258c80476e4SDavid E. O'Brien 
259c80476e4SDavid E. O'Brien /*	 28 fs		 29 gs		 30 rs		 31 us	*/
260c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
261c80476e4SDavid E. O'Brien 
262c80476e4SDavid E. O'Brien /*	 32 sp		 33 !		 34 "		 35 #	*/
263c80476e4SDavid E. O'Brien 	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
264c80476e4SDavid E. O'Brien 
265c80476e4SDavid E. O'Brien /*	 36 $		 37 %		 38 &		 39 '	*/
266c80476e4SDavid E. O'Brien 	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
267c80476e4SDavid E. O'Brien 
268c80476e4SDavid E. O'Brien /*	 40 (		 41 )		 42 *		 43 +	*/
269c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
270c80476e4SDavid E. O'Brien 
271c80476e4SDavid E. O'Brien /*	 44 ,		 45 -		 46 .		 47 /	*/
272c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
273c80476e4SDavid E. O'Brien 
274c80476e4SDavid E. O'Brien /*	 48 0		 49 1		 50 2		 51 3	*/
275c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
276c80476e4SDavid E. O'Brien 
277c80476e4SDavid E. O'Brien /*	 52 4		 53 5		 54 6		 55 7	*/
278c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
279c80476e4SDavid E. O'Brien 
280c80476e4SDavid E. O'Brien /*	 56 8		 57 9		 58 :		 59 ;	*/
281c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
282c80476e4SDavid E. O'Brien 
283c80476e4SDavid E. O'Brien /*	 60 <		 61 =		 62 >		 63 ?	*/
284c80476e4SDavid E. O'Brien 	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
285c80476e4SDavid E. O'Brien 
286c80476e4SDavid E. O'Brien /*	 64 @		 65 A		 66 B		 67 C	*/
287c80476e4SDavid E. O'Brien 	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
288c80476e4SDavid E. O'Brien 
289c80476e4SDavid E. O'Brien /*	 68 D		 69 E		 70 F		 71 G	*/
290c80476e4SDavid E. O'Brien 	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
291c80476e4SDavid E. O'Brien 
292c80476e4SDavid E. O'Brien /*	 72 H		 73 I		 74 J		 75 K	*/
293c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
294c80476e4SDavid E. O'Brien 
295c80476e4SDavid E. O'Brien /*	 76 L		 77 M		 78 N		 79 O	*/
296c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
297c80476e4SDavid E. O'Brien 
298c80476e4SDavid E. O'Brien /*	 80 P		 81 Q		 82 R		 83 S	*/
299c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
300c80476e4SDavid E. O'Brien 
301c80476e4SDavid E. O'Brien /*	 84 T		 85 U		 86 V		 87 W	*/
302c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
303c80476e4SDavid E. O'Brien 
304c80476e4SDavid E. O'Brien /*	 88 X		 89 Y		 90 Z		 91 [	*/
305c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
306c80476e4SDavid E. O'Brien 
307c80476e4SDavid E. O'Brien /*	 92 \		 93 ]		 94 ^		 95 _	*/
308c80476e4SDavid E. O'Brien 	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
309c80476e4SDavid E. O'Brien 
310c80476e4SDavid E. O'Brien /*	 96 `		 97 a		 98 b		 99 c	*/
311c80476e4SDavid E. O'Brien   _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
312c80476e4SDavid E. O'Brien 
313c80476e4SDavid E. O'Brien /*	100 d		101 e		102 f		103 g	*/
314c80476e4SDavid E. O'Brien 	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
315c80476e4SDavid E. O'Brien 
316c80476e4SDavid E. O'Brien /*	104 h		105 i		106 j		107 k	*/
317c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
318c80476e4SDavid E. O'Brien 
319c80476e4SDavid E. O'Brien /*	108 l		109 m		110 n		111 o	*/
320c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
321c80476e4SDavid E. O'Brien 
322c80476e4SDavid E. O'Brien /*	112 p		113 q		114 r		115 s	*/
323c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
324c80476e4SDavid E. O'Brien 
325c80476e4SDavid E. O'Brien /*	116 t		117 u		118 v		119 w	*/
326c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
327c80476e4SDavid E. O'Brien 
328c80476e4SDavid E. O'Brien /*	120 x		121 y		122 z		123 {	*/
329c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
330c80476e4SDavid E. O'Brien 
331c80476e4SDavid E. O'Brien /*	124 |		125 }		126 ~		127 del	*/
332c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
333c80476e4SDavid E. O'Brien 
334c80476e4SDavid E. O'Brien /****************************************************************/
335c80476e4SDavid E. O'Brien /* 128 - 255 The below is supposedly ISO 8859/1			*/
336c80476e4SDavid E. O'Brien /****************************************************************/
337c80476e4SDavid E. O'Brien /*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
338c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
339c80476e4SDavid E. O'Brien 
340c80476e4SDavid E. O'Brien /*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
341c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
342c80476e4SDavid E. O'Brien 
343c80476e4SDavid E. O'Brien /*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
344c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
345c80476e4SDavid E. O'Brien 
346c80476e4SDavid E. O'Brien /*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
347c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
348c80476e4SDavid E. O'Brien 
349c80476e4SDavid E. O'Brien /*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
350c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
351c80476e4SDavid E. O'Brien 
352c80476e4SDavid E. O'Brien /*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
353c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
354c80476e4SDavid E. O'Brien 
355c80476e4SDavid E. O'Brien /*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
356c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
357c80476e4SDavid E. O'Brien 
358c80476e4SDavid E. O'Brien /*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
359c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
360c80476e4SDavid E. O'Brien 
361c80476e4SDavid E. O'Brien /*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
362c80476e4SDavid E. O'Brien 	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
363c80476e4SDavid E. O'Brien 
364c80476e4SDavid E. O'Brien /*	164 currency	165 yen		166 brokenbar	167 section	*/
365c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
366c80476e4SDavid E. O'Brien 
367c80476e4SDavid E. O'Brien /*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
368c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
369c80476e4SDavid E. O'Brien 
370c80476e4SDavid E. O'Brien /*	172 notsign	173 hyphen	174 registered	175 macron	*/
371c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
372c80476e4SDavid E. O'Brien 
373c80476e4SDavid E. O'Brien /*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
374c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
375c80476e4SDavid E. O'Brien 
376c80476e4SDavid E. O'Brien /*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
377c80476e4SDavid E. O'Brien 	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
378c80476e4SDavid E. O'Brien 
379c80476e4SDavid E. O'Brien /*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
380c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
381c80476e4SDavid E. O'Brien 
382c80476e4SDavid E. O'Brien /*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
383c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
384c80476e4SDavid E. O'Brien 
385c80476e4SDavid E. O'Brien /*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
386c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
387c80476e4SDavid E. O'Brien 
388c80476e4SDavid E. O'Brien /*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
389c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
390c80476e4SDavid E. O'Brien 
391c80476e4SDavid E. O'Brien /*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
392c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
393c80476e4SDavid E. O'Brien 
394c80476e4SDavid E. O'Brien /*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
395c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
396c80476e4SDavid E. O'Brien 
397c80476e4SDavid E. O'Brien /*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
398c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
399c80476e4SDavid E. O'Brien 
400c80476e4SDavid E. O'Brien /*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
401c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
402c80476e4SDavid E. O'Brien 
403c80476e4SDavid E. O'Brien /*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
404c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
405c80476e4SDavid E. O'Brien 
406c80476e4SDavid E. O'Brien /*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
407c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
408c80476e4SDavid E. O'Brien 
409c80476e4SDavid E. O'Brien /*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
410c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
411c80476e4SDavid E. O'Brien 
412c80476e4SDavid E. O'Brien /*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
413c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
414c80476e4SDavid E. O'Brien 
415c80476e4SDavid E. O'Brien /*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
416c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
417c80476e4SDavid E. O'Brien 
418c80476e4SDavid E. O'Brien /*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
419c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
420c80476e4SDavid E. O'Brien 
421c80476e4SDavid E. O'Brien /*	240 eth		241 ntilde	242 ograve	243 oacute	*/
422c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
423c80476e4SDavid E. O'Brien 
424c80476e4SDavid E. O'Brien /*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
425c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
426c80476e4SDavid E. O'Brien 
427c80476e4SDavid E. O'Brien /*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
428c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
429c80476e4SDavid E. O'Brien 
430c80476e4SDavid E. O'Brien /*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
431c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
432c80476e4SDavid E. O'Brien };
433c80476e4SDavid E. O'Brien 
434c80476e4SDavid E. O'Brien /* multi-byte table */
435c80476e4SDavid E. O'Brien /* BY Masaaki Koyanagi VERY THANKS */
436c80476e4SDavid E. O'Brien unsigned short _cmap_mbyte[256] = {
437c80476e4SDavid E. O'Brien /*	  0 nul		  1 soh		  2 stx		  3 etx	*/
438c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
439c80476e4SDavid E. O'Brien 
440c80476e4SDavid E. O'Brien /*	  4 eot		  5 enq		  6 ack		  7 bel	*/
441c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
442c80476e4SDavid E. O'Brien 
443c80476e4SDavid E. O'Brien /*	  8 bs		  9 ht		 10 nl		 11 vt	*/
444c80476e4SDavid E. O'Brien 	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
445c80476e4SDavid E. O'Brien 
446c80476e4SDavid E. O'Brien /*	 12 np		 13 cr		 14 so		 15 si	*/
447c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
448c80476e4SDavid E. O'Brien 
449c80476e4SDavid E. O'Brien /*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
450c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
451c80476e4SDavid E. O'Brien 
452c80476e4SDavid E. O'Brien /*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
453c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
454c80476e4SDavid E. O'Brien 
455c80476e4SDavid E. O'Brien /*	 24 can		 25 em		 26 sub		 27 esc	*/
456c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
457c80476e4SDavid E. O'Brien 
458c80476e4SDavid E. O'Brien /*	 28 fs		 29 gs		 30 rs		 31 us	*/
459c80476e4SDavid E. O'Brien 	_CTR,		_CTR,		_CTR,		_CTR,
460c80476e4SDavid E. O'Brien 
461c80476e4SDavid E. O'Brien /*	 32 sp		 33 !		 34 "		 35 #	*/
462c80476e4SDavid E. O'Brien 	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
463c80476e4SDavid E. O'Brien 
464c80476e4SDavid E. O'Brien /*	 36 $		 37 %		 38 &		 39 '	*/
465c80476e4SDavid E. O'Brien 	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
466c80476e4SDavid E. O'Brien 
467c80476e4SDavid E. O'Brien /*	 40 (		 41 )		 42 *		 43 +	*/
468c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
469c80476e4SDavid E. O'Brien 
470c80476e4SDavid E. O'Brien /*	 44 ,		 45 -		 46 .		 47 /	*/
471c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
472c80476e4SDavid E. O'Brien 
473c80476e4SDavid E. O'Brien /*	 48 0		 49 1		 50 2		 51 3	*/
474c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
475c80476e4SDavid E. O'Brien 
476c80476e4SDavid E. O'Brien /*	 52 4		 53 5		 54 6		 55 7	*/
477c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
478c80476e4SDavid E. O'Brien 
479c80476e4SDavid E. O'Brien /*	 56 8		 57 9		 58 :		 59 ;	*/
480c80476e4SDavid E. O'Brien 	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
481c80476e4SDavid E. O'Brien 
482c80476e4SDavid E. O'Brien /*	 60 <		 61 =		 62 >		 63 ?	*/
483c80476e4SDavid E. O'Brien 	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
484c80476e4SDavid E. O'Brien 
485c80476e4SDavid E. O'Brien /*	 64 @		 65 A		 66 B		 67 C	*/
486c80476e4SDavid E. O'Brien 	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
487c80476e4SDavid E. O'Brien 
488c80476e4SDavid E. O'Brien /*	 68 D		 69 E		 70 F		 71 G	*/
489c80476e4SDavid E. O'Brien 	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
490c80476e4SDavid E. O'Brien 
491c80476e4SDavid E. O'Brien /*	 72 H		 73 I		 74 J		 75 K	*/
492c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
493c80476e4SDavid E. O'Brien 
494c80476e4SDavid E. O'Brien /*	 76 L		 77 M		 78 N		 79 O	*/
495c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
496c80476e4SDavid E. O'Brien 
497c80476e4SDavid E. O'Brien /*	 80 P		 81 Q		 82 R		 83 S	*/
498c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
499c80476e4SDavid E. O'Brien 
500c80476e4SDavid E. O'Brien /*	 84 T		 85 U		 86 V		 87 W	*/
501c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
502c80476e4SDavid E. O'Brien 
503c80476e4SDavid E. O'Brien /*	 88 X		 89 Y		 90 Z		 91 [	*/
504c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
505c80476e4SDavid E. O'Brien 
506c80476e4SDavid E. O'Brien /*	 92 \		 93 ]		 94 ^		 95 _	*/
507c80476e4SDavid E. O'Brien 	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
508c80476e4SDavid E. O'Brien 
509c80476e4SDavid E. O'Brien /*	 96 `		 97 a		 98 b		 99 c	*/
510c80476e4SDavid E. O'Brien   _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
511c80476e4SDavid E. O'Brien 
512c80476e4SDavid E. O'Brien /*	100 d		101 e		102 f		103 g	*/
513c80476e4SDavid E. O'Brien 	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
514c80476e4SDavid E. O'Brien 
515c80476e4SDavid E. O'Brien /*	104 h		105 i		106 j		107 k	*/
516c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
517c80476e4SDavid E. O'Brien 
518c80476e4SDavid E. O'Brien /*	108 l		109 m		110 n		111 o	*/
519c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
520c80476e4SDavid E. O'Brien 
521c80476e4SDavid E. O'Brien /*	112 p		113 q		114 r		115 s	*/
522c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
523c80476e4SDavid E. O'Brien 
524c80476e4SDavid E. O'Brien /*	116 t		117 u		118 v		119 w	*/
525c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
526c80476e4SDavid E. O'Brien 
527c80476e4SDavid E. O'Brien /*	120 x		121 y		122 z		123 {	*/
528c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
529c80476e4SDavid E. O'Brien 
530c80476e4SDavid E. O'Brien /*	124 |		125 }		126 ~		127 del	*/
531c80476e4SDavid E. O'Brien 	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
532c80476e4SDavid E. O'Brien 
533c80476e4SDavid E. O'Brien /****************************************************************/
534c80476e4SDavid E. O'Brien /* 128 - 255 The below is supposedly ISO 8859/1			*/
535c80476e4SDavid E. O'Brien /****************************************************************/
536c80476e4SDavid E. O'Brien /*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
537c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
538c80476e4SDavid E. O'Brien 
539c80476e4SDavid E. O'Brien /*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
540c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
541c80476e4SDavid E. O'Brien 
542c80476e4SDavid E. O'Brien /*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
543c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
544c80476e4SDavid E. O'Brien 
545c80476e4SDavid E. O'Brien /*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
546c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
547c80476e4SDavid E. O'Brien 
548c80476e4SDavid E. O'Brien /*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
549c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
550c80476e4SDavid E. O'Brien 
551c80476e4SDavid E. O'Brien /*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
552c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
553c80476e4SDavid E. O'Brien 
554c80476e4SDavid E. O'Brien /*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
555c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
556c80476e4SDavid E. O'Brien 
557c80476e4SDavid E. O'Brien /*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
558c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
559c80476e4SDavid E. O'Brien 
560c80476e4SDavid E. O'Brien /*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
561c80476e4SDavid E. O'Brien 	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
562c80476e4SDavid E. O'Brien 
563c80476e4SDavid E. O'Brien /*	164 currency	165 yen		166 brokenbar	167 section	*/
564c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
565c80476e4SDavid E. O'Brien 
566c80476e4SDavid E. O'Brien /*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
567c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
568c80476e4SDavid E. O'Brien 
569c80476e4SDavid E. O'Brien /*	172 notsign	173 hyphen	174 registered	175 macron	*/
570c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
571c80476e4SDavid E. O'Brien 
572c80476e4SDavid E. O'Brien /*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
573c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
574c80476e4SDavid E. O'Brien 
575c80476e4SDavid E. O'Brien /*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
576c80476e4SDavid E. O'Brien 	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
577c80476e4SDavid E. O'Brien 
578c80476e4SDavid E. O'Brien /*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
579c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
580c80476e4SDavid E. O'Brien 
581c80476e4SDavid E. O'Brien /*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
582c80476e4SDavid E. O'Brien 	_PUN,		_PUN,		_PUN,		_PUN,
583c80476e4SDavid E. O'Brien 
584c80476e4SDavid E. O'Brien /*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
585c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
586c80476e4SDavid E. O'Brien 
587c80476e4SDavid E. O'Brien /*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
588c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
589c80476e4SDavid E. O'Brien 
590c80476e4SDavid E. O'Brien /*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
591c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
592c80476e4SDavid E. O'Brien 
593c80476e4SDavid E. O'Brien /*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
594c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
595c80476e4SDavid E. O'Brien 
596c80476e4SDavid E. O'Brien /*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
597c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
598c80476e4SDavid E. O'Brien 
599c80476e4SDavid E. O'Brien /*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
600c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
601c80476e4SDavid E. O'Brien 
602c80476e4SDavid E. O'Brien /*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
603c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
604c80476e4SDavid E. O'Brien 
605c80476e4SDavid E. O'Brien /*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
606c80476e4SDavid E. O'Brien 	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
607c80476e4SDavid E. O'Brien 
608c80476e4SDavid E. O'Brien /*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
609c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
610c80476e4SDavid E. O'Brien 
611c80476e4SDavid E. O'Brien /*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
612c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
613c80476e4SDavid E. O'Brien 
614c80476e4SDavid E. O'Brien /*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
615c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
616c80476e4SDavid E. O'Brien 
617c80476e4SDavid E. O'Brien /*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
618c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
619c80476e4SDavid E. O'Brien 
620c80476e4SDavid E. O'Brien /*	240 eth		241 ntilde	242 ograve	243 oacute	*/
621c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
622c80476e4SDavid E. O'Brien 
623c80476e4SDavid E. O'Brien /*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
624c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
625c80476e4SDavid E. O'Brien 
626c80476e4SDavid E. O'Brien /*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
627c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
628c80476e4SDavid E. O'Brien 
629c80476e4SDavid E. O'Brien /*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
630c80476e4SDavid E. O'Brien 	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
631c80476e4SDavid E. O'Brien };
632c80476e4SDavid E. O'Brien 
633c80476e4SDavid E. O'Brien short _enable_mbdisp = 0; /* control multi-byte 0...disable 1...enable */
634c80476e4SDavid E. O'Brien 
635c80476e4SDavid E. O'Brien /* multi-byte check table */
636c80476e4SDavid E. O'Brien /* default = all 0 (clear process in update_vars()/unset()) */
637c80476e4SDavid E. O'Brien unsigned short _mbmap[256];
638c80476e4SDavid E. O'Brien 
639c80476e4SDavid E. O'Brien unsigned short _mbmap_euc[256] = {
640c80476e4SDavid E. O'Brien /* first byte	0x8e,0xa0 - 0xf4 */
641c80476e4SDavid E. O'Brien /* second byte 	0xa0 - 0xfe */
642c80476e4SDavid E. O'Brien /* 0 - 7f all 0 */
643c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
644c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
645c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
646c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
647c80476e4SDavid E. O'Brien /*  80		81		82		83 */
648c80476e4SDavid E. O'Brien     0,		0,		0,		0,
649c80476e4SDavid E. O'Brien /*  84		85		86		87 */
650c80476e4SDavid E. O'Brien     0,		0,		0,		0,
651c80476e4SDavid E. O'Brien /*  88		89		8a		8b */
652c80476e4SDavid E. O'Brien     0,		0,		0,		0,
653c80476e4SDavid E. O'Brien /*  8c		8d		8e		8f */
654c80476e4SDavid E. O'Brien     0,		0,		_MB1,		0,
655c80476e4SDavid E. O'Brien /* 90 - 9f all 0 */
656c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
657c80476e4SDavid E. O'Brien /*  a0		a1		a2		a3 */
658c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
659c80476e4SDavid E. O'Brien /*  a4		a5		a6		a7 */
660c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
661c80476e4SDavid E. O'Brien /*  a8		a9		aa		ab */
662c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
663c80476e4SDavid E. O'Brien /*  ac		ad		ae		af */
664c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
665c80476e4SDavid E. O'Brien /*  b0		b1		b2		b3 */
666c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
667c80476e4SDavid E. O'Brien /*  b4		b5		b6		b7 */
668c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
669c80476e4SDavid E. O'Brien /*  b8		b9		ba		bb */
670c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
671c80476e4SDavid E. O'Brien /*  bc		bd		be		bf */
672c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
673c80476e4SDavid E. O'Brien /*  c0		c1		c2		c3 */
674c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
675c80476e4SDavid E. O'Brien /*  c4		c5		c6		c7 */
676c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
677c80476e4SDavid E. O'Brien /*  c8		c9		ca		cb */
678c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
679c80476e4SDavid E. O'Brien /*  cc		cd		ce		cf */
680c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
681c80476e4SDavid E. O'Brien /*  d0		d1		d2		d3 */
682c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
683c80476e4SDavid E. O'Brien /*  d4		d5		d6		d7 */
684c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
685c80476e4SDavid E. O'Brien /*  d8		d9		da		db */
686c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
687c80476e4SDavid E. O'Brien /*  dc		dd		de		df */
688c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
689c80476e4SDavid E. O'Brien /*  e0		e1		e2		e3 */
690c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
691c80476e4SDavid E. O'Brien /*  e4		e5		e6		e7 */
692c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
693c80476e4SDavid E. O'Brien /*  e8		e9		ea		eb */
694c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
695c80476e4SDavid E. O'Brien /*  ec		ed		ee		ef */
696c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
697c80476e4SDavid E. O'Brien /*  f0		f1		f2		f3 */
698c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
699c80476e4SDavid E. O'Brien /*  f4		f5		f6		f7 */
700c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB2,		_MB2,		_MB2,
701c80476e4SDavid E. O'Brien /*  f8		f9		fa		fb */
702c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
703c80476e4SDavid E. O'Brien /*  fc		fd		fe		ff */
704c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		0,
705c80476e4SDavid E. O'Brien };
706c80476e4SDavid E. O'Brien 
707c80476e4SDavid E. O'Brien unsigned short _mbmap_sjis[256] = {
708c80476e4SDavid E. O'Brien /* first byte	0x81-0x9f,0xe0 - 0xfc */
709c80476e4SDavid E. O'Brien /* second byte 	0x40-0x7e,0x80 - 0xfc */
710c80476e4SDavid E. O'Brien /* 0 - 3f all 0 */
711c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
712c80476e4SDavid E. O'Brien     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
713c80476e4SDavid E. O'Brien /*  40		41		42		43 */
714c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
715c80476e4SDavid E. O'Brien /*  44		45		46		47 */
716c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
717c80476e4SDavid E. O'Brien /*  48		49		4a		4b */
718c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
719c80476e4SDavid E. O'Brien /*  4c		4d		4e		4f */
720c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
721c80476e4SDavid E. O'Brien /*  50		51		52		53 */
722c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
723c80476e4SDavid E. O'Brien /*  54		55		56		57 */
724c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
725c80476e4SDavid E. O'Brien /*  58		59		5a		5b */
726c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
727c80476e4SDavid E. O'Brien /*  5c		5d		5e		5f */
728c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
729c80476e4SDavid E. O'Brien /*  60		61		62		63 */
730c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
731c80476e4SDavid E. O'Brien /*  64		65		66		67 */
732c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
733c80476e4SDavid E. O'Brien /*  68		69		6a		6b */
734c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
735c80476e4SDavid E. O'Brien /*  6c		6d		6e		6f */
736c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
737c80476e4SDavid E. O'Brien /*  70		71		72		73 */
738c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
739c80476e4SDavid E. O'Brien /*  74		75		76		77 */
740c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
741c80476e4SDavid E. O'Brien /*  78		79		7a		7b */
742c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
743c80476e4SDavid E. O'Brien /*  7c		7d		7e		7f */
744c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		0,
745c80476e4SDavid E. O'Brien /*  80		81		82		83 */
746c80476e4SDavid E. O'Brien     _MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
747c80476e4SDavid E. O'Brien /*  84		85		86		87 */
748c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
749c80476e4SDavid E. O'Brien /*  88		89		8a		8b */
750c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
751c80476e4SDavid E. O'Brien /*  8c		8d		8e		8f */
752c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
753c80476e4SDavid E. O'Brien /*  90		91		92		93 */
754c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
755c80476e4SDavid E. O'Brien /*  94		95		96		97 */
756c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
757c80476e4SDavid E. O'Brien /*  98		99		9a		9b */
758c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
759c80476e4SDavid E. O'Brien /*  9c		9d		9e		9f */
760c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
761c80476e4SDavid E. O'Brien /*  a0		a1		a2		a3 */
762c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
763c80476e4SDavid E. O'Brien /*  a4		a5		a6		a7 */
764c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
765c80476e4SDavid E. O'Brien /*  a8		a9		aa		ab */
766c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
767c80476e4SDavid E. O'Brien /*  ac		ad		ae		af */
768c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
769c80476e4SDavid E. O'Brien /*  b0		b1		b2		b3 */
770c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
771c80476e4SDavid E. O'Brien /*  b4		b5		b6		b7 */
772c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
773c80476e4SDavid E. O'Brien /*  b8		b9		ba		bb */
774c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
775c80476e4SDavid E. O'Brien /*  bc		bd		be		bf */
776c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
777c80476e4SDavid E. O'Brien /*  c0		c1		c2		c3 */
778c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
779c80476e4SDavid E. O'Brien /*  c4		c5		c6		c7 */
780c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
781c80476e4SDavid E. O'Brien /*  c8		c9		ca		cb */
782c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
783c80476e4SDavid E. O'Brien /*  cc		cd		ce		cf */
784c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
785c80476e4SDavid E. O'Brien /*  d0		d1		d2		d3 */
786c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
787c80476e4SDavid E. O'Brien /*  d4		d5		d6		d7 */
788c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
789c80476e4SDavid E. O'Brien /*  d8		d9		da		db */
790c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
791c80476e4SDavid E. O'Brien /*  dc		dd		de		df */
792c80476e4SDavid E. O'Brien     _MB2,	_MB2,		_MB2,		_MB2,
793c80476e4SDavid E. O'Brien /*  e0		e1		e2		e3 */
794c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
795c80476e4SDavid E. O'Brien /*  e4		e5		e6		e7 */
796c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
797c80476e4SDavid E. O'Brien /*  e8		e9		ea		eb */
798c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
799c80476e4SDavid E. O'Brien /*  ec		ed		ee		ef */
800c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
801c80476e4SDavid E. O'Brien /*  f0		f1		f2		f3 */
802c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
803c80476e4SDavid E. O'Brien /*  f4		f5		f6		f7 */
804c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
805c80476e4SDavid E. O'Brien /*  f8		f9		fa		fb */
806c80476e4SDavid E. O'Brien     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
807c80476e4SDavid E. O'Brien /*  fc		fd		fe		ff */
808c80476e4SDavid E. O'Brien     _MB1|_MB2,	0,		0,		0,
809c80476e4SDavid E. O'Brien };
810c80476e4SDavid E. O'Brien 
8116767bd61SMark Peek unsigned short _mbmap_big5[256] = {
8126767bd61SMark Peek /* This is latest big5 charmap, so called "Big5+" */
8136767bd61SMark Peek /* first byte   0x81 - 0xfe */
8146767bd61SMark Peek /* second byte  0x40 - 0x7e, 0x80 - 0xfe */
8156767bd61SMark Peek /* 0x00 - 0x3f = 0 */
8166767bd61SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8176767bd61SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8186767bd61SMark Peek /* 0x40 - 0x7e = 2 */
8196767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8206767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8216767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8226767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8236767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8246767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8256767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8266767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8276767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8286767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8296767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8306767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8316767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8326767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8336767bd61SMark Peek     _MB2,	_MB2,		_MB2,		_MB2,
8346767bd61SMark Peek 						/* 0x7f = 0 */
8356767bd61SMark Peek     _MB2,	_MB2,		_MB2,		0,
8366767bd61SMark Peek /* 0x80 = 2, 0x81 - 0xfe = 3 */
8376767bd61SMark Peek     _MB2,      _MB1|_MB2,      _MB1|_MB2,      _MB1|_MB2,
8386767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8396767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8406767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8416767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8426767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8436767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8446767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8456767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8466767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8476767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8486767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8496767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8506767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8516767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8526767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8536767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8546767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8556767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8566767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8576767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8586767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8596767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8606767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8616767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8626767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8636767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8646767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8656767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8666767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8676767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
8686767bd61SMark Peek 						/* 0xff = 0 */
8696767bd61SMark Peek     _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	0,
8706767bd61SMark Peek };
8716767bd61SMark Peek 
87229301572SMark Peek unsigned short _mbmap_utf8[256] = {
87329301572SMark Peek /* utf8 uses up to 6 bytes */
87429301572SMark Peek /* first byte        0xc0 - 0xfd */
87529301572SMark Peek /* any further bytes 0x80 - 0xbf */
87629301572SMark Peek /* 0 - 7f all 0 */
87729301572SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
87829301572SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
87929301572SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
88029301572SMark Peek     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
88129301572SMark Peek /*  80 - bf : all _MB2 */
88229301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88329301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88429301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88529301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88629301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88729301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88829301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
88929301572SMark Peek     _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
89029301572SMark Peek /* c0 - fc : all _MB1 */
89129301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89229301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89329301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89429301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89529301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89629301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89729301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
89829301572SMark Peek /*  f8    f9    fa    fb    fc    fd    fe    ff*/
89929301572SMark Peek     _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, 0,    0
90029301572SMark Peek };
901c80476e4SDavid E. O'Brien #endif /* defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE) */
902c80476e4SDavid E. O'Brien 
903c80476e4SDavid E. O'Brien #ifndef NLS
904c80476e4SDavid E. O'Brien /* _cmap_lower, _cmap_upper for ISO 8859/1 */
905c80476e4SDavid E. O'Brien 
906c80476e4SDavid E. O'Brien unsigned char _cmap_lower[256] = {
907c80476e4SDavid E. O'Brien 	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
908c80476e4SDavid E. O'Brien 	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
909c80476e4SDavid E. O'Brien 	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
910c80476e4SDavid E. O'Brien 	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
911c80476e4SDavid E. O'Brien 	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
912c80476e4SDavid E. O'Brien 	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
913c80476e4SDavid E. O'Brien 	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
914c80476e4SDavid E. O'Brien 	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
915c80476e4SDavid E. O'Brien 	0100,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
916c80476e4SDavid E. O'Brien 	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
917c80476e4SDavid E. O'Brien 	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
918c80476e4SDavid E. O'Brien 	0170,	0171,	0172,	0133,	0134,	0135,	0136,	0137,
919c80476e4SDavid E. O'Brien 	0140,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
920c80476e4SDavid E. O'Brien 	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
921c80476e4SDavid E. O'Brien 	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
922c80476e4SDavid E. O'Brien 	0170,	0171,	0172,	0173,	0174,	0175,	0176,	0177,
923c80476e4SDavid E. O'Brien 	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
924c80476e4SDavid E. O'Brien 	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
925c80476e4SDavid E. O'Brien 	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
926c80476e4SDavid E. O'Brien 	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
927c80476e4SDavid E. O'Brien 	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
928c80476e4SDavid E. O'Brien 	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
929c80476e4SDavid E. O'Brien 	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
930c80476e4SDavid E. O'Brien 	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
931c80476e4SDavid E. O'Brien 	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
932c80476e4SDavid E. O'Brien 	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
933c80476e4SDavid E. O'Brien 	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0327,
934c80476e4SDavid E. O'Brien 	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0337,
935c80476e4SDavid E. O'Brien 	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
936c80476e4SDavid E. O'Brien 	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
937c80476e4SDavid E. O'Brien 	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0367,
938c80476e4SDavid E. O'Brien 	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0377,
939c80476e4SDavid E. O'Brien };
940c80476e4SDavid E. O'Brien 
941c80476e4SDavid E. O'Brien unsigned char _cmap_upper[256] = {
942c80476e4SDavid E. O'Brien 	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
943c80476e4SDavid E. O'Brien 	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
944c80476e4SDavid E. O'Brien 	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
945c80476e4SDavid E. O'Brien 	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
946c80476e4SDavid E. O'Brien 	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
947c80476e4SDavid E. O'Brien 	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
948c80476e4SDavid E. O'Brien 	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
949c80476e4SDavid E. O'Brien 	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
950c80476e4SDavid E. O'Brien 	0100,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
951c80476e4SDavid E. O'Brien 	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
952c80476e4SDavid E. O'Brien 	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
953c80476e4SDavid E. O'Brien 	0130,	0131,	0132,	0133,	0134,	0135,	0136,	0137,
954c80476e4SDavid E. O'Brien 	0140,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
955c80476e4SDavid E. O'Brien 	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
956c80476e4SDavid E. O'Brien 	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
957c80476e4SDavid E. O'Brien 	0130,	0131,	0132,	0173,	0174,	0175,	0176,	0177,
958c80476e4SDavid E. O'Brien 	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
959c80476e4SDavid E. O'Brien 	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
960c80476e4SDavid E. O'Brien 	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
961c80476e4SDavid E. O'Brien 	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
962c80476e4SDavid E. O'Brien 	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
963c80476e4SDavid E. O'Brien 	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
964c80476e4SDavid E. O'Brien 	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
965c80476e4SDavid E. O'Brien 	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
966c80476e4SDavid E. O'Brien 	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
967c80476e4SDavid E. O'Brien 	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
968c80476e4SDavid E. O'Brien 	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0327,
969c80476e4SDavid E. O'Brien 	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0337,
970c80476e4SDavid E. O'Brien 	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
971c80476e4SDavid E. O'Brien 	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
972c80476e4SDavid E. O'Brien 	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0367,
973c80476e4SDavid E. O'Brien 	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0377,
974c80476e4SDavid E. O'Brien };
975c80476e4SDavid E. O'Brien #endif /* NLS */
976c80476e4SDavid E. O'Brien 
977c80476e4SDavid E. O'Brien #ifdef _OSD_POSIX
978c80476e4SDavid E. O'Brien /*
979c80476e4SDavid E. O'Brien 	   Initial Port for tcsh-6.07.04 by <Martin.Kraemer@Mch.SNI.De>
980c80476e4SDavid E. O'Brien 
981c80476e4SDavid E. O'Brien "BS2000 OSD" is a POSIX on a main frame.
982c80476e4SDavid E. O'Brien It is made by Siemens Nixdorf AG, Germany.
983c80476e4SDavid E. O'Brien Within the POSIX subsystem, the same character set was chosen as in
984c80476e4SDavid E. O'Brien "native BS2000", namely EBCDIC.  Yes, tcsh now runs on EBCDIC platforms, too.
985c80476e4SDavid E. O'Brien 
986c80476e4SDavid E. O'Brien EBCDIC Table. (Yes, in EBCDIC, the letters 'a'..'z' are not contiguous!)
987c80476e4SDavid E. O'Brien This table is bijective, i.e. there are no ambigous or duplicate characters
988c80476e4SDavid E. O'Brien 00    00 01 02 03 85 09 86 7f  87 8d 8e 0b 0c 0d 0e 0f  * ................ *
989c80476e4SDavid E. O'Brien 10    10 11 12 13 8f 0a 08 97  18 19 9c 9d 1c 1d 1e 1f  * ................ *
990c80476e4SDavid E. O'Brien 20    80 81 82 83 84 92 17 1b  88 89 8a 8b 8c 05 06 07  * ................ *
991c80476e4SDavid E. O'Brien 30    90 91 16 93 94 95 96 04  98 99 9a 9b 14 15 9e 1a  * ................ *
992c80476e4SDavid E. O'Brien 40    20 a0 e2 e4 e0 e1 e3 e5  e7 f1 60 2e 3c 28 2b 7c  *  .........`.<(+| *
993c80476e4SDavid E. O'Brien 50    26 e9 ea eb e8 ed ee ef  ec df 21 24 2a 29 3b 9f  * &.........!$*);. *
994c80476e4SDavid E. O'Brien 60    2d 2f c2 c4 c0 c1 c3 c5  c7 d1 5e 2c 25 5f 3e 3f  * -/........^,%_>? *
995c80476e4SDavid E. O'Brien 70    f8 c9 ca cb c8 cd ce cf  cc a8 3a 23 40 27 3d 22  * ..........:#@'=" *
996c80476e4SDavid E. O'Brien 80    d8 61 62 63 64 65 66 67  68 69 ab bb f0 fd fe b1  * .abcdefghi...... *
997c80476e4SDavid E. O'Brien 90    b0 6a 6b 6c 6d 6e 6f 70  71 72 aa ba e6 b8 c6 a4  * .jklmnopqr...... *
998c80476e4SDavid E. O'Brien a0    b5 af 73 74 75 76 77 78  79 7a a1 bf d0 dd de ae  * ..stuvwxyz...... *
999c80476e4SDavid E. O'Brien b0    a2 a3 a5 b7 a9 a7 b6 bc  bd be ac 5b 5c 5d b4 d7  * ...........[\].. *
1000c80476e4SDavid E. O'Brien c0    f9 41 42 43 44 45 46 47  48 49 ad f4 f6 f2 f3 f5  * .ABCDEFGHI...... *
1001c80476e4SDavid E. O'Brien d0    a6 4a 4b 4c 4d 4e 4f 50  51 52 b9 fb fc db fa ff  * .JKLMNOPQR...... *
1002c80476e4SDavid E. O'Brien e0    d9 f7 53 54 55 56 57 58  59 5a b2 d4 d6 d2 d3 d5  * ..STUVWXYZ...... *
1003c80476e4SDavid E. O'Brien f0    30 31 32 33 34 35 36 37  38 39 b3 7b dc 7d da 7e  * 0123456789.{.}.~ *
1004c80476e4SDavid E. O'Brien */
1005c80476e4SDavid E. O'Brien unsigned short _toascii[256] = {
1006c80476e4SDavid E. O'Brien /*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f,
1007c80476e4SDavid E. O'Brien        0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */
1008c80476e4SDavid E. O'Brien /*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97,
1009c80476e4SDavid E. O'Brien        0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */
1010c80476e4SDavid E. O'Brien /*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b,
1011c80476e4SDavid E. O'Brien        0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */
1012c80476e4SDavid E. O'Brien /*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
1013c80476e4SDavid E. O'Brien        0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */
1014c80476e4SDavid E. O'Brien /*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
1015c80476e4SDavid E. O'Brien        0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+|  */
1016c80476e4SDavid E. O'Brien /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
1017c80476e4SDavid E. O'Brien        0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /* &.........!$*);. */
1018c80476e4SDavid E. O'Brien /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
1019c80476e4SDavid E. O'Brien        0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/........^,%_>? */
1020c80476e4SDavid E. O'Brien /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
1021c80476e4SDavid E. O'Brien        0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* ..........:#@'=" */
1022c80476e4SDavid E. O'Brien /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1023c80476e4SDavid E. O'Brien        0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */
1024c80476e4SDavid E. O'Brien /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
1025c80476e4SDavid E. O'Brien        0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */
1026c80476e4SDavid E. O'Brien /*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1027c80476e4SDavid E. O'Brien        0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /* ..stuvwxyz...... */
1028c80476e4SDavid E. O'Brien /*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
1029c80476e4SDavid E. O'Brien        0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /* ...........[\].. */
1030c80476e4SDavid E. O'Brien /*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1031c80476e4SDavid E. O'Brien        0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* .ABCDEFGHI...... */
1032c80476e4SDavid E. O'Brien /*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
1033c80476e4SDavid E. O'Brien        0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /* .JKLMNOPQR...... */
1034c80476e4SDavid E. O'Brien /*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
1035c80476e4SDavid E. O'Brien        0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* ..STUVWXYZ...... */
1036c80476e4SDavid E. O'Brien /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1037c80476e4SDavid E. O'Brien        0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e  /* 0123456789.{.}.~ */
1038c80476e4SDavid E. O'Brien };
1039c80476e4SDavid E. O'Brien /* The same, for ascii-in-ebcdic
1040c80476e4SDavid E. O'Brien 00    00 01 02 03 37 2d 2e 2f  16 05 15 0b 0c 0d 0e 0f  * ................ *
1041c80476e4SDavid E. O'Brien 10    10 11 12 13 3c 3d 32 26  18 19 3f 27 1c 1d 1e 1f  * ................ *
1042c80476e4SDavid E. O'Brien 20    40 5a 7f 7b 5b 6c 50 7d  4d 5d 5c 4e 6b 60 4b 61  *  !"#$%&'()*+,-./ *
1043c80476e4SDavid E. O'Brien 30    f0 f1 f2 f3 f4 f5 f6 f7  f8 f9 7a 5e 4c 7e 6e 6f  * 0123456789:;<=>? *
1044c80476e4SDavid E. O'Brien 40    7c c1 c2 c3 c4 c5 c6 c7  c8 c9 d1 d2 d3 d4 d5 d6  * @ABCDEFGHIJKLMNO *
1045c80476e4SDavid E. O'Brien 50    d7 d8 d9 e2 e3 e4 e5 e6  e7 e8 e9 bb bc bd 6a 6d  * PQRSTUVWXYZ[\]^_ *
1046c80476e4SDavid E. O'Brien 60    4a 81 82 83 84 85 86 87  88 89 91 92 93 94 95 96  * `abcdefghijklmno *
1047c80476e4SDavid E. O'Brien 70    97 98 99 a2 a3 a4 a5 a6  a7 a8 a9 fb 4f fd ff 07  * pqrstuvwxyz{|}~. *
1048c80476e4SDavid E. O'Brien 80    20 21 22 23 24 04 06 08  28 29 2a 2b 2c 09 0a 14  * ................ *
1049c80476e4SDavid E. O'Brien 90    30 31 25 33 34 35 36 17  38 39 3a 3b 1a 1b 3e 5f  * ................ *
1050c80476e4SDavid E. O'Brien a0    41 aa b0 b1 9f b2 d0 b5  79 b4 9a 8a ba ca af a1  * ................ *
1051c80476e4SDavid E. O'Brien b0    90 8f ea fa be a0 b6 b3  9d da 9b 8b b7 b8 b9 ab  * ................ *
1052c80476e4SDavid E. O'Brien c0    64 65 62 66 63 67 9e 68  74 71 72 73 78 75 76 77  * ................ *
1053c80476e4SDavid E. O'Brien d0    ac 69 ed ee eb ef ec bf  80 e0 fe dd fc ad ae 59  * ................ *
1054c80476e4SDavid E. O'Brien e0    44 45 42 46 43 47 9c 48  54 51 52 53 58 55 56 57  * ................ *
1055c80476e4SDavid E. O'Brien f0    8c 49 cd ce cb cf cc e1  70 c0 de db dc 8d 8e df  * ................ *
1056c80476e4SDavid E. O'Brien */
1057c80476e4SDavid E. O'Brien unsigned short _toebcdic[256] = {
1058c80476e4SDavid E. O'Brien /*00*/  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
1059c80476e4SDavid E. O'Brien 	0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,  /* ................ */
1060c80476e4SDavid E. O'Brien /*10*/  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
1061c80476e4SDavid E. O'Brien 	0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,  /* ................ */
1062c80476e4SDavid E. O'Brien /*20*/  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
1063c80476e4SDavid E. O'Brien 	0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,  /*  !"#$%&'()*+,-./ */
1064c80476e4SDavid E. O'Brien /*30*/  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1065c80476e4SDavid E. O'Brien 	0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,  /* 0123456789:;<=>? */
1066c80476e4SDavid E. O'Brien /*40*/  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1067c80476e4SDavid E. O'Brien 	0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,  /* @ABCDEFGHIJKLMNO */
1068c80476e4SDavid E. O'Brien /*50*/  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
1069c80476e4SDavid E. O'Brien 	0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d,  /* PQRSTUVWXYZ[\]^_ */
1070c80476e4SDavid E. O'Brien /*60*/  0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1071c80476e4SDavid E. O'Brien 	0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,  /* `abcdefghijklmno */
1072c80476e4SDavid E. O'Brien /*70*/  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
1073c80476e4SDavid E. O'Brien 	0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07,  /* pqrstuvwxyz{|}~. */
1074c80476e4SDavid E. O'Brien /*80*/  0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08,
1075c80476e4SDavid E. O'Brien 	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14,  /* ................ */
1076c80476e4SDavid E. O'Brien /*90*/  0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17,
1077c80476e4SDavid E. O'Brien 	0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f,  /* ................ */
1078c80476e4SDavid E. O'Brien /*a0*/  0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5,
1079c80476e4SDavid E. O'Brien 	0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1,  /* ................ */
1080c80476e4SDavid E. O'Brien /*b0*/  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
1081c80476e4SDavid E. O'Brien 	0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,  /* ................ */
1082c80476e4SDavid E. O'Brien /*c0*/  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
1083c80476e4SDavid E. O'Brien 	0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,  /* ................ */
1084c80476e4SDavid E. O'Brien /*d0*/  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
1085c80476e4SDavid E. O'Brien 	0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59,  /* ................ */
1086c80476e4SDavid E. O'Brien /*e0*/  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
1087c80476e4SDavid E. O'Brien 	0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,  /* ................ */
1088c80476e4SDavid E. O'Brien /*f0*/  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
1089c80476e4SDavid E. O'Brien 	0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf   /* ................ */
1090c80476e4SDavid E. O'Brien };
1091c80476e4SDavid E. O'Brien 
1092c80476e4SDavid E. O'Brien #endif /*_OSD_POSIX*/
10933b6eaa7bSAndrey A. Chernov 
10943b6eaa7bSAndrey A. Chernov #ifdef __MVS__
10953b6eaa7bSAndrey A. Chernov /*
10963b6eaa7bSAndrey A. Chernov    The IBM 1047 coded char set to/from ISO 8859-1 mapping differs from
10973b6eaa7bSAndrey A. Chernov    the POSIX-BC mapping in several places
10983b6eaa7bSAndrey A. Chernov  */
10993b6eaa7bSAndrey A. Chernov unsigned short _toascii[256] = {
11003b6eaa7bSAndrey A. Chernov       0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
11013b6eaa7bSAndrey A. Chernov       0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
11023b6eaa7bSAndrey A. Chernov       0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
11033b6eaa7bSAndrey A. Chernov       0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
11043b6eaa7bSAndrey A. Chernov       0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
11053b6eaa7bSAndrey A. Chernov       0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
11063b6eaa7bSAndrey A. Chernov       0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
11073b6eaa7bSAndrey A. Chernov       0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
11083b6eaa7bSAndrey A. Chernov       0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
11093b6eaa7bSAndrey A. Chernov       0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
11103b6eaa7bSAndrey A. Chernov       0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
11113b6eaa7bSAndrey A. Chernov       0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
11123b6eaa7bSAndrey A. Chernov       0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
11133b6eaa7bSAndrey A. Chernov       0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
11143b6eaa7bSAndrey A. Chernov       0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
11153b6eaa7bSAndrey A. Chernov       0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
11163b6eaa7bSAndrey A. Chernov       0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
11173b6eaa7bSAndrey A. Chernov       0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
11183b6eaa7bSAndrey A. Chernov       0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
11193b6eaa7bSAndrey A. Chernov       0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
11203b6eaa7bSAndrey A. Chernov       0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
11213b6eaa7bSAndrey A. Chernov       0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae,
11223b6eaa7bSAndrey A. Chernov       0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
11233b6eaa7bSAndrey A. Chernov       0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7,
11243b6eaa7bSAndrey A. Chernov       0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
11253b6eaa7bSAndrey A. Chernov       0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
11263b6eaa7bSAndrey A. Chernov       0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
11273b6eaa7bSAndrey A. Chernov       0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff,
11283b6eaa7bSAndrey A. Chernov       0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
11293b6eaa7bSAndrey A. Chernov       0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
11303b6eaa7bSAndrey A. Chernov       0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
11313b6eaa7bSAndrey A. Chernov       0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f,
11323b6eaa7bSAndrey A. Chernov };
11333b6eaa7bSAndrey A. Chernov unsigned short _toebcdic[256] = {
11343b6eaa7bSAndrey A. Chernov       0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
11353b6eaa7bSAndrey A. Chernov       0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
11363b6eaa7bSAndrey A. Chernov       0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
11373b6eaa7bSAndrey A. Chernov       0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
11383b6eaa7bSAndrey A. Chernov       0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
11393b6eaa7bSAndrey A. Chernov       0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
11403b6eaa7bSAndrey A. Chernov       0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
11413b6eaa7bSAndrey A. Chernov       0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
11423b6eaa7bSAndrey A. Chernov       0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
11433b6eaa7bSAndrey A. Chernov       0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
11443b6eaa7bSAndrey A. Chernov       0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
11453b6eaa7bSAndrey A. Chernov       0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
11463b6eaa7bSAndrey A. Chernov       0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
11473b6eaa7bSAndrey A. Chernov       0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
11483b6eaa7bSAndrey A. Chernov       0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
11493b6eaa7bSAndrey A. Chernov       0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
11503b6eaa7bSAndrey A. Chernov       0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
11513b6eaa7bSAndrey A. Chernov       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
11523b6eaa7bSAndrey A. Chernov       0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
11533b6eaa7bSAndrey A. Chernov       0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
11543b6eaa7bSAndrey A. Chernov       0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
11553b6eaa7bSAndrey A. Chernov       0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc,
11563b6eaa7bSAndrey A. Chernov       0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
11573b6eaa7bSAndrey A. Chernov       0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
11583b6eaa7bSAndrey A. Chernov       0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
11593b6eaa7bSAndrey A. Chernov       0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
11603b6eaa7bSAndrey A. Chernov       0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
11613b6eaa7bSAndrey A. Chernov       0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59,
11623b6eaa7bSAndrey A. Chernov       0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
11633b6eaa7bSAndrey A. Chernov       0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
11643b6eaa7bSAndrey A. Chernov       0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
11653b6eaa7bSAndrey A. Chernov       0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf
11663b6eaa7bSAndrey A. Chernov };
11673b6eaa7bSAndrey A. Chernov #endif /*__MVS__*/
1168