1 // -*- C++ -*- 2 //===------------------- support/android/locale_bionic.h ------------------===// 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_SUPPORT_ANDROID_LOCALE_BIONIC_H 12 #define _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H 13 14 #if defined(__ANDROID__) 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #include <stdlib.h> 21 #include <xlocale.h> 22 23 static inline int isalnum_l(int c, locale_t) { 24 return isalnum(c); 25 } 26 27 static inline int isalpha_l(int c, locale_t) { 28 return isalpha(c); 29 } 30 31 static inline int isblank_l(int c, locale_t) { 32 return isblank(c); 33 } 34 35 static inline int iscntrl_l(int c, locale_t) { 36 return iscntrl(c); 37 } 38 39 static inline int isdigit_l(int c, locale_t) { 40 return isdigit(c); 41 } 42 43 static inline int isgraph_l(int c, locale_t) { 44 return isgraph(c); 45 } 46 47 static inline int islower_l(int c, locale_t) { 48 return islower(c); 49 } 50 51 static inline int isprint_l(int c, locale_t) { 52 return isprint(c); 53 } 54 55 static inline int ispunct_l(int c, locale_t) { 56 return ispunct(c); 57 } 58 59 static inline int isspace_l(int c, locale_t) { 60 return isspace(c); 61 } 62 63 static inline int isupper_l(int c, locale_t) { 64 return isupper(c); 65 } 66 67 static inline int isxdigit_l(int c, locale_t) { 68 return isxdigit(c); 69 } 70 71 static inline int iswalnum_l(wint_t c, locale_t) { 72 return iswalnum(c); 73 } 74 75 static inline int iswalpha_l(wint_t c, locale_t) { 76 return iswalpha(c); 77 } 78 79 static inline int iswblank_l(wint_t c, locale_t) { 80 return iswblank(c); 81 } 82 83 static inline int iswcntrl_l(wint_t c, locale_t) { 84 return iswcntrl(c); 85 } 86 87 static inline int iswdigit_l(wint_t c, locale_t) { 88 return iswdigit(c); 89 } 90 91 static inline int iswgraph_l(wint_t c, locale_t) { 92 return iswgraph(c); 93 } 94 95 static inline int iswlower_l(wint_t c, locale_t) { 96 return iswlower(c); 97 } 98 99 static inline int iswprint_l(wint_t c, locale_t) { 100 return iswprint(c); 101 } 102 103 static inline int iswpunct_l(wint_t c, locale_t) { 104 return iswpunct(c); 105 } 106 107 static inline int iswspace_l(wint_t c, locale_t) { 108 return iswspace(c); 109 } 110 111 static inline int iswupper_l(wint_t c, locale_t) { 112 return iswupper(c); 113 } 114 115 static inline int iswxdigit_l(wint_t c, locale_t) { 116 return iswxdigit(c); 117 } 118 119 static inline int toupper_l(int c, locale_t) { 120 return toupper(c); 121 } 122 123 static inline int tolower_l(int c, locale_t) { 124 return tolower(c); 125 } 126 127 static inline int towupper_l(int c, locale_t) { 128 return towupper(c); 129 } 130 131 static inline int towlower_l(int c, locale_t) { 132 return towlower(c); 133 } 134 135 static inline int strcoll_l(const char *s1, const char *s2, locale_t) { 136 return strcoll(s1, s2); 137 } 138 139 static inline size_t strxfrm_l(char *dest, const char *src, size_t n, 140 locale_t) { 141 return strxfrm(dest, src, n); 142 } 143 144 static inline size_t strftime_l(char *s, size_t max, const char *format, 145 const struct tm *tm, locale_t) { 146 return strftime(s, max, format, tm); 147 } 148 149 static inline int wcscoll_l(const wchar_t *ws1, const wchar_t *ws2, locale_t) { 150 return wcscoll(ws1, ws2); 151 } 152 153 static inline size_t wcsxfrm_l(wchar_t *dest, const wchar_t *src, size_t n, 154 locale_t) { 155 return wcsxfrm(dest, src, n); 156 } 157 158 static inline long double strtold_l(const char *nptr, char **endptr, locale_t) { 159 return strtold(nptr, endptr); 160 } 161 162 static inline long long strtoll_l(const char *nptr, char **endptr, size_t base, 163 locale_t) { 164 return strtoll(nptr, endptr, base); 165 } 166 167 static inline unsigned long long strtoull_l(const char *nptr, char **endptr, 168 size_t base, locale_t) { 169 return strtoull(nptr, endptr, base); 170 } 171 172 static inline long long wcstoll_l(const wchar_t *nptr, wchar_t **endptr, 173 size_t base, locale_t) { 174 return wcstoll(nptr, endptr, base); 175 } 176 177 static inline unsigned long long wcstoull_l(const wchar_t *nptr, 178 wchar_t **endptr, size_t base, 179 locale_t) { 180 return wcstoull(nptr, endptr, base); 181 } 182 183 static inline long double wcstold_l(const wchar_t *nptr, wchar_t **endptr, 184 locale_t) { 185 return wcstold(nptr, endptr); 186 } 187 188 #ifdef __cplusplus 189 } 190 #endif 191 #endif // defined(__ANDROID__) 192 #endif // _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H 193