1234567891011121314151617181920212223242526272829303132333435363738 |
- /*
- * ctype.h Character classification and conversion
- */
- #ifndef __CTYPE_H
- #define __CTYPE_H
- extern unsigned char __ctype[];
- #define __CT_d 0x01 /* numeric digit */
- #define __CT_u 0x02 /* upper case */
- #define __CT_l 0x04 /* lower case */
- #define __CT_c 0x08 /* control character */
- #define __CT_s 0x10 /* whitespace */
- #define __CT_p 0x20 /* punctuation */
- #define __CT_x 0x40 /* hexadecimal */
- #define toupper(c) (islower(c) ? (c)^0x20 : (c))
- #define tolower(c) (isupper(c) ? (c)^0x20 : (c))
- #define _toupper(c) ((c)^0x20)
- #define _tolower(c) ((c)^0x20)
- #define toascii(c) ((c)&0x7F)
- /* Note the '!!' is a cast to 'bool' and even BCC deletes it in an if() */
- #define isalnum(c) (!!(__ctype[(int) c]&(__CT_u|__CT_l|__CT_d)))
- #define isalpha(c) (!!(__ctype[(int) c]&(__CT_u|__CT_l)))
- #define isascii(c) (!((c)&~0x7F))
- #define iscntrl(c) (!!(__ctype[(int) c]&__CT_c))
- #define isdigit(c) (!!(__ctype[(int) c]&__CT_d))
- #define isgraph(c) (!(__ctype[(int) c]&(__CT_c|__CT_s)))
- #define islower(c) (!!(__ctype[(int) c]&__CT_l))
- #define isprint(c) (!(__ctype[(int) c]&__CT_c))
- #define ispunct(c) (!!(__ctype[(int) c]&__CT_p))
- #define isspace(c) (!!(__ctype[(int) c]&__CT_s))
- #define isupper(c) (!!(__ctype[(int) c]&__CT_u))
- #define isxdigit(c) (!!(__ctype[(int) c]&__CT_x))
- #endif /* __CTYPE_H */
|