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