|
|
1.1 root 1: /* ctype.h 4.1 82/05/07 */
2:
3: #
4: /*
5: * UNIX shell
6: *
7: * S. R. Bourne
8: * Bell Telephone Laboratories
9: *
10: */
11:
12:
13: /* table 1 */
14: #define T_SUB 01
15: #define T_MET 02
16: #define T_SPC 04
17: #define T_DIP 010
18: #define T_EOF 020
19: #define T_EOR 040
20: #define T_QOT 0100
21: #define T_ESC 0200
22:
23: /* table 2 */
24: #define T_BRC 01
25: #define T_DEF 02
26: #define T_AST 04
27: #define T_DIG 010
28: #define T_FNG 020
29: #define T_SHN 040
30: #define T_IDC 0100
31: #define T_SET 0200
32:
33: /* for single chars */
34: #define _TAB (T_SPC)
35: #define _SPC (T_SPC)
36: #define _UPC (T_IDC)
37: #define _LPC (T_IDC)
38: #define _DIG (T_DIG)
39: #define _EOF (T_EOF)
40: #define _EOR (T_EOR)
41: #define _BAR (T_DIP)
42: #define _HAT (T_MET)
43: #define _BRA (T_MET)
44: #define _KET (T_MET)
45: #define _SQB (T_FNG)
46: #define _AMP (T_DIP)
47: #define _SEM (T_DIP)
48: #define _LT (T_DIP)
49: #define _GT (T_DIP)
50: #define _LQU (T_QOT|T_ESC)
51: #define _BSL (T_ESC)
52: #define _DQU (T_QOT)
53: #define _DOL1 (T_SUB|T_ESC)
54:
55: #define _CBR T_BRC
56: #define _CKT T_DEF
57: #define _AST (T_AST|T_FNG)
58: #define _EQ (T_DEF)
59: #define _MIN (T_DEF|T_SHN)
60: #define _PCS (T_SHN)
61: #define _NUM (T_SHN)
62: #define _DOL2 (T_SHN)
63: #define _PLS (T_DEF|T_SET)
64: #define _AT (T_AST)
65: #define _QU (T_DEF|T_FNG|T_SHN)
66:
67: /* abbreviations for tests */
68: #define _IDCH (T_IDC|T_DIG)
69: #define _META (T_SPC|T_DIP|T_MET|T_EOR)
70:
71: char _ctype1[];
72:
73: /* nb these args are not call by value !!!! */
74: #define space(c) (((c)"E)==0 ANDF _ctype1[c]&(T_SPC))
75: #define eofmeta(c) (((c)"E)==0 ANDF _ctype1[c]&(_META|T_EOF))
76: #define qotchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_QOT))
77: #define eolchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_EOR|T_EOF))
78: #define dipchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_DIP))
79: #define subchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_SUB|T_QOT))
80: #define escchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_ESC))
81:
82: char _ctype2[];
83:
84: #define digit(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DIG))
85: #define fngchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_FNG))
86: #define dolchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_BRC|T_DIG|T_IDC|T_SHN))
87: #define defchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DEF))
88: #define setchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_SET))
89: #define digchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_DIG))
90: #define letter(c) (((c)"E)==0 ANDF _ctype2[c]&(T_IDC))
91: #define alphanum(c) (((c)"E)==0 ANDF _ctype2[c]&(_IDCH))
92: #define astchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.