iPXE
ctype.h
Go to the documentation of this file.
1 #ifndef _CTYPE_H
2 #define _CTYPE_H
3 
4 /** @file
5  *
6  * Character types
7  *
8  */
9 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 
12 /**
13  * Check if character is ASCII
14  *
15  * @v character Character
16  * @ret is_ascii Character is an ASCII character
17  */
18 static inline int isascii ( int character ) {
19 
20  return ( character <= '\x7f' );
21 }
22 
23 /**
24  * Check if character is a decimal digit
25  *
26  * @v character ASCII character
27  * @ret is_digit Character is a decimal digit
28  */
29 static inline int isdigit ( int character ) {
30 
31  return ( ( character >= '0' ) && ( character <= '9' ) );
32 }
33 
34 /**
35  * Check if character is a hexadecimal digit
36  *
37  * @v character ASCII character
38  * @ret is_xdigit Character is a hexadecimal digit
39  */
40 static inline int isxdigit ( int character ) {
41 
42  return ( ( ( character >= '0' ) && ( character <= '9' ) ) ||
43  ( ( character >= 'A' ) && ( character <= 'F' ) ) ||
44  ( ( character >= 'a' ) && ( character <= 'f' ) ) );
45 }
46 
47 /**
48  * Check if character is an upper-case letter
49  *
50  * @v character ASCII character
51  * @ret is_upper Character is an upper-case letter
52  */
53 static inline int isupper ( int character ) {
54 
55  return ( ( character >= 'A' ) && ( character <= 'Z' ) );
56 }
57 
58 /**
59  * Check if character is a lower-case letter
60  *
61  * @v character ASCII character
62  * @ret is_lower Character is a lower-case letter
63  */
64 static inline int islower ( int character ) {
65 
66  return ( ( character >= 'a' ) && ( character <= 'z' ) );
67 }
68 
69 /**
70  * Check if character is alphabetic
71  *
72  * @v character ASCII character
73  * @ret is_alpha Character is alphabetic
74  */
75 static inline int isalpha ( int character ) {
76 
77  return ( isupper ( character ) || islower ( character ) );
78 }
79 
80 /**
81  * Check if character is alphanumeric
82  *
83  * @v character ASCII character
84  * @ret is_alnum Character is alphanumeric
85  */
86 static inline int isalnum ( int character ) {
87 
88  return ( isalpha ( character ) || isdigit ( character ) );
89 }
90 
91 /**
92  * Check if character is printable
93  *
94  * @v character ASCII character
95  * @ret is_print Character is printable
96  */
97 static inline int isprint ( int character ) {
98 
99  return ( ( character >= ' ' ) && ( character <= '~' ) );
100 }
101 
102 /**
103  * Convert character to lower case
104  *
105  * @v character Character
106  * @v character Lower-case character
107  */
108 static inline int tolower ( int character ) {
109 
110  return ( isupper ( character ) ?
111  ( character - 'A' + 'a' ) : character );
112 }
113 
114 /**
115  * Convert character to upper case
116  *
117  * @v character Character
118  * @v character Upper-case character
119  */
120 static inline int toupper ( int character ) {
121 
122  return ( islower ( character ) ?
123  ( character - 'a' + 'A' ) : character );
124 }
125 
126 extern int isspace ( int character );
127 
128 #endif /* _CTYPE_H */
static int isxdigit(int character)
Check if character is a hexadecimal digit.
Definition: ctype.h:40
static int isascii(int character)
Check if character is ASCII.
Definition: ctype.h:18
static int isalpha(int character)
Check if character is alphabetic.
Definition: ctype.h:75
static int isprint(int character)
Check if character is printable.
Definition: ctype.h:97
static int toupper(int character)
Convert character to upper case.
Definition: ctype.h:120
static int isdigit(int character)
Check if character is a decimal digit.
Definition: ctype.h:29
static int islower(int character)
Check if character is a lower-case letter.
Definition: ctype.h:64
static int isalnum(int character)
Check if character is alphanumeric.
Definition: ctype.h:86
static int tolower(int character)
Convert character to lower case.
Definition: ctype.h:108
int isspace(int character)
Check to see if character is a space.
Definition: ctype.c:41
static int isupper(int character)
Check if character is an upper-case letter.
Definition: ctype.h:53
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)