aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/cb/cbtype.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/cb/cbtype.h')
-rw-r--r--src/cmd/cb/cbtype.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/cmd/cb/cbtype.h b/src/cmd/cb/cbtype.h
new file mode 100644
index 00000000..190fe2e5
--- /dev/null
+++ b/src/cmd/cb/cbtype.h
@@ -0,0 +1,42 @@
+#define _U 01
+#define _L 02
+#define _N 04
+#define _S 010
+#define _P 020
+#define _C 040
+#define _X 0100
+#define _O 0200
+
+extern unsigned char _cbtype_[]; /* in /usr/src/libc/gen/ctype_.c */
+
+#undef isop
+#undef isalpha
+#undef isupper
+#undef islower
+#undef isdigit
+#undef isxdigit
+#undef isspace
+#undef ispunct
+#undef isalnum
+#undef isprint
+#undef iscntrl
+#undef isascii
+#undef toupper
+#undef tolower
+#undef toascii
+
+#define isop(c) ((_cbtype_+1)[(uchar)(c)]&_O)
+#define isalpha(c) ((_cbtype_+1)[(uchar)(c)]&(_U|_L))
+#define isupper(c) ((_cbtype_+1)[(uchar)(c)]&_U)
+#define islower(c) ((_cbtype_+1)[(uchar)(c)]&_L)
+#define isdigit(c) ((_cbtype_+1)[(uchar)(c)]&_N)
+#define isxdigit(c) ((_cbtype_+1)[(uchar)(c)]&(_N|_X))
+#define isspace(c) ((_cbtype_+1)[(uchar)(c)]&_S)
+#define ispunct(c) ((_cbtype_+1)[(uchar)(c)]&_P)
+#define isalnum(c) ((_cbtype_+1)[(uchar)(c)]&(_U|_L|_N))
+#define isprint(c) ((_cbtype_+1)[(uchar)(c)]&(_P|_U|_L|_N))
+#define iscntrl(c) ((_cbtype_+1)[(uchar)(c)]&_C)
+#define isascii(c) ((unsigned)(c)<=0177)
+#define toupper(c) ((c)-'a'+'A')
+#define tolower(c) ((c)-'A'+'a')
+#define toascii(c) ((c)&0177)