Move c/h files implementing/defining standard library stuff into a new libc directory...
[kugel-rb.git] / firmware / libc / include / ctype.h
blob648e06dc5c9ebb3a6d3ab94955593e25aa774d3c
1 #ifndef _CTYPE_H_
2 #ifdef __cplusplus
3 extern "C" {
4 #endif
5 #define _CTYPE_H_
7 #include "_ansi.h"
9 int _EXFUN(isalnum, (int __c));
10 int _EXFUN(isalpha, (int __c));
11 int _EXFUN(iscntrl, (int __c));
12 int _EXFUN(isdigit, (int __c));
13 int _EXFUN(isgraph, (int __c));
14 int _EXFUN(islower, (int __c));
15 int _EXFUN(isprint, (int __c));
16 int _EXFUN(ispunct, (int __c));
17 int _EXFUN(isspace, (int __c));
18 int _EXFUN(isupper, (int __c));
19 int _EXFUN(isxdigit,(int __c));
20 int _EXFUN(tolower, (int __c));
21 int _EXFUN(toupper, (int __c));
23 #ifndef __STRICT_ANSI__
24 int _EXFUN(isascii, (int __c));
25 int _EXFUN(toascii, (int __c));
26 int _EXFUN(_tolower, (int __c));
27 int _EXFUN(_toupper, (int __c));
28 #endif
30 #define _U 01
31 #define _L 02
32 #define _N 04
33 #define _S 010
34 #define _P 020
35 #define _C 040
36 #define _X 0100
37 #define _B 0200
39 #ifdef PLUGIN
40 #define _ctype_ (rb->_rbctype_)
41 #else
42 extern const unsigned char _ctype_[257];
43 #endif
45 #ifndef __cplusplus
46 #define isalpha(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L))
47 #define isupper(c) ((_ctype_+1)[(unsigned char)(c)]&_U)
48 #define islower(c) ((_ctype_+1)[(unsigned char)(c)]&_L)
49 #define isdigit(c) ((_ctype_+1)[(unsigned char)(c)]&_N)
50 #define isxdigit(c) ((_ctype_+1)[(unsigned char)(c)]&(_X|_N))
51 #define isspace(c) ((_ctype_+1)[(unsigned char)(c)]&_S)
52 #define ispunct(c) ((_ctype_+1)[(unsigned char)(c)]&_P)
53 #define isalnum(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L|_N))
54 #define isprint(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N|_B))
55 #define isgraph(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N))
56 #define iscntrl(c) ((_ctype_+1)[(unsigned char)(c)]&_C)
57 /* Non-gcc versions will get the library versions, and will be
58 slightly slower */
59 #ifdef __GNUC__
60 # define toupper(c) \
61 __extension__ ({ int __x = (unsigned char) (c); islower(__x) ? (__x - 'a' + 'A') : __x;})
62 # define tolower(c) \
63 __extension__ ({ int __x = (unsigned char) (c); isupper(__x) ? (__x - 'A' + 'a') : __x;})
64 #endif
65 #endif /* !__cplusplus */
67 #ifndef __STRICT_ANSI__
68 #define isascii(c) ((unsigned char)(c)<=0177)
69 #define toascii(c) ((c)&0177)
70 #endif
72 #ifdef __cplusplus
74 #endif
75 #endif /* _CTYPE_H_ */