--- /dev/null
+/* 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)"E)==0 ANDF _ctype1[c]&(T_SPC))
+#define eofmeta(c) (((c)"E)==0 ANDF _ctype1[c]&(_META|T_EOF))
+#define qotchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_QOT))
+#define eolchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_EOR|T_EOF))
+#define dipchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_DIP))
+#define subchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_SUB|T_QOT))
+#define escchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_ESC))
+
+char _ctype2[];
+
+#define digit(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DIG))
+#define fngchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_FNG))
+#define dolchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_BRC|T_DIG|T_IDC|T_SHN))
+#define defchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DEF))
+#define setchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_SET))
+#define digchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_DIG))
+#define letter(c) (((c)"E)==0 ANDF _ctype2[c]&(T_IDC))
+#define alphanum(c) (((c)"E)==0 ANDF _ctype2[c]&(_IDCH))
+#define astchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST))