Rev 215 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
215 | victor | 1 | /* |
2 | ** All character classification functions except isascii(). |
||
3 | ** Integer argument (c) must be in ASCII range (0-127) for |
||
4 | ** dependable answers. |
||
5 | */ |
||
6 | |||
7 | #define ALNUM 1 |
||
8 | #define ALPHA 2 |
||
9 | #define CNTRL 4 |
||
10 | #define DIGIT 8 |
||
11 | #define GRAPH 16 |
||
12 | #define LOWER 32 |
||
13 | #define PRINT 64 |
||
14 | #define PUNCT 128 |
||
15 | #define BLANK 256 |
||
16 | #define UPPER 512 |
||
17 | #define XDIGIT 1024 |
||
18 | |||
19 | extern char _is[128]; |
||
20 | |||
21 | #define isalnum(c)(_is[c] & ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */ |
||
22 | #define isalpha(c)(_is[c] & ALPHA ) /* 'a'-'z', 'A'-'Z' */ |
||
23 | #define iscntrl(c)(_is[c] & CNTRL ) /* 0-31, 127 */ |
||
24 | #define isdigit(c)(_is[c] & DIGIT ) /* '0'-'9' */ |
||
25 | #define isgraph(c)(_is[c] & GRAPH ) /* '!'-'~' */ |
||
26 | #define islower(c)(_is[c] & LOWER ) /* 'a'-'z' */ |
||
27 | #define isprint(c)(_is[c] & PRINT ) /* ' '-'~' */ |
||
28 | #define ispunct(c)(_is[c] & PUNCT ) /* !alnum && !cntrl && !space */ |
||
29 | #define isspace(c)(_is[c] & BLANK ) /* HT, LF, VT, FF, CR, ' ' */ |
||
30 | #define isupper(c)(_is[c] & UPPER ) /* 'A'-'Z' */ |
||
31 | #define isxdigit(c)(_is[c] & XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */ |
||
647 | andrew_pro | 32 | |
33 | #define isascii(c) (!((c)&(~0x7f))) |
||
34 | #define toascii(c) ((c)&0x7f) |
||
35 |