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