date and time created 82/05/07 19:37:00 by mckusick
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 8 May 1982 10:37:00 +0000 (02:37 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 8 May 1982 10:37:00 +0000 (02:37 -0800)
SCCS-vsn: old/sh/ctype.h 4.1

usr/src/old/sh/ctype.h [new file with mode: 0644]

diff --git a/usr/src/old/sh/ctype.h b/usr/src/old/sh/ctype.h
new file mode 100644 (file)
index 0000000..19ffa66
--- /dev/null
@@ -0,0 +1,92 @@
+/*     ctype.h 4.1     82/05/07        */
+
+#
+/*
+ *     UNIX shell
+ *
+ *     S. R. Bourne
+ *     Bell Telephone Laboratories
+ *
+ */
+
+
+/* table 1 */
+#define T_SUB  01
+#define T_MET  02
+#define        T_SPC   04
+#define T_DIP  010
+#define T_EOF  020
+#define T_EOR  040
+#define T_QOT  0100
+#define T_ESC  0200
+
+/* table 2 */
+#define T_BRC  01
+#define T_DEF  02
+#define T_AST  04
+#define        T_DIG   010
+#define T_FNG  020
+#define T_SHN  040
+#define        T_IDC   0100
+#define T_SET  0200
+
+/* for single chars */
+#define _TAB   (T_SPC)
+#define _SPC   (T_SPC)
+#define _UPC   (T_IDC)
+#define _LPC   (T_IDC)
+#define _DIG   (T_DIG)
+#define _EOF   (T_EOF)
+#define _EOR   (T_EOR)
+#define _BAR   (T_DIP)
+#define _HAT   (T_MET)
+#define _BRA   (T_MET)
+#define _KET   (T_MET)
+#define _SQB   (T_FNG)
+#define _AMP   (T_DIP)
+#define _SEM   (T_DIP)
+#define _LT    (T_DIP)
+#define _GT    (T_DIP)
+#define _LQU   (T_QOT|T_ESC)
+#define _BSL   (T_ESC)
+#define _DQU   (T_QOT)
+#define _DOL1  (T_SUB|T_ESC)
+
+#define _CBR   T_BRC
+#define _CKT   T_DEF
+#define _AST   (T_AST|T_FNG)
+#define _EQ    (T_DEF)
+#define _MIN   (T_DEF|T_SHN)
+#define _PCS   (T_SHN)
+#define _NUM   (T_SHN)
+#define _DOL2  (T_SHN)
+#define _PLS   (T_DEF|T_SET)
+#define _AT    (T_AST)
+#define _QU    (T_DEF|T_FNG|T_SHN)
+
+/* abbreviations for tests */
+#define _IDCH  (T_IDC|T_DIG)
+#define _META  (T_SPC|T_DIP|T_MET|T_EOR)
+
+char   _ctype1[];
+
+/* nb these args are not call by value !!!! */
+#define        space(c)        (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_SPC))
+#define eofmeta(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(_META|T_EOF))
+#define qotchar(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_QOT))
+#define eolchar(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_EOR|T_EOF))
+#define dipchar(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_DIP))
+#define subchar(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_SUB|T_QOT))
+#define escchar(c)     (((c)&QUOTE)==0 ANDF _ctype1[c]&(T_ESC))
+
+char   _ctype2[];
+
+#define        digit(c)        (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_DIG))
+#define fngchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_FNG))
+#define dolchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_AST|T_BRC|T_DIG|T_IDC|T_SHN))
+#define defchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_DEF))
+#define setchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_SET))
+#define digchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_AST|T_DIG))
+#define        letter(c)       (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_IDC))
+#define alphanum(c)    (((c)&QUOTE)==0 ANDF _ctype2[c]&(_IDCH))
+#define astchar(c)     (((c)&QUOTE)==0 ANDF _ctype2[c]&(T_AST))