1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23/* All Rights Reserved */ 24 25 26#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10.1.1 */ 27/* 28 * UNIX shell 29 */ 30 31 32/* table 1 */ 33#define T_SUB 01 34#define T_MET 02 35#define T_SPC 04 36#define T_DIP 010 37#define T_EOF 020 38#define T_EOR 040 39#define T_QOT 0100 40#define T_ESC 0200 41 42/* table 2 */ 43#define T_BRC 01 44#define T_DEF 02 45#define T_AST 04 46#define T_DIG 010 47#define T_SHN 040 48#define T_IDC 0100 49#define T_SET 0200 50 51/* for single chars */ 52#define _TAB (T_SPC) 53#define _SPC (T_SPC) 54#define _UPC (T_IDC) 55#define _LPC (T_IDC) 56#define _DIG (T_DIG) 57#define _EOF (T_EOF) 58#define _EOR (T_EOR) 59#define _BAR (T_DIP) 60#define _HAT (T_MET) 61#define _BRA (T_MET) 62#define _KET (T_MET) 63#define _AMP (T_DIP) 64#define _SEM (T_DIP) 65#define _LT (T_DIP) 66#define _GT (T_DIP) 67#define _LQU (T_QOT|T_ESC) 68#define _BSL (T_ESC) 69#define _DQU (T_QOT|T_ESC) 70#define _DOL1 (T_SUB|T_ESC) 71 72#define _CBR T_BRC 73#define _CKT T_DEF 74#define _AST (T_AST) 75#define _EQ (T_DEF) 76#define _MIN (T_DEF|T_SHN) 77#define _PCS (T_SHN) 78#define _NUM (T_SHN) 79#define _DOL2 (T_SHN) 80#define _PLS (T_DEF|T_SET) 81#define _AT (T_AST) 82#define _QU (T_DEF|T_SHN) 83 84/* abbreviations for tests */ 85#define _IDCH (T_IDC|T_DIG) 86#define _META (T_SPC|T_DIP|T_MET|T_EOR) 87 88extern 89#ifdef __STDC__ 90const 91#endif 92unsigned char _ctype1[]; 93 94/* nb these args are not call by value !!!! */ 95#define space(c) ((c<QUOTE) && _ctype1[c]&(T_SPC)) 96#define eofmeta(c) ((c<QUOTE) && _ctype1[c]&(_META|T_EOF)) 97#define qotchar(c) ((c<QUOTE) && _ctype1[c]&(T_QOT)) 98#define eolchar(c) ((c<QUOTE) && _ctype1[c]&(T_EOR|T_EOF)) 99#define dipchar(c) ((c<QUOTE) && _ctype1[c]&(T_DIP)) 100#define subchar(c) ((c<QUOTE) && _ctype1[c]&(T_SUB|T_QOT)) 101#define escchar(c) ((c<QUOTE) && _ctype1[c]&(T_ESC)) 102 103extern 104#ifdef __STDC__ 105const 106#endif 107unsigned char _ctype2[]; 108 109#define digit(c) ((c<QUOTE) && _ctype2[c]&(T_DIG)) 110#define dolchar(c) ((c<QUOTE) && _ctype2[c]&(T_AST|T_BRC|T_DIG|T_IDC|T_SHN)) 111#define defchar(c) ((c<QUOTE) && _ctype2[c]&(T_DEF)) 112#define setchar(c) ((c<QUOTE) && _ctype2[c]&(T_SET)) 113#define digchar(c) ((c<QUOTE) && _ctype2[c]&(T_AST|T_DIG)) 114#define letter(c) ((c<QUOTE) && _ctype2[c]&(T_IDC)) 115#define alphanum(c) ((c<QUOTE) && _ctype2[c]&(_IDCH)) 116#define astchar(c) ((c<QUOTE) && _ctype2[c]&(T_AST)) 117