XenevaOS
Loading...
Searching...
No Matches
XenevaOS
BaseHdr
linux
ctype.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#ifndef _LINUX_CTYPE_H
3
#define _LINUX_CTYPE_H
4
5
#include <
linux/compiler.h
>
6
7
/*
8
* NOTE! This ctype does not handle EOF like the standard C
9
* library is required to.
10
*/
11
12
#define _U 0x01
/* upper */
13
#define _L 0x02
/* lower */
14
#define _D 0x04
/* digit */
15
#define _C 0x08
/* cntrl */
16
#define _P 0x10
/* punct */
17
#define _S 0x20
/* white space (space/lf/tab) */
18
#define _X 0x40
/* hex digit */
19
#define _SP 0x80
/* hard space (0x20) */
20
21
extern
const
unsigned
char
_ctype
[];
22
23
#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
24
25
#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
26
#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
27
#define iscntrl(c) ((__ismask(c)&(_C)) != 0)
28
#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0)
29
#define islower(c) ((__ismask(c)&(_L)) != 0)
30
#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
31
#define ispunct(c) ((__ismask(c)&(_P)) != 0)
32
/* Note: isspace() must return false for %NUL-terminator */
33
#define isspace(c) ((__ismask(c)&(_S)) != 0)
34
#define isupper(c) ((__ismask(c)&(_U)) != 0)
35
#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0)
36
37
#define isascii(c) (((unsigned char)(c))<=0x7f)
38
#define toascii(c) (((unsigned char)(c))&0x7f)
39
40
#if __has_builtin(__builtin_isdigit)
41
#define isdigit(c) __builtin_isdigit(c)
42
#else
43
static
inline
int
isdigit
(
int
c)
44
{
45
return
'0'
<= c && c <=
'9'
;
46
}
47
#endif
48
49
static
inline
unsigned
char
__tolower(
unsigned
char
c)
50
{
51
if
(
isupper
(c))
52
c -=
'A'
-
'a'
;
53
return
c;
54
}
55
56
static
inline
unsigned
char
__toupper(
unsigned
char
c)
57
{
58
if
(
islower
(c))
59
c -=
'a'
-
'A'
;
60
return
c;
61
}
62
63
#define tolower(c) __tolower(c)
64
#define toupper(c) __toupper(c)
65
66
/*
67
* Fast implementation of tolower() for internal usage. Do not use in your
68
* code.
69
*/
70
static
inline
char
_tolower(
const
char
c)
71
{
72
return
c | 0x20;
73
}
74
75
/* Fast check for octal digit */
76
static
inline
int
isodigit(
const
char
c)
77
{
78
return
c >=
'0'
&& c <=
'7'
;
79
}
80
81
#endif
_ctype
const unsigned char _ctype[]
islower
#define islower(c)
Definition
acclib.h:180
isdigit
#define isdigit(c)
Definition
acclib.h:176
isupper
#define isupper(c)
Definition
acclib.h:179
compiler.h
Generated by
1.9.8