Add support for BIONIC C library (Android). Patch from Dan Albert
Change-Id: I9ead4d8a1d16e71d57fdc7696457cfcc3de4f713 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@212724 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
committed by
Dan Albert
parent
3bfb9441d6
commit
e45cf3e8b5
@@ -17,49 +17,173 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <xlocale.h>
|
||||
|
||||
#define isalnum_l(c, locale) isalnum(c)
|
||||
#define isalpha_l(c, locale) isalpha(c)
|
||||
#define isascii_l(c, locale) isascii(c)
|
||||
#define isblank_l(c, locale) isblank(c)
|
||||
#define iscntrl_l(c, locale) iscntrl(c)
|
||||
#define isdigit_l(c, locale) isdigit(c)
|
||||
#define isgraph_l(c, locale) isgraph(c)
|
||||
#define islower_l(c, locale) islower(c)
|
||||
#define isprint_l(c, locale) isprint(c)
|
||||
#define ispunct_l(c, locale) ispunct(c)
|
||||
#define isspace_l(c, locale) isspace(c)
|
||||
#define isupper_l(c, locale) isupper(c)
|
||||
#define isxdigit_l(c, locale) isxdigit(c)
|
||||
#define iswalnum_l(c, locale) iswalnum(c)
|
||||
#define iswalpha_l(c, locale) iswalpha(c)
|
||||
#define iswascii_l(c, locale) iswascii(c)
|
||||
#define iswblank_l(c, locale) iswblank(c)
|
||||
#define iswcntrl_l(c, locale) iswcntrl(c)
|
||||
#define iswdigit_l(c, locale) iswdigit(c)
|
||||
#define iswgraph_l(c, locale) iswgraph(c)
|
||||
#define iswlower_l(c, locale) iswlower(c)
|
||||
#define iswprint_l(c, locale) iswprint(c)
|
||||
#define iswpunct_l(c, locale) iswpunct(c)
|
||||
#define iswspace_l(c, locale) iswspace(c)
|
||||
#define iswupper_l(c, locale) iswupper(c)
|
||||
#define iswxdigit_l(c, locale) iswxdigit(c)
|
||||
#define toupper_l(c, locale) toupper(c)
|
||||
#define tolower_l(c, locale) tolower(c)
|
||||
#define towupper_l(c, locale) towupper(c)
|
||||
#define towlower_l(c, locale) towlower(c)
|
||||
#define strcoll_l(s1, s2, locale) strcoll(s1, s2)
|
||||
#define strxfrm_l(dest, src, n, locale) strxfrm(dest, src, n)
|
||||
#define strftime_l(s, max, format, tm, locale) strftime(s, max, format, tm)
|
||||
#define wcscoll_l(s1, s2, locale) wcscoll(s1, s2)
|
||||
#define wcsxfrm_l(dest, src, n, locale) wcsxfrm(dest, src, n)
|
||||
#define strtold_l(nptr, endptr, locale) strtold(nptr, endptr)
|
||||
#define strtoll_l(nptr, endptr, base, locale) strtoll(nptr, endptr, base)
|
||||
#define strtoull_l(nptr, endptr, base, locale) strtoull(nptr, endptr, base)
|
||||
#define wcstoll_l(nptr, endptr, locale) wcstoll(nptr, endptr)
|
||||
#define wcstoull_l(nptr, endptr, locale) wcstoull(nptr, endptr)
|
||||
#define wcstold_l(nptr, endptr, locale) wcstold(nptr, endptr)
|
||||
static inline int isalnum_l(int c, locale_t) {
|
||||
return isalnum(c);
|
||||
}
|
||||
|
||||
static inline int isalpha_l(int c, locale_t) {
|
||||
return isalpha(c);
|
||||
}
|
||||
|
||||
static inline int isblank_l(int c, locale_t) {
|
||||
return isblank(c);
|
||||
}
|
||||
|
||||
static inline int iscntrl_l(int c, locale_t) {
|
||||
return iscntrl(c);
|
||||
}
|
||||
|
||||
static inline int isdigit_l(int c, locale_t) {
|
||||
return isdigit(c);
|
||||
}
|
||||
|
||||
static inline int isgraph_l(int c, locale_t) {
|
||||
return isgraph(c);
|
||||
}
|
||||
|
||||
static inline int islower_l(int c, locale_t) {
|
||||
return islower(c);
|
||||
}
|
||||
|
||||
static inline int isprint_l(int c, locale_t) {
|
||||
return isprint(c);
|
||||
}
|
||||
|
||||
static inline int ispunct_l(int c, locale_t) {
|
||||
return ispunct(c);
|
||||
}
|
||||
|
||||
static inline int isspace_l(int c, locale_t) {
|
||||
return isspace(c);
|
||||
}
|
||||
|
||||
static inline int isupper_l(int c, locale_t) {
|
||||
return isupper(c);
|
||||
}
|
||||
|
||||
static inline int isxdigit_l(int c, locale_t) {
|
||||
return isxdigit(c);
|
||||
}
|
||||
|
||||
static inline int iswalnum_l(wint_t c, locale_t) {
|
||||
return iswalnum(c);
|
||||
}
|
||||
|
||||
static inline int iswalpha_l(wint_t c, locale_t) {
|
||||
return iswalpha(c);
|
||||
}
|
||||
|
||||
static inline int iswblank_l(wint_t c, locale_t) {
|
||||
return iswblank(c);
|
||||
}
|
||||
|
||||
static inline int iswcntrl_l(wint_t c, locale_t) {
|
||||
return iswcntrl(c);
|
||||
}
|
||||
|
||||
static inline int iswdigit_l(wint_t c, locale_t) {
|
||||
return iswdigit(c);
|
||||
}
|
||||
|
||||
static inline int iswgraph_l(wint_t c, locale_t) {
|
||||
return iswgraph(c);
|
||||
}
|
||||
|
||||
static inline int iswlower_l(wint_t c, locale_t) {
|
||||
return iswlower(c);
|
||||
}
|
||||
|
||||
static inline int iswprint_l(wint_t c, locale_t) {
|
||||
return iswprint(c);
|
||||
}
|
||||
|
||||
static inline int iswpunct_l(wint_t c, locale_t) {
|
||||
return iswpunct(c);
|
||||
}
|
||||
|
||||
static inline int iswspace_l(wint_t c, locale_t) {
|
||||
return iswspace(c);
|
||||
}
|
||||
|
||||
static inline int iswupper_l(wint_t c, locale_t) {
|
||||
return iswupper(c);
|
||||
}
|
||||
|
||||
static inline int iswxdigit_l(wint_t c, locale_t) {
|
||||
return iswxdigit(c);
|
||||
}
|
||||
|
||||
static inline int toupper_l(int c, locale_t) {
|
||||
return toupper(c);
|
||||
}
|
||||
|
||||
static inline int tolower_l(int c, locale_t) {
|
||||
return tolower(c);
|
||||
}
|
||||
|
||||
static inline int towupper_l(int c, locale_t) {
|
||||
return towupper(c);
|
||||
}
|
||||
|
||||
static inline int towlower_l(int c, locale_t) {
|
||||
return towlower(c);
|
||||
}
|
||||
|
||||
static inline int strcoll_l(const char *s1, const char *s2, locale_t) {
|
||||
return strcoll(s1, s2);
|
||||
}
|
||||
|
||||
static inline size_t strxfrm_l(char *dest, const char *src, size_t n,
|
||||
locale_t) {
|
||||
return strxfrm(dest, src, n);
|
||||
}
|
||||
|
||||
static inline size_t strftime_l(char *s, size_t max, const char *format,
|
||||
const struct tm *tm, locale_t) {
|
||||
return strftime(s, max, format, tm);
|
||||
}
|
||||
|
||||
static inline int wcscoll_l(const wchar_t *ws1, const wchar_t *ws2, locale_t) {
|
||||
return wcscoll(ws1, ws2);
|
||||
}
|
||||
|
||||
static inline size_t wcsxfrm_l(wchar_t *dest, const wchar_t *src, size_t n,
|
||||
locale_t) {
|
||||
return wcsxfrm(dest, src, n);
|
||||
}
|
||||
|
||||
static inline long double strtold_l(const char *nptr, char **endptr, locale_t) {
|
||||
return strtold(nptr, endptr);
|
||||
}
|
||||
|
||||
static inline long long strtoll_l(const char *nptr, char **endptr, size_t base,
|
||||
locale_t) {
|
||||
return strtoll(nptr, endptr, base);
|
||||
}
|
||||
|
||||
static inline unsigned long long strtoull_l(const char *nptr, char **endptr,
|
||||
size_t base, locale_t) {
|
||||
return strtoull(nptr, endptr, base);
|
||||
}
|
||||
|
||||
static inline long long wcstoll_l(const wchar_t *nptr, wchar_t **endptr,
|
||||
size_t base, locale_t) {
|
||||
return wcstoll(nptr, endptr, base);
|
||||
}
|
||||
|
||||
static inline unsigned long long wcstoull_l(const wchar_t *nptr,
|
||||
wchar_t **endptr, size_t base,
|
||||
locale_t) {
|
||||
return wcstoull(nptr, endptr, base);
|
||||
}
|
||||
|
||||
static inline long double wcstold_l(const wchar_t *nptr, wchar_t **endptr,
|
||||
locale_t) {
|
||||
return wcstold(nptr, endptr);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user