OLD | NEW |
(Empty) | |
| 1 //////////////////////////////////////////////////////////////////////////////// |
| 2 // Minimal xlocale implementation for Solaris. This implements the subset of |
| 3 // the xlocale APIs that libc++ depends on. |
| 4 //////////////////////////////////////////////////////////////////////////////// |
| 5 #ifndef __XLOCALE_H_INCLUDED |
| 6 #define __XLOCALE_H_INCLUDED |
| 7 |
| 8 #ifdef __cplusplus |
| 9 extern "C" { |
| 10 #endif |
| 11 |
| 12 |
| 13 typedef struct _LC_locale_t* locale_t; |
| 14 |
| 15 #define LC_COLLATE_MASK (1<<0) |
| 16 #define LC_CTYPE_MASK (1<<1) |
| 17 #define LC_MESSAGES_MASK (1<<2) |
| 18 #define LC_MONETARY_MASK (1<<3) |
| 19 #define LC_NUMERIC_MASK (1<<4) |
| 20 #define LC_TIME_MASK (1<<5) |
| 21 #define LC_ALL_MASK (LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MESSAGES_MASK | \ |
| 22 LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK) |
| 23 |
| 24 #define LC_GLOBAL_LOCALE ((locale_t)-1) |
| 25 |
| 26 size_t __mb_cur_max(locale_t l); |
| 27 #define MB_CUR_MAX_L(l) __mb_cur_max(l) |
| 28 |
| 29 locale_t newlocale(int mask, const char * locale, locale_t base); |
| 30 void freelocale(locale_t loc); |
| 31 |
| 32 wint_t btowc_l(int __c, locale_t __l); |
| 33 |
| 34 int wctob_l(wint_t __c, locale_t __l); |
| 35 |
| 36 size_t wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l); |
| 37 |
| 38 size_t mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, |
| 39 mbstate_t *__ps, locale_t __l); |
| 40 |
| 41 int mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l); |
| 42 |
| 43 size_t mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l); |
| 44 |
| 45 struct lconv *localeconv_l(locale_t __l); |
| 46 |
| 47 size_t mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, |
| 48 mbstate_t *__ps, locale_t __l); |
| 49 |
| 50 int sprintf_l(char *__s, locale_t __l, const char *__format, ...); |
| 51 |
| 52 int snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...); |
| 53 |
| 54 int asprintf_l(char **__s, locale_t __l, const char *__format, ...); |
| 55 |
| 56 int sscanf_l(const char *__s, locale_t __l, const char *__format, ...); |
| 57 |
| 58 int isalnum_l(int,locale_t); |
| 59 int isalpha_l(int,locale_t); |
| 60 int isblank_l(int,locale_t); |
| 61 int iscntrl_l(int,locale_t); |
| 62 int isdigit_l(int,locale_t); |
| 63 int isgraph_l(int,locale_t); |
| 64 int islower_l(int,locale_t); |
| 65 int isprint_l(int,locale_t); |
| 66 int ispunct_l(int,locale_t); |
| 67 int isspace_l(int,locale_t); |
| 68 int isupper_l(int,locale_t); |
| 69 int isxdigit_l(int,locale_t); |
| 70 |
| 71 int iswalnum_l(wchar_t,locale_t); |
| 72 int iswalpha_l(wchar_t,locale_t); |
| 73 int iswblank_l(wchar_t,locale_t); |
| 74 int iswcntrl_l(wchar_t,locale_t); |
| 75 int iswdigit_l(wchar_t,locale_t); |
| 76 int iswgraph_l(wchar_t,locale_t); |
| 77 int iswlower_l(wchar_t,locale_t); |
| 78 int iswprint_l(wchar_t,locale_t); |
| 79 int iswpunct_l(wchar_t,locale_t); |
| 80 int iswspace_l(wchar_t,locale_t); |
| 81 int iswupper_l(wchar_t,locale_t); |
| 82 int iswxdigit_l(wchar_t,locale_t); |
| 83 |
| 84 int iswctype_l(wint_t, wctype_t, locale_t); |
| 85 |
| 86 int toupper_l(int __c, locale_t __l); |
| 87 int tolower_l(int __c, locale_t __l); |
| 88 wint_t towupper_l(wint_t __c, locale_t __l); |
| 89 wint_t towlower_l(wint_t __c, locale_t __l); |
| 90 |
| 91 |
| 92 int strcoll_l(const char *__s1, const char *__s2, locale_t __l); |
| 93 int wcscoll_l(const wchar_t *__s1, const wchar_t *__s2, locale_t __l); |
| 94 size_t strftime_l(char *__s, size_t __size, const char *__fmt, const struct tm |
| 95 *__tm, locale_t __l); |
| 96 |
| 97 size_t strxfrm_l(char *__s1, const char *__s2, size_t __n, locale_t __l); |
| 98 |
| 99 size_t wcsxfrm_l(wchar_t *__ws1, const wchar_t *__ws2, size_t __n, |
| 100 locale_t __l); |
| 101 |
| 102 |
| 103 |
| 104 size_t |
| 105 mbsnrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src, |
| 106 size_t nms, size_t len, mbstate_t * __restrict ps, locale_t loc); |
| 107 |
| 108 |
| 109 size_t |
| 110 wcsnrtombs_l(char * __restrict dst, const wchar_t ** __restrict src, |
| 111 size_t nwc, size_t len, mbstate_t * __restrict ps, locale_t loc); |
| 112 |
| 113 locale_t __cloc(void); |
| 114 |
| 115 // FIXME: These are quick-and-dirty hacks to make things pretend to work |
| 116 static inline |
| 117 long long strtoll_l(const char *__nptr, char **__endptr, |
| 118 int __base, locale_t __loc) { |
| 119 return strtoll(__nptr, __endptr, __base); |
| 120 } |
| 121 static inline |
| 122 long strtol_l(const char *__nptr, char **__endptr, |
| 123 int __base, locale_t __loc) { |
| 124 return strtol(__nptr, __endptr, __base); |
| 125 } |
| 126 static inline |
| 127 long double strtold_l(const char *__nptr, char **__endptr, |
| 128 locale_t __loc) { |
| 129 return strtold(__nptr, __endptr); |
| 130 } |
| 131 static inline |
| 132 unsigned long long strtoull_l(const char *__nptr, char **__endptr, |
| 133 int __base, locale_t __loc) { |
| 134 return strtoull(__nptr, __endptr, __base); |
| 135 } |
| 136 static inline |
| 137 unsigned long strtoul_l(const char *__nptr, char **__endptr, |
| 138 int __base, locale_t __loc) { |
| 139 return strtoul(__nptr, __endptr, __base); |
| 140 } |
| 141 |
| 142 #ifdef __cplusplus |
| 143 } |
| 144 #endif |
| 145 |
| 146 #endif |
OLD | NEW |