sh.char.c revision 195609
1195609Smp/* $Header: /p/tcsh/cvsroot/tcsh/sh.char.c,v 3.20 2007/03/07 16:31:37 christos Exp $ */
259243Sobrien/*
359243Sobrien * sh.char.c: Character classification tables
459243Sobrien */
559243Sobrien/*-
659243Sobrien * Copyright (c) 1980, 1991 The Regents of the University of California.
759243Sobrien * All rights reserved.
859243Sobrien *
959243Sobrien * Redistribution and use in source and binary forms, with or without
1059243Sobrien * modification, are permitted provided that the following conditions
1159243Sobrien * are met:
1259243Sobrien * 1. Redistributions of source code must retain the above copyright
1359243Sobrien *    notice, this list of conditions and the following disclaimer.
1459243Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1559243Sobrien *    notice, this list of conditions and the following disclaimer in the
1659243Sobrien *    documentation and/or other materials provided with the distribution.
17100616Smp * 3. Neither the name of the University nor the names of its contributors
1859243Sobrien *    may be used to endorse or promote products derived from this software
1959243Sobrien *    without specific prior written permission.
2059243Sobrien *
2159243Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2259243Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2359243Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2459243Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2559243Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2659243Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2759243Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2859243Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2959243Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3059243Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3159243Sobrien * SUCH DAMAGE.
3259243Sobrien */
3359243Sobrien#include "sh.h"
3459243Sobrien
35195609SmpRCSID("$tcsh: sh.char.c,v 3.20 2007/03/07 16:31:37 christos Exp $")
3659243Sobrien
3759243Sobrien#include "sh.char.h"
3859243Sobrien
3959243Sobrien/* on default same as original map */
4059243Sobrienunsigned short _cmap[256] = {
4159243Sobrien/*	  0 nul		  1 soh		  2 stx		  3 etx	*/
4259243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
4359243Sobrien
4459243Sobrien/*	  4 eot		  5 enq		  6 ack		  7 bel	*/
4559243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
4659243Sobrien
4759243Sobrien/*	  8 bs		  9 ht		 10 nl		 11 vt	*/
4859243Sobrien	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
4959243Sobrien
5059243Sobrien/*	 12 np		 13 cr		 14 so		 15 si	*/
5159243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
5259243Sobrien
5359243Sobrien/*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
5459243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
5559243Sobrien
5659243Sobrien/*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
5759243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
5859243Sobrien
5959243Sobrien/*	 24 can		 25 em		 26 sub		 27 esc	*/
6059243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
6159243Sobrien
6259243Sobrien/*	 28 fs		 29 gs		 30 rs		 31 us	*/
6359243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
6459243Sobrien
6559243Sobrien/*	 32 sp		 33 !		 34 "		 35 #	*/
6659243Sobrien	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
6759243Sobrien
6859243Sobrien/*	 36 $		 37 %		 38 &		 39 '	*/
6959243Sobrien	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
7059243Sobrien
7159243Sobrien/*	 40 (		 41 )		 42 *		 43 +	*/
7259243Sobrien	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
7359243Sobrien
7459243Sobrien/*	 44 ,		 45 -		 46 .		 47 /	*/
7559243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
7659243Sobrien
7759243Sobrien/*	 48 0		 49 1		 50 2		 51 3	*/
7859243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
7959243Sobrien
8059243Sobrien/*	 52 4		 53 5		 54 6		 55 7	*/
8159243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
8259243Sobrien
8359243Sobrien/*	 56 8		 57 9		 58 :		 59 ;	*/
8459243Sobrien	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
8559243Sobrien
8659243Sobrien/*	 60 <		 61 =		 62 >		 63 ?	*/
8759243Sobrien	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
8859243Sobrien
8959243Sobrien/*	 64 @		 65 A		 66 B		 67 C	*/
9059243Sobrien	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
9159243Sobrien
9259243Sobrien/*	 68 D		 69 E		 70 F		 71 G	*/
9359243Sobrien	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
9459243Sobrien
9559243Sobrien/*	 72 H		 73 I		 74 J		 75 K	*/
9659243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
9759243Sobrien
9859243Sobrien/*	 76 L		 77 M		 78 N		 79 O	*/
9959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
10059243Sobrien
10159243Sobrien/*	 80 P		 81 Q		 82 R		 83 S	*/
10259243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
10359243Sobrien
10459243Sobrien/*	 84 T		 85 U		 86 V		 87 W	*/
10559243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
10659243Sobrien
10759243Sobrien/*	 88 X		 89 Y		 90 Z		 91 [	*/
10859243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
10959243Sobrien
11059243Sobrien/*	 92 \		 93 ]		 94 ^		 95 _	*/
11159243Sobrien	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
11259243Sobrien
11359243Sobrien/*	 96 `		 97 a		 98 b		 99 c	*/
11459243Sobrien  _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
11559243Sobrien
11659243Sobrien/*	100 d		101 e		102 f		103 g	*/
11759243Sobrien	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
11859243Sobrien
11959243Sobrien/*	104 h		105 i		106 j		107 k	*/
12059243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
12159243Sobrien
12259243Sobrien/*	108 l		109 m		110 n		111 o	*/
12359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
12459243Sobrien
12559243Sobrien/*	112 p		113 q		114 r		115 s	*/
12659243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
12759243Sobrien
12859243Sobrien/*	116 t		117 u		118 v		119 w	*/
12959243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
13059243Sobrien
13159243Sobrien/*	120 x		121 y		122 z		123 {	*/
13259243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
13359243Sobrien
13459243Sobrien/*	124 |		125 }		126 ~		127 del	*/
13559243Sobrien	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
13659243Sobrien
137195609Smp#ifdef SHORT_STRINGS
13859243Sobrien/****************************************************************/
13959243Sobrien/* 128 - 255 The below is supposedly ISO 8859/1			*/
14059243Sobrien/****************************************************************/
14159243Sobrien/*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
14259243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
14359243Sobrien
14459243Sobrien/*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
14559243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
14659243Sobrien
14759243Sobrien/*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
14859243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
14959243Sobrien
15059243Sobrien/*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
15159243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
15259243Sobrien
15359243Sobrien/*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
15459243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
15559243Sobrien
15659243Sobrien/*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
15759243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
15859243Sobrien
15959243Sobrien/*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
16059243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
16159243Sobrien
16259243Sobrien/*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
16359243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
16459243Sobrien
16559243Sobrien/*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
16659243Sobrien	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
16759243Sobrien
16859243Sobrien/*	164 currency	165 yen		166 brokenbar	167 section	*/
16959243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
17059243Sobrien
17159243Sobrien/*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
17259243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
17359243Sobrien
17459243Sobrien/*	172 notsign	173 hyphen	174 registered	175 macron	*/
17559243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
17659243Sobrien
17759243Sobrien/*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
17859243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
17959243Sobrien
18059243Sobrien/*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
18159243Sobrien	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
18259243Sobrien
18359243Sobrien/*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
18459243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
18559243Sobrien
18659243Sobrien/*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
18759243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
18859243Sobrien
18959243Sobrien/*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
19059243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
19159243Sobrien
19259243Sobrien/*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
19359243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
19459243Sobrien
19559243Sobrien/*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
19659243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
19759243Sobrien
19859243Sobrien/*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
19959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
20059243Sobrien
20159243Sobrien/*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
20259243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
20359243Sobrien
20459243Sobrien/*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
20559243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
20659243Sobrien
20759243Sobrien/*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
20859243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
20959243Sobrien
21059243Sobrien/*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
21159243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
21259243Sobrien
21359243Sobrien/*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
21459243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
21559243Sobrien
21659243Sobrien/*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
21759243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
21859243Sobrien
21959243Sobrien/*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
22059243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
22159243Sobrien
22259243Sobrien/*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
22359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
22459243Sobrien
22559243Sobrien/*	240 eth		241 ntilde	242 ograve	243 oacute	*/
22659243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
22759243Sobrien
22859243Sobrien/*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
22959243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
23059243Sobrien
23159243Sobrien/*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
23259243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
23359243Sobrien
23459243Sobrien/*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
23559243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
23659243Sobrien};
237195609Smp#endif /* SHORT_STRINGS */
238195609Smp
239195609Smp#if defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE)
24059243Sobrien/* original table */
24159243Sobrienunsigned short _cmap_c[256] = {
24259243Sobrien/*	  0 nul		  1 soh		  2 stx		  3 etx	*/
24359243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
24459243Sobrien
24559243Sobrien/*	  4 eot		  5 enq		  6 ack		  7 bel	*/
24659243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
24759243Sobrien
24859243Sobrien/*	  8 bs		  9 ht		 10 nl		 11 vt	*/
24959243Sobrien	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
25059243Sobrien
25159243Sobrien/*	 12 np		 13 cr		 14 so		 15 si	*/
25259243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
25359243Sobrien
25459243Sobrien/*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
25559243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
25659243Sobrien
25759243Sobrien/*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
25859243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
25959243Sobrien
26059243Sobrien/*	 24 can		 25 em		 26 sub		 27 esc	*/
26159243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
26259243Sobrien
26359243Sobrien/*	 28 fs		 29 gs		 30 rs		 31 us	*/
26459243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
26559243Sobrien
26659243Sobrien/*	 32 sp		 33 !		 34 "		 35 #	*/
26759243Sobrien	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
26859243Sobrien
26959243Sobrien/*	 36 $		 37 %		 38 &		 39 '	*/
27059243Sobrien	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
27159243Sobrien
27259243Sobrien/*	 40 (		 41 )		 42 *		 43 +	*/
27359243Sobrien	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
27459243Sobrien
27559243Sobrien/*	 44 ,		 45 -		 46 .		 47 /	*/
27659243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
27759243Sobrien
27859243Sobrien/*	 48 0		 49 1		 50 2		 51 3	*/
27959243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
28059243Sobrien
28159243Sobrien/*	 52 4		 53 5		 54 6		 55 7	*/
28259243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
28359243Sobrien
28459243Sobrien/*	 56 8		 57 9		 58 :		 59 ;	*/
28559243Sobrien	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
28659243Sobrien
28759243Sobrien/*	 60 <		 61 =		 62 >		 63 ?	*/
28859243Sobrien	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
28959243Sobrien
29059243Sobrien/*	 64 @		 65 A		 66 B		 67 C	*/
29159243Sobrien	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
29259243Sobrien
29359243Sobrien/*	 68 D		 69 E		 70 F		 71 G	*/
29459243Sobrien	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
29559243Sobrien
29659243Sobrien/*	 72 H		 73 I		 74 J		 75 K	*/
29759243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
29859243Sobrien
29959243Sobrien/*	 76 L		 77 M		 78 N		 79 O	*/
30059243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
30159243Sobrien
30259243Sobrien/*	 80 P		 81 Q		 82 R		 83 S	*/
30359243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
30459243Sobrien
30559243Sobrien/*	 84 T		 85 U		 86 V		 87 W	*/
30659243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
30759243Sobrien
30859243Sobrien/*	 88 X		 89 Y		 90 Z		 91 [	*/
30959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
31059243Sobrien
31159243Sobrien/*	 92 \		 93 ]		 94 ^		 95 _	*/
31259243Sobrien	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
31359243Sobrien
31459243Sobrien/*	 96 `		 97 a		 98 b		 99 c	*/
31559243Sobrien  _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
31659243Sobrien
31759243Sobrien/*	100 d		101 e		102 f		103 g	*/
31859243Sobrien	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
31959243Sobrien
32059243Sobrien/*	104 h		105 i		106 j		107 k	*/
32159243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
32259243Sobrien
32359243Sobrien/*	108 l		109 m		110 n		111 o	*/
32459243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
32559243Sobrien
32659243Sobrien/*	112 p		113 q		114 r		115 s	*/
32759243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
32859243Sobrien
32959243Sobrien/*	116 t		117 u		118 v		119 w	*/
33059243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
33159243Sobrien
33259243Sobrien/*	120 x		121 y		122 z		123 {	*/
33359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
33459243Sobrien
33559243Sobrien/*	124 |		125 }		126 ~		127 del	*/
33659243Sobrien	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
33759243Sobrien
33859243Sobrien/****************************************************************/
33959243Sobrien/* 128 - 255 The below is supposedly ISO 8859/1			*/
34059243Sobrien/****************************************************************/
34159243Sobrien/*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
34259243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
34359243Sobrien
34459243Sobrien/*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
34559243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
34659243Sobrien
34759243Sobrien/*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
34859243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
34959243Sobrien
35059243Sobrien/*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
35159243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
35259243Sobrien
35359243Sobrien/*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
35459243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
35559243Sobrien
35659243Sobrien/*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
35759243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
35859243Sobrien
35959243Sobrien/*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
36059243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
36159243Sobrien
36259243Sobrien/*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
36359243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
36459243Sobrien
36559243Sobrien/*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
36659243Sobrien	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
36759243Sobrien
36859243Sobrien/*	164 currency	165 yen		166 brokenbar	167 section	*/
36959243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
37059243Sobrien
37159243Sobrien/*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
37259243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
37359243Sobrien
37459243Sobrien/*	172 notsign	173 hyphen	174 registered	175 macron	*/
37559243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
37659243Sobrien
37759243Sobrien/*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
37859243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
37959243Sobrien
38059243Sobrien/*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
38159243Sobrien	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
38259243Sobrien
38359243Sobrien/*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
38459243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
38559243Sobrien
38659243Sobrien/*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
38759243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
38859243Sobrien
38959243Sobrien/*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
39059243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
39159243Sobrien
39259243Sobrien/*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
39359243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
39459243Sobrien
39559243Sobrien/*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
39659243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
39759243Sobrien
39859243Sobrien/*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
39959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
40059243Sobrien
40159243Sobrien/*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
40259243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
40359243Sobrien
40459243Sobrien/*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
40559243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
40659243Sobrien
40759243Sobrien/*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
40859243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
40959243Sobrien
41059243Sobrien/*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
41159243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
41259243Sobrien
41359243Sobrien/*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
41459243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
41559243Sobrien
41659243Sobrien/*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
41759243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
41859243Sobrien
41959243Sobrien/*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
42059243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
42159243Sobrien
42259243Sobrien/*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
42359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
42459243Sobrien
42559243Sobrien/*	240 eth		241 ntilde	242 ograve	243 oacute	*/
42659243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
42759243Sobrien
42859243Sobrien/*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
42959243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
43059243Sobrien
43159243Sobrien/*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
43259243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
43359243Sobrien
43459243Sobrien/*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
43559243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
43659243Sobrien};
43759243Sobrien
43859243Sobrien/* multi-byte table */
43959243Sobrien/* BY Masaaki Koyanagi VERY THANKS */
44059243Sobrienunsigned short _cmap_mbyte[256] = {
44159243Sobrien/*	  0 nul		  1 soh		  2 stx		  3 etx	*/
44259243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
44359243Sobrien
44459243Sobrien/*	  4 eot		  5 enq		  6 ack		  7 bel	*/
44559243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
44659243Sobrien
44759243Sobrien/*	  8 bs		  9 ht		 10 nl		 11 vt	*/
44859243Sobrien	_CTR,		_CTR|_SP|_META,	_CTR|_NL|_META,	_CTR,
44959243Sobrien
45059243Sobrien/*	 12 np		 13 cr		 14 so		 15 si	*/
45159243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
45259243Sobrien
45359243Sobrien/*	 16 dle		 17 dc1		 18 dc2		 19 dc3	*/
45459243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
45559243Sobrien
45659243Sobrien/*	 20 dc4		 21 nak		 22 syn		 23 etb	*/
45759243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
45859243Sobrien
45959243Sobrien/*	 24 can		 25 em		 26 sub		 27 esc	*/
46059243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
46159243Sobrien
46259243Sobrien/*	 28 fs		 29 gs		 30 rs		 31 us	*/
46359243Sobrien	_CTR,		_CTR,		_CTR,		_CTR,
46459243Sobrien
46559243Sobrien/*	 32 sp		 33 !		 34 "		 35 #	*/
46659243Sobrien	_SP|_META,	_PUN,		_QF|_PUN,	_META|_PUN,
46759243Sobrien
46859243Sobrien/*	 36 $		 37 %		 38 &		 39 '	*/
46959243Sobrien	_DOL|_PUN,	_PUN,		_META|_CMD|_PUN,_QF|_PUN,
47059243Sobrien
47159243Sobrien/*	 40 (		 41 )		 42 *		 43 +	*/
47259243Sobrien	_META|_CMD|_PUN,_META|_PUN,	_GLOB|_PUN,	_PUN,
47359243Sobrien
47459243Sobrien/*	 44 ,		 45 -		 46 .		 47 /	*/
47559243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
47659243Sobrien
47759243Sobrien/*	 48 0		 49 1		 50 2		 51 3	*/
47859243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
47959243Sobrien
48059243Sobrien/*	 52 4		 53 5		 54 6		 55 7	*/
48159243Sobrien	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,	_DIG|_XD,
48259243Sobrien
48359243Sobrien/*	 56 8		 57 9		 58 :		 59 ;	*/
48459243Sobrien	_DIG|_XD,	_DIG|_XD,	_PUN,		_META|_CMD|_PUN,
48559243Sobrien
48659243Sobrien/*	 60 <		 61 =		 62 >		 63 ?	*/
48759243Sobrien	_META|_PUN,	_PUN,		_META|_PUN,	_GLOB|_PUN,
48859243Sobrien
48959243Sobrien/*	 64 @		 65 A		 66 B		 67 C	*/
49059243Sobrien	_PUN,		_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,
49159243Sobrien
49259243Sobrien/*	 68 D		 69 E		 70 F		 71 G	*/
49359243Sobrien	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP|_XD,	_LET|_UP,
49459243Sobrien
49559243Sobrien/*	 72 H		 73 I		 74 J		 75 K	*/
49659243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
49759243Sobrien
49859243Sobrien/*	 76 L		 77 M		 78 N		 79 O	*/
49959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
50059243Sobrien
50159243Sobrien/*	 80 P		 81 Q		 82 R		 83 S	*/
50259243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
50359243Sobrien
50459243Sobrien/*	 84 T		 85 U		 86 V		 87 W	*/
50559243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
50659243Sobrien
50759243Sobrien/*	 88 X		 89 Y		 90 Z		 91 [	*/
50859243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_GLOB|_PUN,
50959243Sobrien
51059243Sobrien/*	 92 \		 93 ]		 94 ^		 95 _	*/
51159243Sobrien	_ESC|_PUN,	_PUN,		_PUN,		_PUN,
51259243Sobrien
51359243Sobrien/*	 96 `		 97 a		 98 b		 99 c	*/
51459243Sobrien  _QB|_GLOB|_META|_PUN,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,
51559243Sobrien
51659243Sobrien/*	100 d		101 e		102 f		103 g	*/
51759243Sobrien	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW|_XD,	_LET|_DOW,
51859243Sobrien
51959243Sobrien/*	104 h		105 i		106 j		107 k	*/
52059243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
52159243Sobrien
52259243Sobrien/*	108 l		109 m		110 n		111 o	*/
52359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
52459243Sobrien
52559243Sobrien/*	112 p		113 q		114 r		115 s	*/
52659243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
52759243Sobrien
52859243Sobrien/*	116 t		117 u		118 v		119 w	*/
52959243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
53059243Sobrien
53159243Sobrien/*	120 x		121 y		122 z		123 {	*/
53259243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_GLOB|_PUN,
53359243Sobrien
53459243Sobrien/*	124 |		125 }		126 ~		127 del	*/
53559243Sobrien	_META|_CMD|_PUN,_PUN,		_PUN,		_CTR,
53659243Sobrien
53759243Sobrien/****************************************************************/
53859243Sobrien/* 128 - 255 The below is supposedly ISO 8859/1			*/
53959243Sobrien/****************************************************************/
54059243Sobrien/*	128 (undef)	129 (undef)	130 (undef)	131 (undef)	*/
54159243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
54259243Sobrien
54359243Sobrien/*	132 (undef)	133 (undef)	134 (undef)	135 (undef)	*/
54459243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
54559243Sobrien
54659243Sobrien/*	136 (undef)	137 (undef)	138 (undef)	139 (undef)	*/
54759243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
54859243Sobrien
54959243Sobrien/*	140 (undef)	141 (undef)	142 (undef)	143 (undef)	*/
55059243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
55159243Sobrien
55259243Sobrien/*	144 (undef)	145 (undef)	146 (undef)	147 (undef)	*/
55359243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
55459243Sobrien
55559243Sobrien/*	148 (undef)	149 (undef)	150 (undef)	151 (undef)	*/
55659243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
55759243Sobrien
55859243Sobrien/*	152 (undef)	153 (undef)	154 (undef)	155 (undef)	*/
55959243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
56059243Sobrien
56159243Sobrien/*	156 (undef)	157 (undef)	158 (undef)	159 (undef)	*/
56259243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
56359243Sobrien
56459243Sobrien/*	160 nobreakspace 161 exclamdown	162 cent	163 sterling	*/
56559243Sobrien	_PUN, /* XXX */	_PUN,		_PUN,		_PUN,
56659243Sobrien
56759243Sobrien/*	164 currency	165 yen		166 brokenbar	167 section	*/
56859243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
56959243Sobrien
57059243Sobrien/*	168 diaeresis	169 copyright	170 ordfeminine	171 guillemotleft*/
57159243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
57259243Sobrien
57359243Sobrien/*	172 notsign	173 hyphen	174 registered	175 macron	*/
57459243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
57559243Sobrien
57659243Sobrien/*	176 degree	177 plusminus	178 twosuperior	179 threesuperior*/
57759243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
57859243Sobrien
57959243Sobrien/*	180 acute	181 mu 		182 paragraph	183 periodcentered*/
58059243Sobrien	_PUN,		_PUN, /*XXX*/	_PUN,		_PUN,
58159243Sobrien
58259243Sobrien/*	184 cedilla	185 onesuperior	186 masculine	187 guillemotright*/
58359243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
58459243Sobrien
58559243Sobrien/*	188 onequarter	189 onehalf	190 threequarters 191 questiondown*/
58659243Sobrien	_PUN,		_PUN,		_PUN,		_PUN,
58759243Sobrien
58859243Sobrien/*	192 Agrave	193 Aacute	194 Acircumflex	195 Atilde	*/
58959243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
59059243Sobrien
59159243Sobrien/*	196 Adiaeresis	197 Aring	198 AE		199 Ccedilla	*/
59259243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
59359243Sobrien
59459243Sobrien/*	200 Egrave	201 Eacute	202 Ecircumflex	203 Ediaeresis	*/
59559243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
59659243Sobrien
59759243Sobrien/*	204 Igrave	205 Iacute	206 Icircumflex	207 Idiaeresis	*/
59859243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
59959243Sobrien
60059243Sobrien/*	208 ETH		209 Ntilde	210 Ograve	211 Oacute	*/
60159243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
60259243Sobrien
60359243Sobrien/*	212 Ocircumflex	213 Otilde	214 Odiaeresis	215 multiply	*/
60459243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_PUN,
60559243Sobrien
60659243Sobrien/*	216 Ooblique	217 Ugrave	218 Uacute	219 Ucircumflex	*/
60759243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_UP,
60859243Sobrien
60959243Sobrien/*	220 Udiaeresis	221 Yacute	222 THORN	223 ssharp	*/
61059243Sobrien	_LET|_UP,	_LET|_UP,	_LET|_UP,	_LET|_DOW,
61159243Sobrien
61259243Sobrien/*	224 agrave	225 aacute	226 acircumflex	227 atilde	*/
61359243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
61459243Sobrien
61559243Sobrien/*	228 adiaeresis	229 aring	230 ae		231 ccedilla	*/
61659243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
61759243Sobrien
61859243Sobrien/*	232 egrave	233 eacute	234 ecircumflex	235 ediaeresis	*/
61959243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
62059243Sobrien
62159243Sobrien/*	236 igrave	237 iacute	238 icircumflex	239 idiaeresis	*/
62259243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
62359243Sobrien
62459243Sobrien/*	240 eth		241 ntilde	242 ograve	243 oacute	*/
62559243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
62659243Sobrien
62759243Sobrien/*	244 ocircumflex	245 otilde	246 odiaeresis	247 division	*/
62859243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_PUN,
62959243Sobrien
63059243Sobrien/*	248 oslash	249 ugrave	250 uacute	251 ucircumflex	*/
63159243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
63259243Sobrien
63359243Sobrien/*	252 udiaeresis	253 yacute	254 thorn	255 ydiaeresis	*/
63459243Sobrien	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,	_LET|_DOW,
63559243Sobrien};
63659243Sobrien
63759243Sobrienshort _enable_mbdisp = 0; /* control multi-byte 0...disable 1...enable */
63859243Sobrien
63959243Sobrien/* multi-byte check table */
64059243Sobrien/* default = all 0 (clear process in update_vars()/unset()) */
64159243Sobrienunsigned short _mbmap[256];
64259243Sobrien
64359243Sobrienunsigned short _mbmap_euc[256] = {
64459243Sobrien/* first byte	0x8e,0xa0 - 0xf4 */
64559243Sobrien/* second byte 	0xa0 - 0xfe */
64659243Sobrien/* 0 - 7f all 0 */
64759243Sobrien    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,
64859243Sobrien    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,
64959243Sobrien    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,
65059243Sobrien    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,
65159243Sobrien/*  80		81		82		83 */
65259243Sobrien    0,		0,		0,		0,
65359243Sobrien/*  84		85		86		87 */
65459243Sobrien    0,		0,		0,		0,
65559243Sobrien/*  88		89		8a		8b */
65659243Sobrien    0,		0,		0,		0,
65759243Sobrien/*  8c		8d		8e		8f */
65859243Sobrien    0,		0,		_MB1,		0,
65959243Sobrien/* 90 - 9f all 0 */
66059243Sobrien    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
66159243Sobrien/*  a0		a1		a2		a3 */
66259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
66359243Sobrien/*  a4		a5		a6		a7 */
66459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
66559243Sobrien/*  a8		a9		aa		ab */
66659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
66759243Sobrien/*  ac		ad		ae		af */
66859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
66959243Sobrien/*  b0		b1		b2		b3 */
67059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
67159243Sobrien/*  b4		b5		b6		b7 */
67259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
67359243Sobrien/*  b8		b9		ba		bb */
67459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
67559243Sobrien/*  bc		bd		be		bf */
67659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
67759243Sobrien/*  c0		c1		c2		c3 */
67859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
67959243Sobrien/*  c4		c5		c6		c7 */
68059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
68159243Sobrien/*  c8		c9		ca		cb */
68259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
68359243Sobrien/*  cc		cd		ce		cf */
68459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
68559243Sobrien/*  d0		d1		d2		d3 */
68659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
68759243Sobrien/*  d4		d5		d6		d7 */
68859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
68959243Sobrien/*  d8		d9		da		db */
69059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
69159243Sobrien/*  dc		dd		de		df */
69259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
69359243Sobrien/*  e0		e1		e2		e3 */
69459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
69559243Sobrien/*  e4		e5		e6		e7 */
69659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
69759243Sobrien/*  e8		e9		ea		eb */
69859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
69959243Sobrien/*  ec		ed		ee		ef */
70059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
70159243Sobrien/*  f0		f1		f2		f3 */
70259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
70359243Sobrien/*  f4		f5		f6		f7 */
70459243Sobrien    _MB1|_MB2,	_MB2,		_MB2,		_MB2,
70559243Sobrien/*  f8		f9		fa		fb */
70659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
70759243Sobrien/*  fc		fd		fe		ff */
70859243Sobrien    _MB2,	_MB2,		_MB2,		0,
70959243Sobrien};
71059243Sobrien
71159243Sobrienunsigned short _mbmap_sjis[256] = {
71259243Sobrien/* first byte	0x81-0x9f,0xe0 - 0xfc */
71359243Sobrien/* second byte 	0x40-0x7e,0x80 - 0xfc */
71459243Sobrien/* 0 - 3f all 0 */
71559243Sobrien    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,
71659243Sobrien    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,
71759243Sobrien/*  40		41		42		43 */
71859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
71959243Sobrien/*  44		45		46		47 */
72059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
72159243Sobrien/*  48		49		4a		4b */
72259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
72359243Sobrien/*  4c		4d		4e		4f */
72459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
72559243Sobrien/*  50		51		52		53 */
72659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
72759243Sobrien/*  54		55		56		57 */
72859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
72959243Sobrien/*  58		59		5a		5b */
73059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
73159243Sobrien/*  5c		5d		5e		5f */
73259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
73359243Sobrien/*  60		61		62		63 */
73459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
73559243Sobrien/*  64		65		66		67 */
73659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
73759243Sobrien/*  68		69		6a		6b */
73859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
73959243Sobrien/*  6c		6d		6e		6f */
74059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
74159243Sobrien/*  70		71		72		73 */
74259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
74359243Sobrien/*  74		75		76		77 */
74459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
74559243Sobrien/*  78		79		7a		7b */
74659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
74759243Sobrien/*  7c		7d		7e		7f */
74859243Sobrien    _MB2,	_MB2,		_MB2,		0,
74959243Sobrien/*  80		81		82		83 */
75059243Sobrien    _MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
75159243Sobrien/*  84		85		86		87 */
75259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
75359243Sobrien/*  88		89		8a		8b */
75459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
75559243Sobrien/*  8c		8d		8e		8f */
75659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
75759243Sobrien/*  90		91		92		93 */
75859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
75959243Sobrien/*  94		95		96		97 */
76059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
76159243Sobrien/*  98		99		9a		9b */
76259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
76359243Sobrien/*  9c		9d		9e		9f */
76459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
76559243Sobrien/*  a0		a1		a2		a3 */
76659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
76759243Sobrien/*  a4		a5		a6		a7 */
76859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
76959243Sobrien/*  a8		a9		aa		ab */
77059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
77159243Sobrien/*  ac		ad		ae		af */
77259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
77359243Sobrien/*  b0		b1		b2		b3 */
77459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
77559243Sobrien/*  b4		b5		b6		b7 */
77659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
77759243Sobrien/*  b8		b9		ba		bb */
77859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
77959243Sobrien/*  bc		bd		be		bf */
78059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
78159243Sobrien/*  c0		c1		c2		c3 */
78259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
78359243Sobrien/*  c4		c5		c6		c7 */
78459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
78559243Sobrien/*  c8		c9		ca		cb */
78659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
78759243Sobrien/*  cc		cd		ce		cf */
78859243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
78959243Sobrien/*  d0		d1		d2		d3 */
79059243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
79159243Sobrien/*  d4		d5		d6		d7 */
79259243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
79359243Sobrien/*  d8		d9		da		db */
79459243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
79559243Sobrien/*  dc		dd		de		df */
79659243Sobrien    _MB2,	_MB2,		_MB2,		_MB2,
79759243Sobrien/*  e0		e1		e2		e3 */
79859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
79959243Sobrien/*  e4		e5		e6		e7 */
80059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
80159243Sobrien/*  e8		e9		ea		eb */
80259243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
80359243Sobrien/*  ec		ed		ee		ef */
80459243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
80559243Sobrien/*  f0		f1		f2		f3 */
80659243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
80759243Sobrien/*  f4		f5		f6		f7 */
80859243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
80959243Sobrien/*  f8		f9		fa		fb */
81059243Sobrien    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
81159243Sobrien/*  fc		fd		fe		ff */
81259243Sobrien    _MB1|_MB2,	0,		0,		0,
81359243Sobrien};
81459243Sobrien
81583098Smpunsigned short _mbmap_big5[256] = {
81683098Smp/* This is latest big5 charmap, so called "Big5+" */
81783098Smp/* first byte   0x81 - 0xfe */
81883098Smp/* second byte  0x40 - 0x7e, 0x80 - 0xfe */
81983098Smp/* 0x00 - 0x3f = 0 */
82083098Smp    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,
82183098Smp    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,
82283098Smp/* 0x40 - 0x7e = 2 */
82383098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82483098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82583098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82683098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82783098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82883098Smp    _MB2,	_MB2,		_MB2,		_MB2,
82983098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83083098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83183098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83283098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83383098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83483098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83583098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83683098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83783098Smp    _MB2,	_MB2,		_MB2,		_MB2,
83883098Smp						/* 0x7f = 0 */
83983098Smp    _MB2,	_MB2,		_MB2,		0,
84083098Smp/* 0x80 = 2, 0x81 - 0xfe = 3 */
84183098Smp    _MB2,      _MB1|_MB2,      _MB1|_MB2,      _MB1|_MB2,
84283098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84383098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84483098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84583098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84683098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84783098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84883098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
84983098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85083098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85183098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85283098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85383098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85483098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85583098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85683098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85783098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85883098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
85983098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86083098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86183098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86283098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86383098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86483098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86583098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86683098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86783098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86883098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
86983098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
87083098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
87183098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,
87283098Smp						/* 0xff = 0 */
87383098Smp    _MB1|_MB2,	_MB1|_MB2,	_MB1|_MB2,	0,
87483098Smp};
87583098Smp
876100616Smpunsigned short _mbmap_utf8[256] = {
877100616Smp/* utf8 uses up to 6 bytes */
878100616Smp/* first byte        0xc0 - 0xfd */
879100616Smp/* any further bytes 0x80 - 0xbf */
880100616Smp/* 0 - 7f all 0 */
881100616Smp    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,
882100616Smp    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,
883100616Smp    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,
884100616Smp    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,
885100616Smp/*  80 - bf : all _MB2 */
886100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
887100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
888100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
889100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
890100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
891100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
892100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
893100616Smp    _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2, _MB2,
894100616Smp/* c0 - fc : all _MB1 */
895100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
896100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
897100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
898100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
899100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
900100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
901100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, _MB1,
902100616Smp/*  f8    f9    fa    fb    fc    fd    fe    ff*/
903100616Smp    _MB1, _MB1, _MB1, _MB1, _MB1, _MB1, 0,    0
904100616Smp};
90559243Sobrien#endif /* defined(KANJI) && defined(SHORT_STRINGS) && defined(DSPMBYTE) */
90659243Sobrien
90759243Sobrien#ifndef NLS
90859243Sobrien/* _cmap_lower, _cmap_upper for ISO 8859/1 */
90959243Sobrien
91059243Sobrienunsigned char _cmap_lower[256] = {
91159243Sobrien	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
91259243Sobrien	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
91359243Sobrien	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
91459243Sobrien	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
91559243Sobrien	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
91659243Sobrien	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
91759243Sobrien	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
91859243Sobrien	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
91959243Sobrien	0100,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
92059243Sobrien	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
92159243Sobrien	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
92259243Sobrien	0170,	0171,	0172,	0133,	0134,	0135,	0136,	0137,
92359243Sobrien	0140,	0141,	0142,	0143,	0144,	0145,	0146,	0147,
92459243Sobrien	0150,	0151,	0152,	0153,	0154,	0155,	0156,	0157,
92559243Sobrien	0160,	0161,	0162,	0163,	0164,	0165,	0166,	0167,
92659243Sobrien	0170,	0171,	0172,	0173,	0174,	0175,	0176,	0177,
92759243Sobrien	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
92859243Sobrien	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
92959243Sobrien	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
93059243Sobrien	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
93159243Sobrien	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
93259243Sobrien	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
93359243Sobrien	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
93459243Sobrien	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
93559243Sobrien	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
93659243Sobrien	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
93759243Sobrien	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0327,
93859243Sobrien	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0337,
93959243Sobrien	0340,	0341,	0342,	0343,	0344,	0345,	0346,	0347,
94059243Sobrien	0350,	0351,	0352,	0353,	0354,	0355,	0356,	0357,
94159243Sobrien	0360,	0361,	0362,	0363,	0364,	0365,	0366,	0367,
94259243Sobrien	0370,	0371,	0372,	0373,	0374,	0375,	0376,	0377,
94359243Sobrien};
94459243Sobrien
94559243Sobrienunsigned char _cmap_upper[256] = {
94659243Sobrien	0000,	0001,	0002,	0003,	0004,	0005,	0006,	0007,
94759243Sobrien	0010,	0011,	0012,	0013,	0014,	0015,	0016,	0017,
94859243Sobrien	0020,	0021,	0022,	0023,	0024,	0025,	0026,	0027,
94959243Sobrien	0030,	0031,	0032,	0033,	0034,	0035,	0036,	0037,
95059243Sobrien	0040,	0041,	0042,	0043,	0044,	0045,	0046,	0047,
95159243Sobrien	0050,	0051,	0052,	0053,	0054,	0055,	0056,	0057,
95259243Sobrien	0060,	0061,	0062,	0063,	0064,	0065,	0066,	0067,
95359243Sobrien	0070,	0071,	0072,	0073,	0074,	0075,	0076,	0077,
95459243Sobrien	0100,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
95559243Sobrien	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
95659243Sobrien	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
95759243Sobrien	0130,	0131,	0132,	0133,	0134,	0135,	0136,	0137,
95859243Sobrien	0140,	0101,	0102,	0103,	0104,	0105,	0106,	0107,
95959243Sobrien	0110,	0111,	0112,	0113,	0114,	0115,	0116,	0117,
96059243Sobrien	0120,	0121,	0122,	0123,	0124,	0125,	0126,	0127,
96159243Sobrien	0130,	0131,	0132,	0173,	0174,	0175,	0176,	0177,
96259243Sobrien	0200,	0201,	0202,	0203,	0204,	0205,	0206,	0207,
96359243Sobrien	0210,	0211,	0212,	0213,	0214,	0215,	0216,	0217,
96459243Sobrien	0220,	0221,	0222,	0223,	0224,	0225,	0226,	0227,
96559243Sobrien	0230,	0231,	0232,	0233,	0234,	0235,	0236,	0237,
96659243Sobrien	0240,	0241,	0242,	0243,	0244,	0245,	0246,	0247,
96759243Sobrien	0250,	0251,	0252,	0253,	0254,	0255,	0256,	0257,
96859243Sobrien	0260,	0261,	0262,	0263,	0264,	0265,	0266,	0267,
96959243Sobrien	0270,	0271,	0272,	0273,	0274,	0275,	0276,	0277,
97059243Sobrien	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
97159243Sobrien	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
97259243Sobrien	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0327,
97359243Sobrien	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0337,
97459243Sobrien	0300,	0301,	0302,	0303,	0304,	0305,	0306,	0307,
97559243Sobrien	0310,	0311,	0312,	0313,	0314,	0315,	0316,	0317,
97659243Sobrien	0320,	0321,	0322,	0323,	0324,	0325,	0326,	0367,
97759243Sobrien	0330,	0331,	0332,	0333,	0334,	0335,	0336,	0377,
97859243Sobrien};
97959243Sobrien#endif /* NLS */
98059243Sobrien
98159243Sobrien#ifdef _OSD_POSIX
98259243Sobrien/*
98359243Sobrien	   Initial Port for tcsh-6.07.04 by <Martin.Kraemer@Mch.SNI.De>
98459243Sobrien
98559243Sobrien"BS2000 OSD" is a POSIX on a main frame.
98659243SobrienIt is made by Siemens Nixdorf AG, Germany.
98759243SobrienWithin the POSIX subsystem, the same character set was chosen as in
98859243Sobrien"native BS2000", namely EBCDIC.  Yes, tcsh now runs on EBCDIC platforms, too.
98959243Sobrien
99059243SobrienEBCDIC Table. (Yes, in EBCDIC, the letters 'a'..'z' are not contiguous!)
99159243SobrienThis table is bijective, i.e. there are no ambigous or duplicate characters
99259243Sobrien00    00 01 02 03 85 09 86 7f  87 8d 8e 0b 0c 0d 0e 0f  * ................ *
99359243Sobrien10    10 11 12 13 8f 0a 08 97  18 19 9c 9d 1c 1d 1e 1f  * ................ *
99459243Sobrien20    80 81 82 83 84 92 17 1b  88 89 8a 8b 8c 05 06 07  * ................ *
99559243Sobrien30    90 91 16 93 94 95 96 04  98 99 9a 9b 14 15 9e 1a  * ................ *
99659243Sobrien40    20 a0 e2 e4 e0 e1 e3 e5  e7 f1 60 2e 3c 28 2b 7c  *  .........`.<(+| *
99759243Sobrien50    26 e9 ea eb e8 ed ee ef  ec df 21 24 2a 29 3b 9f  * &.........!$*);. *
99859243Sobrien60    2d 2f c2 c4 c0 c1 c3 c5  c7 d1 5e 2c 25 5f 3e 3f  * -/........^,%_>? *
99959243Sobrien70    f8 c9 ca cb c8 cd ce cf  cc a8 3a 23 40 27 3d 22  * ..........:#@'=" *
100059243Sobrien80    d8 61 62 63 64 65 66 67  68 69 ab bb f0 fd fe b1  * .abcdefghi...... *
100159243Sobrien90    b0 6a 6b 6c 6d 6e 6f 70  71 72 aa ba e6 b8 c6 a4  * .jklmnopqr...... *
100259243Sobriena0    b5 af 73 74 75 76 77 78  79 7a a1 bf d0 dd de ae  * ..stuvwxyz...... *
100359243Sobrienb0    a2 a3 a5 b7 a9 a7 b6 bc  bd be ac 5b 5c 5d b4 d7  * ...........[\].. *
100459243Sobrienc0    f9 41 42 43 44 45 46 47  48 49 ad f4 f6 f2 f3 f5  * .ABCDEFGHI...... *
100559243Sobriend0    a6 4a 4b 4c 4d 4e 4f 50  51 52 b9 fb fc db fa ff  * .JKLMNOPQR...... *
100659243Sobriene0    d9 f7 53 54 55 56 57 58  59 5a b2 d4 d6 d2 d3 d5  * ..STUVWXYZ...... *
100759243Sobrienf0    30 31 32 33 34 35 36 37  38 39 b3 7b dc 7d da 7e  * 0123456789.{.}.~ *
100859243Sobrien*/
100959243Sobrienunsigned short _toascii[256] = {
101059243Sobrien/*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f,
101159243Sobrien       0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */
101259243Sobrien/*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97,
101359243Sobrien       0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */
101459243Sobrien/*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b,
101559243Sobrien       0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */
101659243Sobrien/*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
101759243Sobrien       0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */
101859243Sobrien/*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
101959243Sobrien       0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+|  */
102059243Sobrien/*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
102159243Sobrien       0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /* &.........!$*);. */
102259243Sobrien/*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
102359243Sobrien       0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/........^,%_>? */
102459243Sobrien/*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
102559243Sobrien       0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* ..........:#@'=" */
102659243Sobrien/*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
102759243Sobrien       0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */
102859243Sobrien/*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
102959243Sobrien       0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */
103059243Sobrien/*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
103159243Sobrien       0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /* ..stuvwxyz...... */
103259243Sobrien/*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
103359243Sobrien       0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /* ...........[\].. */
103459243Sobrien/*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
103559243Sobrien       0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* .ABCDEFGHI...... */
103659243Sobrien/*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
103759243Sobrien       0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /* .JKLMNOPQR...... */
103859243Sobrien/*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
103959243Sobrien       0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* ..STUVWXYZ...... */
104059243Sobrien/*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
104159243Sobrien       0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e  /* 0123456789.{.}.~ */
104259243Sobrien};
104359243Sobrien/* The same, for ascii-in-ebcdic
104459243Sobrien00    00 01 02 03 37 2d 2e 2f  16 05 15 0b 0c 0d 0e 0f  * ................ *
104559243Sobrien10    10 11 12 13 3c 3d 32 26  18 19 3f 27 1c 1d 1e 1f  * ................ *
104659243Sobrien20    40 5a 7f 7b 5b 6c 50 7d  4d 5d 5c 4e 6b 60 4b 61  *  !"#$%&'()*+,-./ *
104759243Sobrien30    f0 f1 f2 f3 f4 f5 f6 f7  f8 f9 7a 5e 4c 7e 6e 6f  * 0123456789:;<=>? *
104859243Sobrien40    7c c1 c2 c3 c4 c5 c6 c7  c8 c9 d1 d2 d3 d4 d5 d6  * @ABCDEFGHIJKLMNO *
104959243Sobrien50    d7 d8 d9 e2 e3 e4 e5 e6  e7 e8 e9 bb bc bd 6a 6d  * PQRSTUVWXYZ[\]^_ *
105059243Sobrien60    4a 81 82 83 84 85 86 87  88 89 91 92 93 94 95 96  * `abcdefghijklmno *
105159243Sobrien70    97 98 99 a2 a3 a4 a5 a6  a7 a8 a9 fb 4f fd ff 07  * pqrstuvwxyz{|}~. *
105259243Sobrien80    20 21 22 23 24 04 06 08  28 29 2a 2b 2c 09 0a 14  * ................ *
105359243Sobrien90    30 31 25 33 34 35 36 17  38 39 3a 3b 1a 1b 3e 5f  * ................ *
105459243Sobriena0    41 aa b0 b1 9f b2 d0 b5  79 b4 9a 8a ba ca af a1  * ................ *
105559243Sobrienb0    90 8f ea fa be a0 b6 b3  9d da 9b 8b b7 b8 b9 ab  * ................ *
105659243Sobrienc0    64 65 62 66 63 67 9e 68  74 71 72 73 78 75 76 77  * ................ *
105759243Sobriend0    ac 69 ed ee eb ef ec bf  80 e0 fe dd fc ad ae 59  * ................ *
105859243Sobriene0    44 45 42 46 43 47 9c 48  54 51 52 53 58 55 56 57  * ................ *
105959243Sobrienf0    8c 49 cd ce cb cf cc e1  70 c0 de db dc 8d 8e df  * ................ *
106059243Sobrien*/
106159243Sobrienunsigned short _toebcdic[256] = {
106259243Sobrien/*00*/  0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
106359243Sobrien	0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,  /* ................ */
106459243Sobrien/*10*/  0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
106559243Sobrien	0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,  /* ................ */
106659243Sobrien/*20*/  0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
106759243Sobrien	0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,  /*  !"#$%&'()*+,-./ */
106859243Sobrien/*30*/  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
106959243Sobrien	0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,  /* 0123456789:;<=>? */
107059243Sobrien/*40*/  0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
107159243Sobrien	0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,  /* @ABCDEFGHIJKLMNO */
107259243Sobrien/*50*/  0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
107359243Sobrien	0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d,  /* PQRSTUVWXYZ[\]^_ */
107459243Sobrien/*60*/  0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
107559243Sobrien	0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,  /* `abcdefghijklmno */
107659243Sobrien/*70*/  0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
107759243Sobrien	0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07,  /* pqrstuvwxyz{|}~. */
107859243Sobrien/*80*/  0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08,
107959243Sobrien	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14,  /* ................ */
108059243Sobrien/*90*/  0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17,
108159243Sobrien	0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f,  /* ................ */
108259243Sobrien/*a0*/  0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5,
108359243Sobrien	0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1,  /* ................ */
108459243Sobrien/*b0*/  0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
108559243Sobrien	0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,  /* ................ */
108659243Sobrien/*c0*/  0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
108759243Sobrien	0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,  /* ................ */
108859243Sobrien/*d0*/  0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
108959243Sobrien	0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59,  /* ................ */
109059243Sobrien/*e0*/  0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
109159243Sobrien	0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,  /* ................ */
109259243Sobrien/*f0*/  0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
109359243Sobrien	0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf   /* ................ */
109459243Sobrien};
109559243Sobrien
109659243Sobrien#endif /*_OSD_POSIX*/
109769408Sache
109869408Sache#ifdef __MVS__
109969408Sache/*
110069408Sache   The IBM 1047 coded char set to/from ISO 8859-1 mapping differs from
110169408Sache   the POSIX-BC mapping in several places
110269408Sache */
110369408Sacheunsigned short _toascii[256] = {
110469408Sache      0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
110569408Sache      0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
110669408Sache      0x10, 0x11, 0x12, 0x13, 0x9d, 0x0a, 0x08, 0x87,
110769408Sache      0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
110869408Sache      0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
110969408Sache      0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
111069408Sache      0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
111169408Sache      0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
111269408Sache      0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5,
111369408Sache      0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
111469408Sache      0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef,
111569408Sache      0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e,
111669408Sache      0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5,
111769408Sache      0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
111869408Sache      0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
111969408Sache      0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
112069408Sache      0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
112169408Sache      0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1,
112269408Sache      0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
112369408Sache      0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4,
112469408Sache      0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
112569408Sache      0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae,
112669408Sache      0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc,
112769408Sache      0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7,
112869408Sache      0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
112969408Sache      0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
113069408Sache      0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
113169408Sache      0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff,
113269408Sache      0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
113369408Sache      0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5,
113469408Sache      0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
113569408Sache      0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f,
113669408Sache};
113769408Sacheunsigned short _toebcdic[256] = {
113869408Sache      0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
113969408Sache      0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
114069408Sache      0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
114169408Sache      0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
114269408Sache      0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
114369408Sache      0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
114469408Sache      0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
114569408Sache      0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
114669408Sache      0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
114769408Sache      0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
114869408Sache      0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
114969408Sache      0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d,
115069408Sache      0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
115169408Sache      0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
115269408Sache      0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
115369408Sache      0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07,
115469408Sache      0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17,
115569408Sache      0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
115669408Sache      0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
115769408Sache      0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff,
115869408Sache      0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5,
115969408Sache      0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc,
116069408Sache      0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3,
116169408Sache      0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab,
116269408Sache      0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68,
116369408Sache      0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
116469408Sache      0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf,
116569408Sache      0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59,
116669408Sache      0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48,
116769408Sache      0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
116869408Sache      0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1,
116969408Sache      0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf
117069408Sache};
117169408Sache#endif /*__MVS__*/
1172