refactor headers, especially alltypes.h, and improve C++ ABI compat
[musl] / include / wctype.h
index ee5be7c..5640edd 100644 (file)
@@ -5,8 +5,9 @@
 extern "C" {
 #endif
 
+#include <features.h>
+
 #define __NEED_wint_t
-#define __NEED_wctrans_t
 #define __NEED_wctype_t
 
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
@@ -16,6 +17,8 @@ extern "C" {
 
 #include <bits/alltypes.h>
 
+typedef const int * wctrans_t;
+
 #undef WEOF
 #define WEOF (-1)
 
@@ -43,6 +46,30 @@ wctype_t  wctype(const char *);
 #undef iswdigit
 #define iswdigit(a) (((unsigned)(a)-L'0') < 10)
 
+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
+
+int iswalnum_l(wint_t, locale_t);
+int iswalpha_l(wint_t, locale_t);
+int iswblank_l(wint_t, locale_t);
+int iswcntrl_l(wint_t, locale_t);
+int iswdigit_l(wint_t, locale_t);
+int iswgraph_l(wint_t, locale_t);
+int iswlower_l(wint_t, locale_t);
+int iswprint_l(wint_t, locale_t);
+int iswpunct_l(wint_t, locale_t);
+int iswspace_l(wint_t, locale_t);
+int iswupper_l(wint_t, locale_t);
+int iswxdigit_l(wint_t, locale_t);
+int iswctype_l(wint_t, wctype_t, locale_t);
+wint_t towlower_l(wint_t, locale_t);
+wint_t towupper_l(wint_t, locale_t);
+wint_t towctrans_l(wint_t, wctrans_t, locale_t);
+wctrans_t wctrans_l(const char *, locale_t);
+wctype_t  wctype_l(const char *, locale_t);
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif