1 // -*- C++ -*- 2 //===---------------------------- cctype ----------------------------------===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is dual licensed under the MIT and the University of Illinois Open 7 // Source Licenses. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef _LIBCPP_CCTYPE 12 #define _LIBCPP_CCTYPE 13 14 /* 15 cctype synopsis 16 17 namespace std 18 { 19 20 int isalnum(int c); 21 int isalpha(int c); 22 int isblank(int c); // C99 23 int iscntrl(int c); 24 int isdigit(int c); 25 int isgraph(int c); 26 int islower(int c); 27 int isprint(int c); 28 int ispunct(int c); 29 int isspace(int c); 30 int isupper(int c); 31 int isxdigit(int c); 32 int tolower(int c); 33 int toupper(int c); 34 35 } // std 36 */ 37 38 #include <__config> 39 #include <ctype.h> 40 #if defined(_LIBCPP_MSVCRT) 41 #include "support/win32/support.h" 42 #include "support/win32/locale_win32.h" 43 #endif // _LIBCPP_MSVCRT 44 45 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 46 #pragma GCC system_header 47 #endif 48 49 _LIBCPP_BEGIN_NAMESPACE_STD 50 51 #ifdef isalnum 52 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isalnum(int __c) {return isalnum(__c);} 53 #undef isalnum 54 inline _LIBCPP_INLINE_VISIBILITY int isalnum(int __c) {return __libcpp_isalnum(__c);} 55 #else // isalnum 56 using ::isalnum; 57 #endif // isalnum 58 59 #ifdef isalpha 60 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isalpha(int __c) {return isalpha(__c);} 61 #undef isalpha 62 inline _LIBCPP_INLINE_VISIBILITY int isalpha(int __c) {return __libcpp_isalpha(__c);} 63 #else // isalpha 64 using ::isalpha; 65 #endif // isalpha 66 67 #ifdef isblank 68 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isblank(int __c) {return isblank(__c);} 69 #undef isblank 70 inline _LIBCPP_INLINE_VISIBILITY int isblank(int __c) {return __libcpp_isblank(__c);} 71 #else // isblank 72 using ::isblank; 73 #endif // isblank 74 75 #ifdef iscntrl 76 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iscntrl(int __c) {return iscntrl(__c);} 77 #undef iscntrl 78 inline _LIBCPP_INLINE_VISIBILITY int iscntrl(int __c) {return __libcpp_iscntrl(__c);} 79 #else // iscntrl 80 using ::iscntrl; 81 #endif // iscntrl 82 83 #ifdef isdigit 84 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isdigit(int __c) {return isdigit(__c);} 85 #undef isdigit 86 inline _LIBCPP_INLINE_VISIBILITY int isdigit(int __c) {return __libcpp_isdigit(__c);} 87 #else // isdigit 88 using ::isdigit; 89 #endif // isdigit 90 91 #ifdef isgraph 92 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isgraph(int __c) {return isgraph(__c);} 93 #undef isgraph 94 inline _LIBCPP_INLINE_VISIBILITY int isgraph(int __c) {return __libcpp_isgraph(__c);} 95 #else // isgraph 96 using ::isgraph; 97 #endif // isgraph 98 99 #ifdef islower 100 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_islower(int __c) {return islower(__c);} 101 #undef islower 102 inline _LIBCPP_INLINE_VISIBILITY int islower(int __c) {return __libcpp_islower(__c);} 103 #else // islower 104 using ::islower; 105 #endif // islower 106 107 #ifdef isprint 108 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isprint(int __c) {return isprint(__c);} 109 #undef isprint 110 inline _LIBCPP_INLINE_VISIBILITY int isprint(int __c) {return __libcpp_isprint(__c);} 111 #else // isprint 112 using ::isprint; 113 #endif // isprint 114 115 #ifdef ispunct 116 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_ispunct(int __c) {return ispunct(__c);} 117 #undef ispunct 118 inline _LIBCPP_INLINE_VISIBILITY int ispunct(int __c) {return __libcpp_ispunct(__c);} 119 #else // ispunct 120 using ::ispunct; 121 #endif // ispunct 122 123 #ifdef isspace 124 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isspace(int __c) {return isspace(__c);} 125 #undef isspace 126 inline _LIBCPP_INLINE_VISIBILITY int isspace(int __c) {return __libcpp_isspace(__c);} 127 #else // isspace 128 using ::isspace; 129 #endif // isspace 130 131 #ifdef isupper 132 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isupper(int __c) {return isupper(__c);} 133 #undef isupper 134 inline _LIBCPP_INLINE_VISIBILITY int isupper(int __c) {return __libcpp_isupper(__c);} 135 #else // isupper 136 using ::isupper; 137 #endif // isupper 138 139 #ifdef isxdigit 140 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isxdigit(int __c) {return isxdigit(__c);} 141 #undef isxdigit 142 inline _LIBCPP_INLINE_VISIBILITY int isxdigit(int __c) {return __libcpp_isxdigit(__c);} 143 #else // isxdigit 144 using ::isxdigit; 145 #endif // isxdigit 146 147 #ifdef tolower 148 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_tolower(int __c) {return tolower(__c);} 149 #undef tolower 150 inline _LIBCPP_INLINE_VISIBILITY int tolower(int __c) {return __libcpp_tolower(__c);} 151 #else // tolower 152 using ::tolower; 153 #endif // tolower 154 155 #ifdef toupper 156 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_toupper(int __c) {return toupper(__c);} 157 #undef toupper 158 inline _LIBCPP_INLINE_VISIBILITY int toupper(int __c) {return __libcpp_toupper(__c);} 159 #else // toupper 160 using ::toupper; 161 #endif // toupper 162 163 _LIBCPP_END_NAMESPACE_STD 164 165 #endif // _LIBCPP_CCTYPE 166