Kernel part of bluetooth stack ported by Dmitry Komissaroff. Very much work
[dragonfly.git] / contrib / tcsh / sh.char.c
blob6fb51d1dc677d7d32285ca44c957f970ea677640
1 /* $Header: /src/pub/tcsh/sh.char.c,v 3.18 2002/07/01 20:50:21 christos Exp $ */
2 /*
3 * sh.char.c: Character classification tables
4 */
5 /*-
6 * Copyright (c) 1980, 1991 The Regents of the University of California.
7 * All rights reserved.
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
33 #include "sh.h"
35 RCSID("$Id: sh.char.c,v 3.18 2002/07/01 20:50:21 christos Exp $")
37 #include "sh.char.h"
39 #if defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE)
40 /* on default same as original map */
41 unsigned short _cmap[256] = {
42 /* 0 nul 1 soh 2 stx 3 etx */
43 _CTR, _CTR, _CTR, _CTR,
45 /* 4 eot 5 enq 6 ack 7 bel */
46 _CTR, _CTR, _CTR, _CTR,
48 /* 8 bs 9 ht 10 nl 11 vt */
49 _CTR, _CTR|_SP|_META, _CTR|_NL|_META, _CTR,
51 /* 12 np 13 cr 14 so 15 si */
52 _CTR, _CTR, _CTR, _CTR,
54 /* 16 dle 17 dc1 18 dc2 19 dc3 */
55 _CTR, _CTR, _CTR, _CTR,
57 /* 20 dc4 21 nak 22 syn 23 etb */
58 _CTR, _CTR, _CTR, _CTR,
60 /* 24 can 25 em 26 sub 27 esc */
61 _CTR, _CTR, _CTR, _CTR,
63 /* 28 fs 29 gs 30 rs 31 us */
64 _CTR, _CTR, _CTR, _CTR,
66 /* 32 sp 33 ! 34 " 35 # */
67 _SP|_META, _PUN, _QF|_PUN, _META|_PUN,
69 /* 36 $ 37 % 38 & 39 ' */
70 _DOL|_PUN, _PUN, _META|_CMD|_PUN,_QF|_PUN,
72 /* 40 ( 41 ) 42 * 43 + */
73 _META|_CMD|_PUN,_META|_PUN, _GLOB|_PUN, _PUN,
75 /* 44 , 45 - 46 . 47 / */
76 _PUN, _PUN, _PUN, _PUN,
78 /* 48 0 49 1 50 2 51 3 */
79 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
81 /* 52 4 53 5 54 6 55 7 */
82 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
84 /* 56 8 57 9 58 : 59 ; */
85 _DIG|_XD, _DIG|_XD, _PUN, _META|_CMD|_PUN,
87 /* 60 < 61 = 62 > 63 ? */
88 _META|_PUN, _PUN, _META|_PUN, _GLOB|_PUN,
90 /* 64 @ 65 A 66 B 67 C */
91 _PUN, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD,
93 /* 68 D 69 E 70 F 71 G */
94 _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP,
96 /* 72 H 73 I 74 J 75 K */
97 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
99 /* 76 L 77 M 78 N 79 O */
100 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
102 /* 80 P 81 Q 82 R 83 S */
103 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
105 /* 84 T 85 U 86 V 87 W */
106 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
108 /* 88 X 89 Y 90 Z 91 [ */
109 _LET|_UP, _LET|_UP, _LET|_UP, _GLOB|_PUN,
111 /* 92 \ 93 ] 94 ^ 95 _ */
112 _ESC|_PUN, _PUN, _PUN, _PUN,
114 /* 96 ` 97 a 98 b 99 c */
115 _QB|_GLOB|_META|_PUN, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD,
117 /* 100 d 101 e 102 f 103 g */
118 _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW,
120 /* 104 h 105 i 106 j 107 k */
121 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
123 /* 108 l 109 m 110 n 111 o */
124 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
126 /* 112 p 113 q 114 r 115 s */
127 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
129 /* 116 t 117 u 118 v 119 w */
130 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
132 /* 120 x 121 y 122 z 123 { */
133 _LET|_DOW, _LET|_DOW, _LET|_DOW, _GLOB|_PUN,
135 /* 124 | 125 } 126 ~ 127 del */
136 _META|_CMD|_PUN,_PUN, _PUN, _CTR,
138 /****************************************************************/
139 /* 128 - 255 The below is supposedly ISO 8859/1 */
140 /****************************************************************/
141 /* 128 (undef) 129 (undef) 130 (undef) 131 (undef) */
142 _CTR, _CTR, _CTR, _CTR,
144 /* 132 (undef) 133 (undef) 134 (undef) 135 (undef) */
145 _CTR, _CTR, _CTR, _CTR,
147 /* 136 (undef) 137 (undef) 138 (undef) 139 (undef) */
148 _CTR, _CTR, _CTR, _CTR,
150 /* 140 (undef) 141 (undef) 142 (undef) 143 (undef) */
151 _CTR, _CTR, _CTR, _CTR,
153 /* 144 (undef) 145 (undef) 146 (undef) 147 (undef) */
154 _CTR, _CTR, _CTR, _CTR,
156 /* 148 (undef) 149 (undef) 150 (undef) 151 (undef) */
157 _CTR, _CTR, _CTR, _CTR,
159 /* 152 (undef) 153 (undef) 154 (undef) 155 (undef) */
160 _CTR, _CTR, _CTR, _CTR,
162 /* 156 (undef) 157 (undef) 158 (undef) 159 (undef) */
163 _CTR, _CTR, _CTR, _CTR,
165 /* 160 nobreakspace 161 exclamdown 162 cent 163 sterling */
166 _PUN, /* XXX */ _PUN, _PUN, _PUN,
168 /* 164 currency 165 yen 166 brokenbar 167 section */
169 _PUN, _PUN, _PUN, _PUN,
171 /* 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft*/
172 _PUN, _PUN, _PUN, _PUN,
174 /* 172 notsign 173 hyphen 174 registered 175 macron */
175 _PUN, _PUN, _PUN, _PUN,
177 /* 176 degree 177 plusminus 178 twosuperior 179 threesuperior*/
178 _PUN, _PUN, _PUN, _PUN,
180 /* 180 acute 181 mu 182 paragraph 183 periodcentered*/
181 _PUN, _PUN, /*XXX*/ _PUN, _PUN,
183 /* 184 cedilla 185 onesuperior 186 masculine 187 guillemotright*/
184 _PUN, _PUN, _PUN, _PUN,
186 /* 188 onequarter 189 onehalf 190 threequarters 191 questiondown*/
187 _PUN, _PUN, _PUN, _PUN,
189 /* 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde */
190 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
192 /* 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla */
193 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
195 /* 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis */
196 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
198 /* 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis */
199 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
201 /* 208 ETH 209 Ntilde 210 Ograve 211 Oacute */
202 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
204 /* 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply */
205 _LET|_UP, _LET|_UP, _LET|_UP, _PUN,
207 /* 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex */
208 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
210 /* 220 Udiaeresis 221 Yacute 222 THORN 223 ssharp */
211 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_DOW,
213 /* 224 agrave 225 aacute 226 acircumflex 227 atilde */
214 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
216 /* 228 adiaeresis 229 aring 230 ae 231 ccedilla */
217 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
219 /* 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis */
220 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
222 /* 236 igrave 237 iacute 238 icircumflex 239 idiaeresis */
223 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
225 /* 240 eth 241 ntilde 242 ograve 243 oacute */
226 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
228 /* 244 ocircumflex 245 otilde 246 odiaeresis 247 division */
229 _LET|_DOW, _LET|_DOW, _LET|_DOW, _PUN,
231 /* 248 oslash 249 ugrave 250 uacute 251 ucircumflex */
232 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
234 /* 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis */
235 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
237 /* original table */
238 unsigned short _cmap_c[256] = {
239 /* 0 nul 1 soh 2 stx 3 etx */
240 _CTR, _CTR, _CTR, _CTR,
242 /* 4 eot 5 enq 6 ack 7 bel */
243 _CTR, _CTR, _CTR, _CTR,
245 /* 8 bs 9 ht 10 nl 11 vt */
246 _CTR, _CTR|_SP|_META, _CTR|_NL|_META, _CTR,
248 /* 12 np 13 cr 14 so 15 si */
249 _CTR, _CTR, _CTR, _CTR,
251 /* 16 dle 17 dc1 18 dc2 19 dc3 */
252 _CTR, _CTR, _CTR, _CTR,
254 /* 20 dc4 21 nak 22 syn 23 etb */
255 _CTR, _CTR, _CTR, _CTR,
257 /* 24 can 25 em 26 sub 27 esc */
258 _CTR, _CTR, _CTR, _CTR,
260 /* 28 fs 29 gs 30 rs 31 us */
261 _CTR, _CTR, _CTR, _CTR,
263 /* 32 sp 33 ! 34 " 35 # */
264 _SP|_META, _PUN, _QF|_PUN, _META|_PUN,
266 /* 36 $ 37 % 38 & 39 ' */
267 _DOL|_PUN, _PUN, _META|_CMD|_PUN,_QF|_PUN,
269 /* 40 ( 41 ) 42 * 43 + */
270 _META|_CMD|_PUN,_META|_PUN, _GLOB|_PUN, _PUN,
272 /* 44 , 45 - 46 . 47 / */
273 _PUN, _PUN, _PUN, _PUN,
275 /* 48 0 49 1 50 2 51 3 */
276 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
278 /* 52 4 53 5 54 6 55 7 */
279 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
281 /* 56 8 57 9 58 : 59 ; */
282 _DIG|_XD, _DIG|_XD, _PUN, _META|_CMD|_PUN,
284 /* 60 < 61 = 62 > 63 ? */
285 _META|_PUN, _PUN, _META|_PUN, _GLOB|_PUN,
287 /* 64 @ 65 A 66 B 67 C */
288 _PUN, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD,
290 /* 68 D 69 E 70 F 71 G */
291 _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP,
293 /* 72 H 73 I 74 J 75 K */
294 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
296 /* 76 L 77 M 78 N 79 O */
297 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
299 /* 80 P 81 Q 82 R 83 S */
300 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
302 /* 84 T 85 U 86 V 87 W */
303 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
305 /* 88 X 89 Y 90 Z 91 [ */
306 _LET|_UP, _LET|_UP, _LET|_UP, _GLOB|_PUN,
308 /* 92 \ 93 ] 94 ^ 95 _ */
309 _ESC|_PUN, _PUN, _PUN, _PUN,
311 /* 96 ` 97 a 98 b 99 c */
312 _QB|_GLOB|_META|_PUN, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD,
314 /* 100 d 101 e 102 f 103 g */
315 _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW,
317 /* 104 h 105 i 106 j 107 k */
318 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
320 /* 108 l 109 m 110 n 111 o */
321 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
323 /* 112 p 113 q 114 r 115 s */
324 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
326 /* 116 t 117 u 118 v 119 w */
327 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
329 /* 120 x 121 y 122 z 123 { */
330 _LET|_DOW, _LET|_DOW, _LET|_DOW, _GLOB|_PUN,
332 /* 124 | 125 } 126 ~ 127 del */
333 _META|_CMD|_PUN,_PUN, _PUN, _CTR,
335 /****************************************************************/
336 /* 128 - 255 The below is supposedly ISO 8859/1 */
337 /****************************************************************/
338 /* 128 (undef) 129 (undef) 130 (undef) 131 (undef) */
339 _CTR, _CTR, _CTR, _CTR,
341 /* 132 (undef) 133 (undef) 134 (undef) 135 (undef) */
342 _CTR, _CTR, _CTR, _CTR,
344 /* 136 (undef) 137 (undef) 138 (undef) 139 (undef) */
345 _CTR, _CTR, _CTR, _CTR,
347 /* 140 (undef) 141 (undef) 142 (undef) 143 (undef) */
348 _CTR, _CTR, _CTR, _CTR,
350 /* 144 (undef) 145 (undef) 146 (undef) 147 (undef) */
351 _CTR, _CTR, _CTR, _CTR,
353 /* 148 (undef) 149 (undef) 150 (undef) 151 (undef) */
354 _CTR, _CTR, _CTR, _CTR,
356 /* 152 (undef) 153 (undef) 154 (undef) 155 (undef) */
357 _CTR, _CTR, _CTR, _CTR,
359 /* 156 (undef) 157 (undef) 158 (undef) 159 (undef) */
360 _CTR, _CTR, _CTR, _CTR,
362 /* 160 nobreakspace 161 exclamdown 162 cent 163 sterling */
363 _PUN, /* XXX */ _PUN, _PUN, _PUN,
365 /* 164 currency 165 yen 166 brokenbar 167 section */
366 _PUN, _PUN, _PUN, _PUN,
368 /* 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft*/
369 _PUN, _PUN, _PUN, _PUN,
371 /* 172 notsign 173 hyphen 174 registered 175 macron */
372 _PUN, _PUN, _PUN, _PUN,
374 /* 176 degree 177 plusminus 178 twosuperior 179 threesuperior*/
375 _PUN, _PUN, _PUN, _PUN,
377 /* 180 acute 181 mu 182 paragraph 183 periodcentered*/
378 _PUN, _PUN, /*XXX*/ _PUN, _PUN,
380 /* 184 cedilla 185 onesuperior 186 masculine 187 guillemotright*/
381 _PUN, _PUN, _PUN, _PUN,
383 /* 188 onequarter 189 onehalf 190 threequarters 191 questiondown*/
384 _PUN, _PUN, _PUN, _PUN,
386 /* 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde */
387 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
389 /* 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla */
390 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
392 /* 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis */
393 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
395 /* 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis */
396 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
398 /* 208 ETH 209 Ntilde 210 Ograve 211 Oacute */
399 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
401 /* 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply */
402 _LET|_UP, _LET|_UP, _LET|_UP, _PUN,
404 /* 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex */
405 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
407 /* 220 Udiaeresis 221 Yacute 222 THORN 223 ssharp */
408 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_DOW,
410 /* 224 agrave 225 aacute 226 acircumflex 227 atilde */
411 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
413 /* 228 adiaeresis 229 aring 230 ae 231 ccedilla */
414 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
416 /* 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis */
417 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
419 /* 236 igrave 237 iacute 238 icircumflex 239 idiaeresis */
420 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
422 /* 240 eth 241 ntilde 242 ograve 243 oacute */
423 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
425 /* 244 ocircumflex 245 otilde 246 odiaeresis 247 division */
426 _LET|_DOW, _LET|_DOW, _LET|_DOW, _PUN,
428 /* 248 oslash 249 ugrave 250 uacute 251 ucircumflex */
429 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
431 /* 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis */
432 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
435 /* multi-byte table */
436 /* BY Masaaki Koyanagi VERY THANKS */
437 unsigned short _cmap_mbyte[256] = {
438 /* 0 nul 1 soh 2 stx 3 etx */
439 _CTR, _CTR, _CTR, _CTR,
441 /* 4 eot 5 enq 6 ack 7 bel */
442 _CTR, _CTR, _CTR, _CTR,
444 /* 8 bs 9 ht 10 nl 11 vt */
445 _CTR, _CTR|_SP|_META, _CTR|_NL|_META, _CTR,
447 /* 12 np 13 cr 14 so 15 si */
448 _CTR, _CTR, _CTR, _CTR,
450 /* 16 dle 17 dc1 18 dc2 19 dc3 */
451 _CTR, _CTR, _CTR, _CTR,
453 /* 20 dc4 21 nak 22 syn 23 etb */
454 _CTR, _CTR, _CTR, _CTR,
456 /* 24 can 25 em 26 sub 27 esc */
457 _CTR, _CTR, _CTR, _CTR,
459 /* 28 fs 29 gs 30 rs 31 us */
460 _CTR, _CTR, _CTR, _CTR,
462 /* 32 sp 33 ! 34 " 35 # */
463 _SP|_META, _PUN, _QF|_PUN, _META|_PUN,
465 /* 36 $ 37 % 38 & 39 ' */
466 _DOL|_PUN, _PUN, _META|_CMD|_PUN,_QF|_PUN,
468 /* 40 ( 41 ) 42 * 43 + */
469 _META|_CMD|_PUN,_META|_PUN, _GLOB|_PUN, _PUN,
471 /* 44 , 45 - 46 . 47 / */
472 _PUN, _PUN, _PUN, _PUN,
474 /* 48 0 49 1 50 2 51 3 */
475 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
477 /* 52 4 53 5 54 6 55 7 */
478 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
480 /* 56 8 57 9 58 : 59 ; */
481 _DIG|_XD, _DIG|_XD, _PUN, _META|_CMD|_PUN,
483 /* 60 < 61 = 62 > 63 ? */
484 _META|_PUN, _PUN, _META|_PUN, _GLOB|_PUN,
486 /* 64 @ 65 A 66 B 67 C */
487 _PUN, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD,
489 /* 68 D 69 E 70 F 71 G */
490 _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP,
492 /* 72 H 73 I 74 J 75 K */
493 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
495 /* 76 L 77 M 78 N 79 O */
496 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
498 /* 80 P 81 Q 82 R 83 S */
499 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
501 /* 84 T 85 U 86 V 87 W */
502 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
504 /* 88 X 89 Y 90 Z 91 [ */
505 _LET|_UP, _LET|_UP, _LET|_UP, _GLOB|_PUN,
507 /* 92 \ 93 ] 94 ^ 95 _ */
508 _ESC|_PUN, _PUN, _PUN, _PUN,
510 /* 96 ` 97 a 98 b 99 c */
511 _QB|_GLOB|_META|_PUN, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD,
513 /* 100 d 101 e 102 f 103 g */
514 _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW,
516 /* 104 h 105 i 106 j 107 k */
517 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
519 /* 108 l 109 m 110 n 111 o */
520 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
522 /* 112 p 113 q 114 r 115 s */
523 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
525 /* 116 t 117 u 118 v 119 w */
526 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
528 /* 120 x 121 y 122 z 123 { */
529 _LET|_DOW, _LET|_DOW, _LET|_DOW, _GLOB|_PUN,
531 /* 124 | 125 } 126 ~ 127 del */
532 _META|_CMD|_PUN,_PUN, _PUN, _CTR,
534 /****************************************************************/
535 /* 128 - 255 The below is supposedly ISO 8859/1 */
536 /****************************************************************/
537 /* 128 (undef) 129 (undef) 130 (undef) 131 (undef) */
538 _PUN, _PUN, _PUN, _PUN,
540 /* 132 (undef) 133 (undef) 134 (undef) 135 (undef) */
541 _PUN, _PUN, _PUN, _PUN,
543 /* 136 (undef) 137 (undef) 138 (undef) 139 (undef) */
544 _PUN, _PUN, _PUN, _PUN,
546 /* 140 (undef) 141 (undef) 142 (undef) 143 (undef) */
547 _PUN, _PUN, _PUN, _PUN,
549 /* 144 (undef) 145 (undef) 146 (undef) 147 (undef) */
550 _PUN, _PUN, _PUN, _PUN,
552 /* 148 (undef) 149 (undef) 150 (undef) 151 (undef) */
553 _PUN, _PUN, _PUN, _PUN,
555 /* 152 (undef) 153 (undef) 154 (undef) 155 (undef) */
556 _PUN, _PUN, _PUN, _PUN,
558 /* 156 (undef) 157 (undef) 158 (undef) 159 (undef) */
559 _PUN, _PUN, _PUN, _PUN,
561 /* 160 nobreakspace 161 exclamdown 162 cent 163 sterling */
562 _PUN, /* XXX */ _PUN, _PUN, _PUN,
564 /* 164 currency 165 yen 166 brokenbar 167 section */
565 _PUN, _PUN, _PUN, _PUN,
567 /* 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft*/
568 _PUN, _PUN, _PUN, _PUN,
570 /* 172 notsign 173 hyphen 174 registered 175 macron */
571 _PUN, _PUN, _PUN, _PUN,
573 /* 176 degree 177 plusminus 178 twosuperior 179 threesuperior*/
574 _PUN, _PUN, _PUN, _PUN,
576 /* 180 acute 181 mu 182 paragraph 183 periodcentered*/
577 _PUN, _PUN, /*XXX*/ _PUN, _PUN,
579 /* 184 cedilla 185 onesuperior 186 masculine 187 guillemotright*/
580 _PUN, _PUN, _PUN, _PUN,
582 /* 188 onequarter 189 onehalf 190 threequarters 191 questiondown*/
583 _PUN, _PUN, _PUN, _PUN,
585 /* 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde */
586 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
588 /* 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla */
589 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
591 /* 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis */
592 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
594 /* 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis */
595 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
597 /* 208 ETH 209 Ntilde 210 Ograve 211 Oacute */
598 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
600 /* 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply */
601 _LET|_UP, _LET|_UP, _LET|_UP, _PUN,
603 /* 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex */
604 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
606 /* 220 Udiaeresis 221 Yacute 222 THORN 223 ssharp */
607 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_DOW,
609 /* 224 agrave 225 aacute 226 acircumflex 227 atilde */
610 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
612 /* 228 adiaeresis 229 aring 230 ae 231 ccedilla */
613 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
615 /* 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis */
616 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
618 /* 236 igrave 237 iacute 238 icircumflex 239 idiaeresis */
619 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
621 /* 240 eth 241 ntilde 242 ograve 243 oacute */
622 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
624 /* 244 ocircumflex 245 otilde 246 odiaeresis 247 division */
625 _LET|_DOW, _LET|_DOW, _LET|_DOW, _PUN,
627 /* 248 oslash 249 ugrave 250 uacute 251 ucircumflex */
628 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
630 /* 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis */
631 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
634 short _enable_mbdisp = 0; /* control multi-byte 0...disable 1...enable */
636 /* multi-byte check table */
637 /* default = all 0 (clear process in update_vars()/unset()) */
638 unsigned short _mbmap[256];
640 unsigned short _mbmap_euc[256] = {
641 /* first byte 0x8e,0xa0 - 0xf4 */
642 /* second byte 0xa0 - 0xfe */
643 /* 0 - 7f all 0 */
644 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,
645 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,
646 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,
647 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,
648 /* 80 81 82 83 */
649 0, 0, 0, 0,
650 /* 84 85 86 87 */
651 0, 0, 0, 0,
652 /* 88 89 8a 8b */
653 0, 0, 0, 0,
654 /* 8c 8d 8e 8f */
655 0, 0, _MB1, 0,
656 /* 90 - 9f all 0 */
657 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
658 /* a0 a1 a2 a3 */
659 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
660 /* a4 a5 a6 a7 */
661 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
662 /* a8 a9 aa ab */
663 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
664 /* ac ad ae af */
665 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
666 /* b0 b1 b2 b3 */
667 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
668 /* b4 b5 b6 b7 */
669 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
670 /* b8 b9 ba bb */
671 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
672 /* bc bd be bf */
673 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
674 /* c0 c1 c2 c3 */
675 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
676 /* c4 c5 c6 c7 */
677 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
678 /* c8 c9 ca cb */
679 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
680 /* cc cd ce cf */
681 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
682 /* d0 d1 d2 d3 */
683 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
684 /* d4 d5 d6 d7 */
685 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
686 /* d8 d9 da db */
687 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
688 /* dc dd de df */
689 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
690 /* e0 e1 e2 e3 */
691 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
692 /* e4 e5 e6 e7 */
693 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
694 /* e8 e9 ea eb */
695 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
696 /* ec ed ee ef */
697 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
698 /* f0 f1 f2 f3 */
699 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
700 /* f4 f5 f6 f7 */
701 _MB1|_MB2, _MB2, _MB2, _MB2,
702 /* f8 f9 fa fb */
703 _MB2, _MB2, _MB2, _MB2,
704 /* fc fd fe ff */
705 _MB2, _MB2, _MB2, 0,
708 unsigned short _mbmap_sjis[256] = {
709 /* first byte 0x81-0x9f,0xe0 - 0xfc */
710 /* second byte 0x40-0x7e,0x80 - 0xfc */
711 /* 0 - 3f all 0 */
712 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,
713 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,
714 /* 40 41 42 43 */
715 _MB2, _MB2, _MB2, _MB2,
716 /* 44 45 46 47 */
717 _MB2, _MB2, _MB2, _MB2,
718 /* 48 49 4a 4b */
719 _MB2, _MB2, _MB2, _MB2,
720 /* 4c 4d 4e 4f */
721 _MB2, _MB2, _MB2, _MB2,
722 /* 50 51 52 53 */
723 _MB2, _MB2, _MB2, _MB2,
724 /* 54 55 56 57 */
725 _MB2, _MB2, _MB2, _MB2,
726 /* 58 59 5a 5b */
727 _MB2, _MB2, _MB2, _MB2,
728 /* 5c 5d 5e 5f */
729 _MB2, _MB2, _MB2, _MB2,
730 /* 60 61 62 63 */
731 _MB2, _MB2, _MB2, _MB2,
732 /* 64 65 66 67 */
733 _MB2, _MB2, _MB2, _MB2,
734 /* 68 69 6a 6b */
735 _MB2, _MB2, _MB2, _MB2,
736 /* 6c 6d 6e 6f */
737 _MB2, _MB2, _MB2, _MB2,
738 /* 70 71 72 73 */
739 _MB2, _MB2, _MB2, _MB2,
740 /* 74 75 76 77 */
741 _MB2, _MB2, _MB2, _MB2,
742 /* 78 79 7a 7b */
743 _MB2, _MB2, _MB2, _MB2,
744 /* 7c 7d 7e 7f */
745 _MB2, _MB2, _MB2, 0,
746 /* 80 81 82 83 */
747 _MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
748 /* 84 85 86 87 */
749 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
750 /* 88 89 8a 8b */
751 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
752 /* 8c 8d 8e 8f */
753 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
754 /* 90 91 92 93 */
755 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
756 /* 94 95 96 97 */
757 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
758 /* 98 99 9a 9b */
759 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
760 /* 9c 9d 9e 9f */
761 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
762 /* a0 a1 a2 a3 */
763 _MB2, _MB2, _MB2, _MB2,
764 /* a4 a5 a6 a7 */
765 _MB2, _MB2, _MB2, _MB2,
766 /* a8 a9 aa ab */
767 _MB2, _MB2, _MB2, _MB2,
768 /* ac ad ae af */
769 _MB2, _MB2, _MB2, _MB2,
770 /* b0 b1 b2 b3 */
771 _MB2, _MB2, _MB2, _MB2,
772 /* b4 b5 b6 b7 */
773 _MB2, _MB2, _MB2, _MB2,
774 /* b8 b9 ba bb */
775 _MB2, _MB2, _MB2, _MB2,
776 /* bc bd be bf */
777 _MB2, _MB2, _MB2, _MB2,
778 /* c0 c1 c2 c3 */
779 _MB2, _MB2, _MB2, _MB2,
780 /* c4 c5 c6 c7 */
781 _MB2, _MB2, _MB2, _MB2,
782 /* c8 c9 ca cb */
783 _MB2, _MB2, _MB2, _MB2,
784 /* cc cd ce cf */
785 _MB2, _MB2, _MB2, _MB2,
786 /* d0 d1 d2 d3 */
787 _MB2, _MB2, _MB2, _MB2,
788 /* d4 d5 d6 d7 */
789 _MB2, _MB2, _MB2, _MB2,
790 /* d8 d9 da db */
791 _MB2, _MB2, _MB2, _MB2,
792 /* dc dd de df */
793 _MB2, _MB2, _MB2, _MB2,
794 /* e0 e1 e2 e3 */
795 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
796 /* e4 e5 e6 e7 */
797 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
798 /* e8 e9 ea eb */
799 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
800 /* ec ed ee ef */
801 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
802 /* f0 f1 f2 f3 */
803 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
804 /* f4 f5 f6 f7 */
805 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
806 /* f8 f9 fa fb */
807 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
808 /* fc fd fe ff */
809 _MB1|_MB2, 0, 0, 0,
812 unsigned short _mbmap_big5[256] = {
813 /* This is latest big5 charmap, so called "Big5+" */
814 /* first byte 0x81 - 0xfe */
815 /* second byte 0x40 - 0x7e, 0x80 - 0xfe */
816 /* 0x00 - 0x3f = 0 */
817 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,
818 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,
819 /* 0x40 - 0x7e = 2 */
820 _MB2, _MB2, _MB2, _MB2,
821 _MB2, _MB2, _MB2, _MB2,
822 _MB2, _MB2, _MB2, _MB2,
823 _MB2, _MB2, _MB2, _MB2,
824 _MB2, _MB2, _MB2, _MB2,
825 _MB2, _MB2, _MB2, _MB2,
826 _MB2, _MB2, _MB2, _MB2,
827 _MB2, _MB2, _MB2, _MB2,
828 _MB2, _MB2, _MB2, _MB2,
829 _MB2, _MB2, _MB2, _MB2,
830 _MB2, _MB2, _MB2, _MB2,
831 _MB2, _MB2, _MB2, _MB2,
832 _MB2, _MB2, _MB2, _MB2,
833 _MB2, _MB2, _MB2, _MB2,
834 _MB2, _MB2, _MB2, _MB2,
835 /* 0x7f = 0 */
836 _MB2, _MB2, _MB2, 0,
837 /* 0x80 = 2, 0x81 - 0xfe = 3 */
838 _MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
839 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
840 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
841 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
842 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
843 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
844 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
845 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
846 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
847 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
848 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
849 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
850 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
851 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
852 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
853 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
854 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
855 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
856 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
857 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
858 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
859 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
860 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
861 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
862 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
863 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
864 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
865 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
866 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
867 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
868 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, _MB1|_MB2,
869 /* 0xff = 0 */
870 _MB1|_MB2, _MB1|_MB2, _MB1|_MB2, 0,
873 unsigned short _mbmap_utf8[256] = {
874 /* utf8 uses up to 6 bytes */
875 /* first byte 0xc0 - 0xfd */
876 /* any further bytes 0x80 - 0xbf */
877 /* 0 - 7f all 0 */
878 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,
879 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,
880 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,
881 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,
882 /* 80 - bf : all _MB2 */
883 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
884 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
885 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
886 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
887 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
888 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
889 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
890 _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
891 /* c0 - fc : all _MB1 */
892 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
893 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
894 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
895 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
896 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
897 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
898 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
899 /* f8 f9 fa fb fc fd fe ff*/
900 _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, 0, 0
903 #else /* !(defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE)) */
904 unsigned short _cmap[256] = {
905 /* 0 nul 1 soh 2 stx 3 etx */
906 _CTR, _CTR, _CTR, _CTR,
908 /* 4 eot 5 enq 6 ack 7 bel */
909 _CTR, _CTR, _CTR, _CTR,
911 /* 8 bs 9 ht 10 nl 11 vt */
912 _CTR, _CTR|_SP|_META, _CTR|_NL|_META, _CTR,
914 /* 12 np 13 cr 14 so 15 si */
915 _CTR, _CTR, _CTR, _CTR,
917 /* 16 dle 17 dc1 18 dc2 19 dc3 */
918 _CTR, _CTR, _CTR, _CTR,
920 /* 20 dc4 21 nak 22 syn 23 etb */
921 _CTR, _CTR, _CTR, _CTR,
923 /* 24 can 25 em 26 sub 27 esc */
924 _CTR, _CTR, _CTR, _CTR,
926 /* 28 fs 29 gs 30 rs 31 us */
927 _CTR, _CTR, _CTR, _CTR,
929 /* 32 sp 33 ! 34 " 35 # */
930 _SP|_META, _PUN, _QF|_PUN, _META|_PUN,
932 /* 36 $ 37 % 38 & 39 ' */
933 _DOL|_PUN, _PUN, _META|_CMD|_PUN,_QF|_PUN,
935 /* 40 ( 41 ) 42 * 43 + */
936 _META|_CMD|_PUN,_META|_PUN, _GLOB|_PUN, _PUN,
938 /* 44 , 45 - 46 . 47 / */
939 _PUN, _PUN, _PUN, _PUN,
941 /* 48 0 49 1 50 2 51 3 */
942 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
944 /* 52 4 53 5 54 6 55 7 */
945 _DIG|_XD, _DIG|_XD, _DIG|_XD, _DIG|_XD,
947 /* 56 8 57 9 58 : 59 ; */
948 _DIG|_XD, _DIG|_XD, _PUN, _META|_CMD|_PUN,
950 /* 60 < 61 = 62 > 63 ? */
951 _META|_PUN, _PUN, _META|_PUN, _GLOB|_PUN,
953 /* 64 @ 65 A 66 B 67 C */
954 _PUN, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD,
956 /* 68 D 69 E 70 F 71 G */
957 _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP|_XD, _LET|_UP,
959 /* 72 H 73 I 74 J 75 K */
960 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
962 /* 76 L 77 M 78 N 79 O */
963 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
965 /* 80 P 81 Q 82 R 83 S */
966 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
968 /* 84 T 85 U 86 V 87 W */
969 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
971 /* 88 X 89 Y 90 Z 91 [ */
972 _LET|_UP, _LET|_UP, _LET|_UP, _GLOB|_PUN,
974 /* 92 \ 93 ] 94 ^ 95 _ */
975 _ESC|_PUN, _PUN, _PUN, _PUN,
977 /* 96 ` 97 a 98 b 99 c */
978 _QB|_GLOB|_META|_PUN, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD,
980 /* 100 d 101 e 102 f 103 g */
981 _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW|_XD, _LET|_DOW,
983 /* 104 h 105 i 106 j 107 k */
984 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
986 /* 108 l 109 m 110 n 111 o */
987 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
989 /* 112 p 113 q 114 r 115 s */
990 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
992 /* 116 t 117 u 118 v 119 w */
993 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
995 /* 120 x 121 y 122 z 123 { */
996 _LET|_DOW, _LET|_DOW, _LET|_DOW, _GLOB|_PUN,
998 /* 124 | 125 } 126 ~ 127 del */
999 _META|_CMD|_PUN,_PUN, _PUN, _CTR,
1001 #ifdef SHORT_STRINGS
1002 /****************************************************************/
1003 /* 128 - 255 The below is supposedly ISO 8859/1 */
1004 /****************************************************************/
1005 /* 128 (undef) 129 (undef) 130 (undef) 131 (undef) */
1006 _CTR, _CTR, _CTR, _CTR,
1008 /* 132 (undef) 133 (undef) 134 (undef) 135 (undef) */
1009 _CTR, _CTR, _CTR, _CTR,
1011 /* 136 (undef) 137 (undef) 138 (undef) 139 (undef) */
1012 _CTR, _CTR, _CTR, _CTR,
1014 /* 140 (undef) 141 (undef) 142 (undef) 143 (undef) */
1015 _CTR, _CTR, _CTR, _CTR,
1017 /* 144 (undef) 145 (undef) 146 (undef) 147 (undef) */
1018 _CTR, _CTR, _CTR, _CTR,
1020 /* 148 (undef) 149 (undef) 150 (undef) 151 (undef) */
1021 _CTR, _CTR, _CTR, _CTR,
1023 /* 152 (undef) 153 (undef) 154 (undef) 155 (undef) */
1024 _CTR, _CTR, _CTR, _CTR,
1026 /* 156 (undef) 157 (undef) 158 (undef) 159 (undef) */
1027 _CTR, _CTR, _CTR, _CTR,
1029 /* 160 nobreakspace 161 exclamdown 162 cent 163 sterling */
1030 _PUN, /* XXX */ _PUN, _PUN, _PUN,
1032 /* 164 currency 165 yen 166 brokenbar 167 section */
1033 _PUN, _PUN, _PUN, _PUN,
1035 /* 168 diaeresis 169 copyright 170 ordfeminine 171 guillemotleft*/
1036 _PUN, _PUN, _PUN, _PUN,
1038 /* 172 notsign 173 hyphen 174 registered 175 macron */
1039 _PUN, _PUN, _PUN, _PUN,
1041 /* 176 degree 177 plusminus 178 twosuperior 179 threesuperior*/
1042 _PUN, _PUN, _PUN, _PUN,
1044 /* 180 acute 181 mu 182 paragraph 183 periodcentered*/
1045 _PUN, _PUN, /*XXX*/ _PUN, _PUN,
1047 /* 184 cedilla 185 onesuperior 186 masculine 187 guillemotright*/
1048 _PUN, _PUN, _PUN, _PUN,
1050 /* 188 onequarter 189 onehalf 190 threequarters 191 questiondown*/
1051 _PUN, _PUN, _PUN, _PUN,
1053 /* 192 Agrave 193 Aacute 194 Acircumflex 195 Atilde */
1054 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1056 /* 196 Adiaeresis 197 Aring 198 AE 199 Ccedilla */
1057 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1059 /* 200 Egrave 201 Eacute 202 Ecircumflex 203 Ediaeresis */
1060 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1062 /* 204 Igrave 205 Iacute 206 Icircumflex 207 Idiaeresis */
1063 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1065 /* 208 ETH 209 Ntilde 210 Ograve 211 Oacute */
1066 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1068 /* 212 Ocircumflex 213 Otilde 214 Odiaeresis 215 multiply */
1069 _LET|_UP, _LET|_UP, _LET|_UP, _PUN,
1071 /* 216 Ooblique 217 Ugrave 218 Uacute 219 Ucircumflex */
1072 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_UP,
1074 /* 220 Udiaeresis 221 Yacute 222 THORN 223 ssharp */
1075 _LET|_UP, _LET|_UP, _LET|_UP, _LET|_DOW,
1077 /* 224 agrave 225 aacute 226 acircumflex 227 atilde */
1078 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1080 /* 228 adiaeresis 229 aring 230 ae 231 ccedilla */
1081 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1083 /* 232 egrave 233 eacute 234 ecircumflex 235 ediaeresis */
1084 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1086 /* 236 igrave 237 iacute 238 icircumflex 239 idiaeresis */
1087 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1089 /* 240 eth 241 ntilde 242 ograve 243 oacute */
1090 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1092 /* 244 ocircumflex 245 otilde 246 odiaeresis 247 division */
1093 _LET|_DOW, _LET|_DOW, _LET|_DOW, _PUN,
1095 /* 248 oslash 249 ugrave 250 uacute 251 ucircumflex */
1096 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1098 /* 252 udiaeresis 253 yacute 254 thorn 255 ydiaeresis */
1099 _LET|_DOW, _LET|_DOW, _LET|_DOW, _LET|_DOW,
1100 #endif /* SHORT_STRINGS */
1102 #endif /* defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE) */
1104 #ifndef NLS
1105 /* _cmap_lower, _cmap_upper for ISO 8859/1 */
1107 unsigned char _cmap_lower[256] = {
1108 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
1109 0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
1110 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027,
1111 0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037,
1112 0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
1113 0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
1114 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
1115 0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
1116 0100, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
1117 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
1118 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
1119 0170, 0171, 0172, 0133, 0134, 0135, 0136, 0137,
1120 0140, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
1121 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157,
1122 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167,
1123 0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177,
1124 0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207,
1125 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217,
1126 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227,
1127 0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237,
1128 0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247,
1129 0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
1130 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267,
1131 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277,
1132 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347,
1133 0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357,
1134 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0327,
1135 0370, 0371, 0372, 0373, 0374, 0375, 0376, 0337,
1136 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347,
1137 0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357,
1138 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367,
1139 0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377,
1142 unsigned char _cmap_upper[256] = {
1143 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
1144 0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
1145 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027,
1146 0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037,
1147 0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
1148 0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
1149 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
1150 0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
1151 0100, 0101, 0102, 0103, 0104, 0105, 0106, 0107,
1152 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117,
1153 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127,
1154 0130, 0131, 0132, 0133, 0134, 0135, 0136, 0137,
1155 0140, 0101, 0102, 0103, 0104, 0105, 0106, 0107,
1156 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117,
1157 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127,
1158 0130, 0131, 0132, 0173, 0174, 0175, 0176, 0177,
1159 0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207,
1160 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217,
1161 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227,
1162 0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237,
1163 0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247,
1164 0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
1165 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267,
1166 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277,
1167 0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307,
1168 0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317,
1169 0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327,
1170 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337,
1171 0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307,
1172 0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317,
1173 0320, 0321, 0322, 0323, 0324, 0325, 0326, 0367,
1174 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0377,
1176 #endif /* NLS */
1178 #ifdef _OSD_POSIX
1180 Initial Port for tcsh-6.07.04 by <Martin.Kraemer@Mch.SNI.De>
1182 "BS2000 OSD" is a POSIX on a main frame.
1183 It is made by Siemens Nixdorf AG, Germany.
1184 Within the POSIX subsystem, the same character set was chosen as in
1185 "native BS2000", namely EBCDIC. Yes, tcsh now runs on EBCDIC platforms, too.
1187 EBCDIC Table. (Yes, in EBCDIC, the letters 'a'..'z' are not contiguous!)
1188 This table is bijective, i.e. there are no ambigous or duplicate characters
1189 00 00 01 02 03 85 09 86 7f 87 8d 8e 0b 0c 0d 0e 0f * ................ *
1190 10 10 11 12 13 8f 0a 08 97 18 19 9c 9d 1c 1d 1e 1f * ................ *
1191 20 80 81 82 83 84 92 17 1b 88 89 8a 8b 8c 05 06 07 * ................ *
1192 30 90 91 16 93 94 95 96 04 98 99 9a 9b 14 15 9e 1a * ................ *
1193 40 20 a0 e2 e4 e0 e1 e3 e5 e7 f1 60 2e 3c 28 2b 7c * .........`.<(+| *
1194 50 26 e9 ea eb e8 ed ee ef ec df 21 24 2a 29 3b 9f * &.........!$*);. *
1195 60 2d 2f c2 c4 c0 c1 c3 c5 c7 d1 5e 2c 25 5f 3e 3f * -/........^,%_>? *
1196 70 f8 c9 ca cb c8 cd ce cf cc a8 3a 23 40 27 3d 22 * ..........:#@'=" *
1197 80 d8 61 62 63 64 65 66 67 68 69 ab bb f0 fd fe b1 * .abcdefghi...... *
1198 90 b0 6a 6b 6c 6d 6e 6f 70 71 72 aa ba e6 b8 c6 a4 * .jklmnopqr...... *
1199 a0 b5 af 73 74 75 76 77 78 79 7a a1 bf d0 dd de ae * ..stuvwxyz...... *
1200 b0 a2 a3 a5 b7 a9 a7 b6 bc bd be ac 5b 5c 5d b4 d7 * ...........[\].. *
1201 c0 f9 41 42 43 44 45 46 47 48 49 ad f4 f6 f2 f3 f5 * .ABCDEFGHI...... *
1202 d0 a6 4a 4b 4c 4d 4e 4f 50 51 52 b9 fb fc db fa ff * .JKLMNOPQR...... *
1203 e0 d9 f7 53 54 55 56 57 58 59 5a b2 d4 d6 d2 d3 d5 * ..STUVWXYZ...... *
1204 f0 30 31 32 33 34 35 36 37 38 39 b3 7b dc 7d da 7e * 0123456789.{.}.~ *
1206 unsigned short _toascii[256] = {
1207 /*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f,
1208 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */
1209 /*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97,
1210 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */
1211 /*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b,
1212 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */
1213 /*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
1214 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */
1215 /*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
1216 0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+| */
1217 /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
1218 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /* &.........!$*);. */
1219 /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
1220 0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/........^,%_>? */
1221 /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
1222 0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* ..........:#@'=" */
1223 /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1224 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */
1225 /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
1226 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */
1227 /*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1228 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /* ..stuvwxyz...... */
1229 /*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
1230 0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /* ...........[\].. */
1231 /*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1232 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* .ABCDEFGHI...... */
1233 /*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
1234 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /* .JKLMNOPQR...... */
1235 /*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
1236 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* ..STUVWXYZ...... */
1237 /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1238 0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e /* 0123456789.{.}.~ */
1240 /* The same, for ascii-in-ebcdic
1241 00 00 01 02 03 37 2d 2e 2f 16 05 15 0b 0c 0d 0e 0f * ................ *
1242 10 10 11 12 13 3c 3d 32 26 18 19 3f 27 1c 1d 1e 1f * ................ *
1243 20 40 5a 7f 7b 5b 6c 50 7d 4d 5d 5c 4e 6b 60 4b 61 * !"#$%&'()*+,-./ *
1244 30 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 7a 5e 4c 7e 6e 6f * 0123456789:;<=>? *
1245 40 7c c1 c2 c3 c4 c5 c6 c7 c8 c9 d1 d2 d3 d4 d5 d6 * @ABCDEFGHIJKLMNO *
1246 50 d7 d8 d9 e2 e3 e4 e5 e6 e7 e8 e9 bb bc bd 6a 6d * PQRSTUVWXYZ[\]^_ *
1247 60 4a 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96 * `abcdefghijklmno *
1248 70 97 98 99 a2 a3 a4 a5 a6 a7 a8 a9 fb 4f fd ff 07 * pqrstuvwxyz{|}~. *
1249 80 20 21 22 23 24 04 06 08 28 29 2a 2b 2c 09 0a 14 * ................ *
1250 90 30 31 25 33 34 35 36 17 38 39 3a 3b 1a 1b 3e 5f * ................ *
1251 a0 41 aa b0 b1 9f b2 d0 b5 79 b4 9a 8a ba ca af a1 * ................ *
1252 b0 90 8f ea fa be a0 b6 b3 9d da 9b 8b b7 b8 b9 ab * ................ *
1253 c0 64 65 62 66 63 67 9e 68 74 71 72 73 78 75 76 77 * ................ *
1254 d0 ac 69 ed ee eb ef ec bf 80 e0 fe dd fc ad ae 59 * ................ *
1255 e0 44 45 42 46 43 47 9c 48 54 51 52 53 58 55 56 57 * ................ *
1256 f0 8c 49 cd ce cb cf cc e1 70 c0 de db dc 8d 8e df * ................ *
1258 unsigned short _toebcdic[256] = {
1259 /*00*/ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
1260 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */
1261 /*10*/ 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
1262 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */
1263 /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
1264 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */
1265 /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1266 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0123456789:;<=>? */
1267 /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1268 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* @ABCDEFGHIJKLMNO */
1269 /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
1270 0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d, /* PQRSTUVWXYZ[\]^_ */
1271 /*60*/ 0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1272 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* `abcdefghijklmno */
1273 /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
1274 0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07, /* pqrstuvwxyz{|}~. */
1275 /*80*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08,
1276 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /* ................ */
1277 /*90*/ 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17,
1278 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f, /* ................ */
1279 /*a0*/ 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5,
1280 0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1, /* ................ */
1281 /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
1282 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* ................ */
1283 /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
1284 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* ................ */
1285 /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
1286 0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59, /* ................ */
1287 /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
1288 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* ................ */
1289 /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
1290 0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /* ................ */
1293 #endif /*_OSD_POSIX*/
1295 #ifdef __MVS__
1297 The IBM 1047 coded char set to/from ISO 8859-1 mapping differs from
1298 the POSIX-BC mapping in several places
1300 unsigned short _toascii[256] = {
1301 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
1302 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1303 0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
1304 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
1305 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
1306 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
1307 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
1308 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
1309 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
1310 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
1311 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
1312 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
1313 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
1314 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
1315 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
1316 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
1317 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1318 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
1319 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
1320 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
1321 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1322 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae,
1323 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
1324 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7,
1325 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1326 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
1327 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
1328 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff,
1329 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
1330 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
1331 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1332 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f,
1334 unsigned short _toebcdic[256] = {
1335 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
1336 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1337 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
1338 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
1339 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
1340 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
1341 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1342 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
1343 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1344 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
1345 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
1346 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
1347 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1348 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
1349 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
1350 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
1351 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
1352 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
1353 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
1354 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
1355 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
1356 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc,
1357 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
1358 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
1359 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
1360 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
1361 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
1362 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59,
1363 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
1364 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
1365 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
1366 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf
1368 #endif /*__MVS__*/