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 a decimal digit 14 * 15 * @v character ASCII character 16 * @ret is_digit Character is a decimal digit 17 */ isdigit(int character)18static inline int isdigit ( int character ) { 19 20 return ( ( character >= '0' ) && ( character <= '9' ) ); 21 } 22 23 /** 24 * Check if character is a hexadecimal digit 25 * 26 * @v character ASCII character 27 * @ret is_xdigit Character is a hexadecimal digit 28 */ isxdigit(int character)29static inline int isxdigit ( int character ) { 30 31 return ( ( ( character >= '0' ) && ( character <= '9' ) ) || 32 ( ( character >= 'A' ) && ( character <= 'F' ) ) || 33 ( ( character >= 'a' ) && ( character <= 'f' ) ) ); 34 } 35 36 /** 37 * Check if character is an upper-case letter 38 * 39 * @v character ASCII character 40 * @ret is_upper Character is an upper-case letter 41 */ isupper(int character)42static inline int isupper ( int character ) { 43 44 return ( ( character >= 'A' ) && ( character <= 'Z' ) ); 45 } 46 47 /** 48 * Check if character is a lower-case letter 49 * 50 * @v character ASCII character 51 * @ret is_lower Character is a lower-case letter 52 */ islower(int character)53static inline int islower ( int character ) { 54 55 return ( ( character >= 'a' ) && ( character <= 'z' ) ); 56 } 57 58 /** 59 * Check if character is alphabetic 60 * 61 * @v character ASCII character 62 * @ret is_alpha Character is alphabetic 63 */ isalpha(int character)64static inline int isalpha ( int character ) { 65 66 return ( isupper ( character ) || islower ( character ) ); 67 } 68 69 /** 70 * Check if character is alphanumeric 71 * 72 * @v character ASCII character 73 * @ret is_alnum Character is alphanumeric 74 */ isalnum(int character)75static inline int isalnum ( int character ) { 76 77 return ( isalpha ( character ) || isdigit ( character ) ); 78 } 79 80 /** 81 * Check if character is printable 82 * 83 * @v character ASCII character 84 * @ret is_print Character is printable 85 */ isprint(int character)86static inline int isprint ( int character ) { 87 88 return ( ( character >= ' ' ) && ( character <= '~' ) ); 89 } 90 91 /** 92 * Convert character to lower case 93 * 94 * @v character Character 95 * @v character Lower-case character 96 */ tolower(int character)97static inline int tolower ( int character ) { 98 99 return ( isupper ( character ) ? 100 ( character - 'A' + 'a' ) : character ); 101 } 102 103 /** 104 * Convert character to upper case 105 * 106 * @v character Character 107 * @v character Upper-case character 108 */ toupper(int character)109static inline int toupper ( int character ) { 110 111 return ( islower ( character ) ? 112 ( character - 'a' + 'A' ) : character ); 113 } 114 115 extern int isspace ( int character ); 116 117 #endif /* _CTYPE_H */ 118