Subversion Repositories Kolibri OS

Rev

Rev 6432 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6432 Rev 6433
1
/*
1
/*
2
** All character classification functions except isascii().
2
** All character classification functions except isascii().
3
** Integer argument (c) must be in ASCII range (0-127) for
3
** Integer argument (c) must be in ASCII range (0-127) for
4
** dependable answers.
4
** dependable answers.
5
*/
5
*/
6
 
6
 
7
#define __ALNUM     1
7
#define __ALNUM     1
8
#define __ALPHA     2
8
#define __ALPHA     2
9
#define __CNTRL     4
9
#define __CNTRL     4
10
#define __DIGIT     8
10
#define __DIGIT     8
11
#define __GRAPH    16
11
#define __GRAPH    16
12
#define __LOWER    32
12
#define __LOWER    32
13
#define __PRINT    64
13
#define __PRINT    64
14
#define __PUNCT   128
14
#define __PUNCT   128
15
#define __BLANK   256
15
#define __BLANK   256
16
#define __UPPER   512
16
#define __UPPER   512
17
#define __XDIGIT 1024
17
#define __XDIGIT 1024
18
 
18
 
19
extern unsigned short __is[128];
19
extern unsigned short __is[128];
20
 
20
 
21
#define isalnum(c)(__is[c+1] & __ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */
21
#define isalnum(c)(__is[c+1] & __ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */
22
#define isalpha(c)(__is[c+1] & __ALPHA ) /* 'a'-'z', 'A'-'Z' */
22
#define isalpha(c)(__is[c+1] & __ALPHA ) /* 'a'-'z', 'A'-'Z' */
23
#define iscntrl(c)(__is[c+1] & __CNTRL ) /* 0-31, 127 */
23
#define iscntrl(c)(__is[c+1] & __CNTRL ) /* 0-31, 127 */
24
#define isdigit(c)(__is[c+1] & __DIGIT ) /* '0'-'9' */
24
#define isdigit(c)(__is[c+1] & __DIGIT ) /* '0'-'9' */
25
#define isgraph(c)(__is[c+1] & __GRAPH ) /* '!'-'~' */
25
#define isgraph(c)(__is[c+1] & __GRAPH ) /* '!'-'~' */
26
#define islower(c)(__is[c+1] & __LOWER ) /* 'a'-'z' */
26
#define islower(c)(__is[c+1] & __LOWER ) /* 'a'-'z' */
27
#define isprint(c)(__is[c+1] & __PRINT ) /* ' '-'~' */
27
#define isprint(c)(__is[c+1] & __PRINT ) /* ' '-'~' */
28
#define ispunct(c)(__is[c+1] & __PUNCT ) /* !alnum && !cntrl && !space */
28
#define ispunct(c)(__is[c+1] & __PUNCT ) /* !alnum && !cntrl && !space */
29
#define isspace(c)(__is[c+1] & __BLANK ) /* HT, LF, VT, FF, CR, ' ' */
29
#define isspace(c)(__is[c+1] & __BLANK ) /* HT, LF, VT, FF, CR, ' ' */
30
#define isupper(c)(__is[c+1] & __UPPER ) /* 'A'-'Z' */
30
#define isupper(c)(__is[c+1] & __UPPER ) /* 'A'-'Z' */
31
#define isxdigit(c)(__is[c+1] & __XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */
31
#define isxdigit(c)(__is[c+1] & __XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */
32
 
32
 
33
#define isascii(c) (!((c)&(~0x7f)))
33
#define isascii(c) (!((c)&(~0x7f)))
34
#define toascii(c) ((c)&0x7f)
34
#define toascii(c) ((c)&0x7f)
-
 
35
 
-
 
36
extern unsigned char tolower(unsigned char c);
-
 
37
extern unsigned char toupper(unsigned char c);