Subversion Repositories Kolibri OS

Rev

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