1 /* 2 3 * Copyright (c) 1984, 1985, 1986 AT&T 4 * All Rights Reserved 5 6 * THIS IS UNPUBLISHED PROPRIETARY SOURCE 7 * CODE OF AT&T. 8 * The copyright notice above does not 9 * evidence any actual or intended 10 * publication of such source code. 11 12 */ 13 /* @(#)ctype.c 1.1 */ 14 /* 15 * UNIX shell 16 * 17 * S. R. Bourne 18 * AT&T Bell Laboratories 19 * Rewritten by David Korn 20 * 21 */ 22 23 #include "shtype.h" 24 25 /* 26 * #define _XBAR _BAR 27 * to make ^ a synonym for |. (Strongly discouraged) 28 */ 29 30 #define _XBAR 0 31 32 const char _ctype1[]= 33 { 34 /* 000 001 002 003 004 005 006 007 */ 35 _EOF, 0, 0, 0, 0, 0, 0, 0, 36 37 /* bs ht nl vt np cr so si */ 38 0, _TAB, _EOR, 0, 0, 0, 0, 0, 39 40 0, 0, 0, 0, 0, 0, 0, 0, 41 42 0, 0, 0, 0, 0, 0, 0, 0, 43 44 /* sp ! " # $ % & ' */ 45 _SPC, 0, _DQU, 0, _DOL1, 0, _AMP, 0, 46 47 /* ( ) * + , - . / */ 48 _BRA, _KET, _AST1, 0, 0, 0, 0, 0, 49 50 /* 0 1 2 3 4 5 6 7 */ 51 0, 0, 0, 0, 0, 0, 0, 0, 52 53 /* 8 9 : ; < = > ? */ 54 0, 0, 0, _SEM, _LT, 0, _GT, _QU1, 55 56 /* @ A B C D E F G */ 57 0, 0, 0, 0, 0, 0, 0, 0, 58 59 /* H I J K L M N O */ 60 0, 0, 0, 0, 0, 0, 0, 0, 61 62 /* P Q R S T U V W */ 63 0, 0, 0, 0, 0, 0, 0, 0, 64 65 /* X Y Z [ \ ] ^ _ */ 66 0, 0, 0, T_EXP, _BSL, 0, _XBAR, 0, 67 68 /* ` a b c d e f g */ 69 _LQU, 0, 0, 0, 0, 0, 0, 0, 70 71 /* h i j k l m n o */ 72 0, 0, 0, 0, 0, 0, 0, 0, 73 74 /* p q r s t u v w */ 75 0, 0, 0, 0, 0, 0, 0, 0, 76 77 /* x y z { | } ~ del */ 78 0, 0, 0, 0, _BAR, 0, 0, 0, 79 80 /* 200 201 202 203 204 205 206 207 */ 81 0, 0, 0, 0, 0, 0, 0, 0, 82 83 /* 210 211 212 213 214 215 216 217 */ 84 0, 0, 0, 0, 0, 0, 0, 0, 85 86 /* 220 221 222 223 224 225 226 227 */ 87 0, 0, 0, 0, 0, 0, 0, 0, 88 89 /* 230 231 232 233 234 235 236 237 */ 90 0, 0, 0, 0, 0, 0, 0, 0, 91 92 /* 240 241 242 243 244 245 246 247 */ 93 0, 0, 0, 0, 0, 0, 0, 0, 94 95 /* 250 251 252 253 254 255 256 257 */ 96 0, 0, 0, 0, 0, 0, 0, 0, 97 98 /* 260 261 262 263 264 265 266 267 */ 99 0, 0, 0, 0, 0, 0, 0, 0, 100 101 /* 270 271 272 273 274 275 276 277 */ 102 0, 0, 0, 0, 0, 0, 0, 0, 103 104 /* 300 301 302 303 304 305 306 307 */ 105 0, 0, 0, 0, 0, 0, 0, 0, 106 107 /* 310 311 312 313 314 315 316 317 */ 108 0, 0, 0, 0, 0, 0, 0, 0, 109 110 /* 320 321 322 323 324 325 326 327 */ 111 0, 0, 0, 0, 0, 0, 0, 0, 112 113 /* 330 331 332 333 334 335 336 337 */ 114 0, 0, 0, 0, 0, 0, 0, 0, 115 116 /* 340 341 342 343 344 345 346 347 */ 117 0, 0, 0, 0, 0, 0, 0, 0, 118 119 /* 350 351 352 353 354 355 356 357 */ 120 0, 0, 0, 0, 0, 0, 0, 0, 121 122 /* 360 361 362 363 364 365 366 367 */ 123 0, 0, 0, 0, 0, 0, 0, 0, 124 125 /* 370 371 372 373 374 375 376 377 */ 126 0, 0, 0, 0, 0, 0, 0, 0 127 }; 128 129 130 const char _ctype2[]= 131 { 132 /* 000 001 002 003 004 005 006 007 */ 133 0, 0, 0, 0, 0, 0, 0, 0, 134 135 /* bs ht nl vt np cr so si */ 136 0, 0, 0, 0, 0, 0, 0, 0, 137 138 0, 0, 0, 0, 0, 0, 0, 0, 139 140 0, 0, 0, 0, 0, 0, 0, 0, 141 142 /* sp ! " # $ % & ' */ 143 0, _PCS, 0, _NUM, _DOL2, _PLS, 0, 0, 144 145 /* ( ) * + , - . / */ 146 _LPAR, 0, _AST, _PLS, 0, _MIN, 0, 0, 147 148 /* 0 1 2 3 4 5 6 7 */ 149 _DIG, _DIG, _DIG, _DIG, _DIG, _DIG, _DIG, _DIG, 150 151 /* 8 9 : ; < = > ? */ 152 _DIG, _DIG, 0, 0, 0, _EQ, 0, _QU, 153 154 /* @ A B C D E F G */ 155 _AT, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, 156 157 /* H I J K L M N O */ 158 _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, 159 160 /* P Q R S T U V W */ 161 _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, _UPC, 162 163 /* X Y Z [ \ ] ^ _ */ 164 _UPC, _UPC, _UPC, 0, 0, 0, 0, _ALP, 165 166 /* ` a b c d e f g */ 167 0, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, 168 169 /* h i j k l m n o */ 170 _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, 171 172 /* p q r s t u v w */ 173 _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, _LPC, 174 175 /* x y z { | } ~ del */ 176 _LPC, _LPC, _LPC, _CBR, 0, _CKT, 0, 0, 177 178 /* 200 201 202 203 204 205 206 207 */ 179 0, 0, 0, 0, 0, 0, 0, 0, 180 181 /* 210 211 212 213 214 215 216 217 */ 182 0, 0, 0, 0, 0, 0, _SS2, _SS3, 183 184 /* 220 221 222 223 224 225 226 227 */ 185 0, 0, 0, 0, 0, 0, 0, 0, 186 187 /* 230 231 232 233 234 235 236 237 */ 188 0, 0, 0, 0, 0, 0, 0, 0, 189 190 /* 240 241 242 243 244 245 246 247 */ 191 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 192 193 /* 250 251 252 253 254 255 256 257 */ 194 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 195 196 /* 260 261 262 263 264 265 266 267 */ 197 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 198 199 /* 270 271 272 273 274 275 276 277 */ 200 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 201 202 /* 300 301 302 303 304 305 306 307 */ 203 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 204 205 /* 310 311 312 313 314 315 316 317 */ 206 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 207 208 /* 320 321 322 323 324 325 326 327 */ 209 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 210 211 /* 330 331 332 333 334 335 336 337 */ 212 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 213 214 /* 340 341 342 343 344 345 346 347 */ 215 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 216 217 /* 350 351 352 353 354 355 356 357 */ 218 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 219 220 /* 360 361 362 363 364 365 366 367 */ 221 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, 222 223 /* 370 371 372 373 374 375 376 377 */ 224 _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP, _ALP 225 }; 226 227 const char hdigits[] = "00112233445566778899aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"; 228