|
|
1.1 ! root 1: /* ! 2: * Macros for determining character type. ! 3: * ! 4: * The table chrtype (in char.c) classifies each character ! 5: * in one of the categories defined below. ! 6: */ ! 7: ! 8: #define _S 01 /* space */ ! 9: #define _U 02 /* upper case */ ! 10: #define _L 04 /* lower case */ ! 11: #define _A 010 /* other alphabetic (e.g. "_") */ ! 12: #define _N 020 /* digit */ ! 13: ! 14: #define _UL (_U | _L) /* letter */ ! 15: #define _ULA (_UL | _A) /* alphabetic */ ! 16: #define _ULAN (_ULA | _N) /* alphanumeric */ ! 17: ! 18: #define isspace(c) (chrtype[c] & _S) ! 19: #define isupper(c) (chrtype[c] & _U) ! 20: #define islower(c) (chrtype[c] & _L) ! 21: #define isletter(c) (chrtype[c] & _UL) ! 22: #define isalpha(c) (chrtype[c] & _ULA) ! 23: #define isdigit(c) (chrtype[c] & _N) ! 24: #define isalnum(c) (chrtype[c] & _ULAN) ! 25: ! 26: #define toupper(c) (islower(c)? (c - ('a'-'A')) : c) ! 27: #define tolower(c) (isupper(c)? (c + ('a'-'A')) : c) ! 28: #define tonum(c) (isdigit(c)? (c - '0') : ((c & 037) + 9)) ! 29: ! 30: extern char chrtype[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.