Initial commit
[lnanohtmltiledmap.git] / ulinux / utils / ascii / ascii.h
blob31970b08032d75898b81ac00bd297ac8d31bf8e7
1 #ifndef ULINUX_UTILS_ASCII_ASCII_H
2 #define ULINUX_UTILS_ASCII_ASCII_H
3 /*
4 * this code is protected by the GNU affero GPLv3
5 * author:Sylvain BERTRAND
6 */
7 #define ulinux_dec2ut_blk ulinux_dec2u8
8 #define ulinux_dec2us_blk ulinux_dec2u16_blk
9 #define ulinux_dec2us ulinux_dec2u16
10 #if BITS_PER_LONG==64
11 #define ulinux_dec2ul_blk ulinux_dec2u64_blk
12 #define ulinux_dec2ul ulinux_dec2u64
13 #else
14 #define ulinux_dec2ul_blk ulinux_dec2u32_blk
15 #define ulinux_dec2ul ulinux_dec2u32
16 #endif
17 #define ulinux_dec2ull_blk ulinux_dec2u64_blk
18 #define ulinux_dec2ull ulinux_dec2u64
20 /* XXX:may use linux ctype ascii table */
21 static inline bool ulinux_is_digit(ulinux_u8 c)
23 if ('0' <= c && c<= '9')
24 return true;
25 return false;
28 static inline bool ulinux_is_alnum(ulinux_u8 c)
30 if ('0' <= c && c <= '9')
31 return true;
32 if ('A' <= c && c <= 'Z')
33 return true;
34 if ('a' <= c && c <= 'z')
35 return true;
36 return false;
39 static inline bool ulinux_is_lower(ulinux_u8 c)
41 if ('a' <= c && c <= 'z')
42 return true;
43 return false;
46 static inline bool ulinux_is_upper(ulinux_u8 c)
48 if ('A' <= c && c <= 'Z')
49 return true;
50 return false;
53 static inline bool ulinux_is_alpha(ulinux_u8 c)
55 if ('A' <= c && c <= 'Z')
56 return true;
57 if ('a' <= c && c<= 'z')
58 return true;
59 return false;
62 static inline bool ulinux_is_blank(ulinux_u8 c)
64 if (c == ' ' || c == '\t')
65 return true;
66 return false;
69 static inline bool ulinux_is_space(ulinux_u8 c)
71 /* see ascii table */
72 if ( ('\t' <= c && c <= '\r') || (c == ' '))
73 return true;
74 return false;
77 static inline bool ulinux_is_xdigit(ulinux_u8 c)
79 if ('0' <= c && c <= '9')
80 return true;
81 if ('A' <= c && c <= 'F')
82 return true;
83 if ('a' <= c && c <= 'f')
84 return true;
85 return false;
88 static inline bool ulinux_is_cntrl(ulinux_u8 c)
90 if (c <= 0x1f || c == 0x7f)
91 return true;
92 return false;
95 static inline bool ulinux_is_punct(ulinux_u8 c)
97 if (('!' <= c && c <= '/') || (':' <= c && c <= '@')
98 || ('[' <= c && c <= '`') || ('{' <= c && c <= '~'))
99 return true;
100 return false;
103 /* XXX: send back the base ascii char and not a boolean ! */
104 static inline ulinux_u8 ulinux_is_hex(ulinux_u8 c)
106 if ('0' <= c && c <= '9')
107 return '0';
108 if ('A' <= c && c <= 'F')
109 return 'A';
110 if ('a' <= c && c <= 'z')
111 return 'a';
112 return 0;
115 static inline bool ulinux_is_print(ulinux_u8 c)
117 if (' ' <= c && c <= '~')
118 return true;
119 return false;
122 static inline bool ulinux_is_graph(ulinux_u8 c)
124 if ('!' <= c && c <= '~')
125 return true;
126 return false;
129 static inline ulinux_u8 ulinux_2upper(ulinux_u8 c)
131 if (ulinux_is_lower(c))
132 c &= ~0x20;
133 return c;
136 static inline ulinux_u8 ulinux_2lower(ulinux_u8 c)
138 if (ulinux_is_upper(c))
139 c |= 0x20;
140 return c;
142 #endif