VSF Documented
ctype.h
Go to the documentation of this file.
1#ifndef __SIMPLE_LIBC_CTYPE_H__
2#define __SIMPLE_LIBC_CTYPE_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7#else
8#endif
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#define CTYPE_U 0x01 // upper
15#define CTYPE_L 0x02 // lower
16#define CTYPE_N 0x04 // numeric
17#define CTYPE_S 0x08 // white space(space/lf/tab)
18#define CTYPE_P 0x10 // punct
19#define CTYPE_C 0x20 // control
20#define CTYPE_X 0x40 // hex
21#define CTYPE_B 0x80 // space
22#define CTYPE_SP (CTYPE_S | CTYPE_P)
23
24#if VSF_LINUX_APPLET_USE_LIBC_CTYPE == ENABLED
27
30# ifndef __VSF_APPLET__
32# endif
33#endif
34
35extern const char __vsf_linux_ctype[1 + 256];
36#define __ismask(__x) (__vsf_linux_ctype[(int)(unsigned char)(__x) + 1])
37
38static inline int isalnum(int c)
39{
40 return ((__ismask(c) & (CTYPE_U|CTYPE_L|CTYPE_N)) != 0);
41}
42
43static inline int isalpha(int c)
44{
45 return ((__ismask(c) & (CTYPE_U|CTYPE_L)) != 0);
46}
47static inline int iscntrl(int c)
48{
49 return ((__ismask(c) & (CTYPE_C)) != 0);
50}
51static inline int isdigit(int c)
52{
53 return ((__ismask(c) & (CTYPE_N)) != 0);
54}
55static inline int isgraph(int c)
56{
57 return ((__ismask(c) & (CTYPE_P|CTYPE_U|CTYPE_L|CTYPE_N)) != 0);
58}
59static inline int islower(int c)
60{
61 return ((__ismask(c) & (CTYPE_L)) != 0);
62}
63static inline int isprint(int c)
64{
65 return ((__ismask(c) & (CTYPE_P|CTYPE_U|CTYPE_L|CTYPE_N|CTYPE_SP)) != 0);
66}
67static inline int ispunct(int c)
68{
69 return ((__ismask(c) & (CTYPE_P)) != 0);
70}
71static inline int isspace(int c)
72{
73 return ((__ismask(c) & (CTYPE_S)) != 0);
74}
75static inline int isupper(int c)
76{
77 return ((__ismask(c) & (CTYPE_U)) != 0);
78}
79static inline int isxdigit(int c)
80{
81 return ((__ismask(c) & (CTYPE_N|CTYPE_X)) != 0);
82}
83static inline int isblank(int c)
84{
85 return ((__ismask(c) & (CTYPE_B)) != 0);
86}
87
88static inline int isascii(int c)
89{
90 return (((unsigned char)(c))<=0x7f);
91}
92static inline int toascii(int c)
93{
94 return (((unsigned char)(c))&0x7f);
95}
96
97static inline int tolower(int c)
98{
99 if (isupper(c)) {
100 c -= 'A'-'a';
101 }
102 return c;
103}
104
105static inline int toupper(int c)
106{
107 if (islower(c)) {
108 c -= 'a'-'A';
109 }
110 return c;
111}
112
113#ifdef __WIN__
114#define _CONTROL CTYPE_C
115#define _SPACE CTYPE_S
116#define _DIGIT CTYPE_N
117#define _LOWER CTYPE_L
118#define _PUNCT CTYPE_P
119#define _BLANK CTYPE_B
120#define _UPPER CTYPE_U
121#define _HEX CTYPE_X
122#endif
123
124#ifdef __cplusplus
125}
126#endif
127
128#endif
__VSF_VPLT_DECORATOR__ vsf_linux_libc_ctype_vplt_t vsf_linux_libc_ctype_vplt
Definition vsf_linux_glibc_ctype.c:61
#define CTYPE_S
Definition ctype.h:17
#define CTYPE_N
Definition ctype.h:16
#define CTYPE_C
Definition ctype.h:19
const char __vsf_linux_ctype[1+256]
Definition vsf_linux_glibc_ctype.c:40
#define __ismask(__x)
Definition ctype.h:36
#define CTYPE_SP
Definition ctype.h:22
#define CTYPE_P
Definition ctype.h:18
#define CTYPE_L
Definition ctype.h:15
#define CTYPE_B
Definition ctype.h:21
#define CTYPE_X
Definition ctype.h:20
#define CTYPE_U
Definition ctype.h:14
Definition ctype.h:25
vsf_vplt_info_t info
Definition ctype.h:26
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__vsf_linux_ctype)
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93