30 #pragma GCC system_header
34 #if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
47 #include_next <wchar.h>
54 #define _GL_ALREADY_INCLUDING_WCHAR_H
57 # include <features.h>
67 #if !(defined __GLIBC__ && !defined __UCLIBC__)
79 # include_next <wchar.h>
82 #undef _GL_ALREADY_INCLUDING_WCHAR_H
89 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
90 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
92 # define _GL_ATTRIBUTE_PURE
160 #if defined __cplusplus
161 # define _GL_EXTERN_C extern "C"
163 # define _GL_EXTERN_C extern
173 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
174 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
175 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
176 _GL_EXTERN_C rettype rpl_func parameters_and_attributes
185 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
186 _GL_EXTERN_C rettype func parameters_and_attributes
194 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
195 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
196 #if defined __cplusplus && defined GNULIB_NAMESPACE
197 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
198 namespace GNULIB_NAMESPACE \
200 rettype (*const func) parameters = ::rpl_func; \
202 _GL_EXTERN_C int _gl_cxxalias_dummy
204 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
205 _GL_EXTERN_C int _gl_cxxalias_dummy
213 #if defined __cplusplus && defined GNULIB_NAMESPACE
214 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
215 namespace GNULIB_NAMESPACE \
217 rettype (*const func) parameters = \
218 reinterpret_cast<rettype(*)parameters>(::rpl_func); \
220 _GL_EXTERN_C int _gl_cxxalias_dummy
222 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
223 _GL_EXTERN_C int _gl_cxxalias_dummy
233 #if defined __cplusplus && defined GNULIB_NAMESPACE
240 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
241 namespace GNULIB_NAMESPACE \
243 static rettype (*func) parameters = ::func; \
245 _GL_EXTERN_C int _gl_cxxalias_dummy
247 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
248 _GL_EXTERN_C int _gl_cxxalias_dummy
256 #if defined __cplusplus && defined GNULIB_NAMESPACE
257 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
258 namespace GNULIB_NAMESPACE \
260 static rettype (*func) parameters = \
261 reinterpret_cast<rettype(*)parameters>(::func); \
263 _GL_EXTERN_C int _gl_cxxalias_dummy
265 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
266 _GL_EXTERN_C int _gl_cxxalias_dummy
275 #if defined __cplusplus && defined GNULIB_NAMESPACE
281 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
282 namespace GNULIB_NAMESPACE \
284 static rettype (*func) parameters = \
285 reinterpret_cast<rettype(*)parameters>( \
286 (rettype2(*)parameters2)(::func)); \
288 _GL_EXTERN_C int _gl_cxxalias_dummy
290 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
291 _GL_EXTERN_C int _gl_cxxalias_dummy
298 #if defined __cplusplus && defined GNULIB_NAMESPACE
299 # define _GL_CXXALIASWARN(func) \
300 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
301 # define _GL_CXXALIASWARN_1(func,namespace) \
302 _GL_CXXALIASWARN_2 (func, namespace)
306 # define _GL_CXXALIASWARN_2(func,namespace) \
307 _GL_WARN_ON_USE (func, \
308 "The symbol ::" #func " refers to the system function. " \
309 "Use " #namespace "::" #func " instead.")
310 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
311 # define _GL_CXXALIASWARN_2(func,namespace) \
312 extern __typeof__ (func) func
314 # define _GL_CXXALIASWARN_2(func,namespace) \
315 _GL_EXTERN_C int _gl_cxxalias_dummy
318 # define _GL_CXXALIASWARN(func) \
319 _GL_EXTERN_C int _gl_cxxalias_dummy
325 #if defined __cplusplus && defined GNULIB_NAMESPACE
326 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
327 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
329 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
330 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
334 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
335 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
336 "The symbol ::" #func " refers to the system function. " \
337 "Use " #namespace "::" #func " instead.")
338 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
339 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
340 extern __typeof__ (func) func
342 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
343 _GL_EXTERN_C int _gl_cxxalias_dummy
346 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
347 _GL_EXTERN_C int _gl_cxxalias_dummy
356 #ifndef _GL_ARG_NONNULL
357 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
358 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
360 # define _GL_ARG_NONNULL(params)
365 #ifndef _GL_WARN_ON_USE
367 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
369 # define _GL_WARN_ON_USE(function, message) \
370 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
371 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
373 # define _GL_WARN_ON_USE(function, message) \
374 extern __typeof__ (function) function
376 # define _GL_WARN_ON_USE(function, message) \
377 _GL_WARN_EXTERN_C int _gl_warn_on_use
387 #ifndef _GL_WARN_ON_USE_CXX
388 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
389 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
390 extern rettype function parameters_and_attributes \
391 __attribute__ ((__warning__ (msg)))
392 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
394 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
395 extern rettype function parameters_and_attributes
397 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
398 _GL_WARN_EXTERN_C int _gl_warn_on_use
404 #ifndef _GL_WARN_EXTERN_C
405 # if defined __cplusplus
406 # define _GL_WARN_EXTERN_C extern "C"
408 # define _GL_WARN_EXTERN_C extern
414 #if !1 && !defined wint_t
423 # if defined _MSC_VER
424 # if !GNULIB_defined_wint_t
425 # include <crtdefs.h>
426 typedef unsigned int rpl_wint_t;
428 # define wint_t rpl_wint_t
429 # define GNULIB_defined_wint_t 1
433 # define WEOF ((wint_t) -1)
442 # if !GNULIB_defined_mbstate_t
443 typedef int rpl_mbstate_t;
445 # define mbstate_t rpl_mbstate_t
446 # define GNULIB_defined_mbstate_t 1
454 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
456 # define btowc rpl_btowc
467 #elif defined GNULIB_POSIXCHECK
469 # if HAVE_RAW_DECL_BTOWC
471 "use gnulib module btowc for portability");
479 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
481 # define wctob rpl_wctob
486 # if !defined wctob && !1
493 #elif defined GNULIB_POSIXCHECK
495 # if HAVE_RAW_DECL_WCTOB
497 "use gnulib module wctob for portability");
505 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
507 # define mbsinit rpl_mbsinit
518 #elif defined GNULIB_POSIXCHECK
520 # if HAVE_RAW_DECL_MBSINIT
522 "use gnulib module mbsinit for portability");
530 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
532 # define mbrtowc rpl_mbrtowc
535 (
wchar_t *pwc,
const char *s,
size_t n, mbstate_t *ps));
537 (
wchar_t *pwc,
const char *s,
size_t n, mbstate_t *ps));
541 (
wchar_t *pwc,
const char *s,
size_t n, mbstate_t *ps));
544 (
wchar_t *pwc,
const char *s,
size_t n, mbstate_t *ps));
547 #elif defined GNULIB_POSIXCHECK
549 # if HAVE_RAW_DECL_MBRTOWC
551 "use gnulib module mbrtowc for portability");
559 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
561 # define mbrlen rpl_mbrlen
563 _GL_FUNCDECL_RPL (mbrlen,
size_t, (
const char *s,
size_t n, mbstate_t *ps));
564 _GL_CXXALIAS_RPL (mbrlen,
size_t, (
const char *s,
size_t n, mbstate_t *ps));
567 _GL_FUNCDECL_SYS (mbrlen,
size_t, (
const char *s,
size_t n, mbstate_t *ps));
569 _GL_CXXALIAS_SYS (mbrlen,
size_t, (
const char *s,
size_t n, mbstate_t *ps));
572 #elif defined GNULIB_POSIXCHECK
574 # if HAVE_RAW_DECL_MBRLEN
576 "use gnulib module mbrlen for portability");
584 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
586 # define mbsrtowcs rpl_mbsrtowcs
589 (
wchar_t *dest,
const char **srcp,
size_t len, mbstate_t *ps)
592 (
wchar_t *dest,
const char **srcp,
size_t len,
597 (
wchar_t *dest,
const char **srcp,
size_t len, mbstate_t *ps)
601 (
wchar_t *dest,
const char **srcp,
size_t len,
605 #elif defined GNULIB_POSIXCHECK
607 # if HAVE_RAW_DECL_MBSRTOWCS
609 "use gnulib module mbsrtowcs for portability");
617 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
619 # define mbsnrtowcs rpl_mbsnrtowcs
622 (
wchar_t *dest,
const char **srcp,
size_t srclen,
size_t len,
626 (
wchar_t *dest,
const char **srcp,
size_t srclen,
size_t len,
631 (
wchar_t *dest,
const char **srcp,
size_t srclen,
size_t len,
636 (
wchar_t *dest,
const char **srcp,
size_t srclen,
size_t len,
640 #elif defined GNULIB_POSIXCHECK
642 # if HAVE_RAW_DECL_MBSNRTOWCS
644 "use gnulib module mbsnrtowcs for portability");
652 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
654 # define wcrtomb rpl_wcrtomb
665 #elif defined GNULIB_POSIXCHECK
667 # if HAVE_RAW_DECL_WCRTOMB
669 "use gnulib module wcrtomb for portability");
677 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
679 # define wcsrtombs rpl_wcsrtombs
682 (
char *dest,
const wchar_t **srcp,
size_t len, mbstate_t *ps)
685 (
char *dest,
const wchar_t **srcp,
size_t len,
690 (
char *dest,
const wchar_t **srcp,
size_t len, mbstate_t *ps)
694 (
char *dest,
const wchar_t **srcp,
size_t len,
698 #elif defined GNULIB_POSIXCHECK
700 # if HAVE_RAW_DECL_WCSRTOMBS
702 "use gnulib module wcsrtombs for portability");
710 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
712 # define wcsnrtombs rpl_wcsnrtombs
715 (
char *dest,
const wchar_t **srcp,
size_t srclen,
size_t len,
719 (
char *dest,
const wchar_t **srcp,
size_t srclen,
size_t len,
724 (
char *dest,
const wchar_t **srcp,
size_t srclen,
size_t len,
729 (
char *dest,
const wchar_t **srcp,
size_t srclen,
size_t len,
733 #elif defined GNULIB_POSIXCHECK
735 # if HAVE_RAW_DECL_WCSNRTOMBS
737 "use gnulib module wcsnrtombs for portability");
745 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
747 # define wcwidth rpl_wcwidth
759 #elif defined GNULIB_POSIXCHECK
761 # if HAVE_RAW_DECL_WCWIDTH
763 "use gnulib module wcwidth for portability");
771 _GL_FUNCDECL_SYS (wmemchr,
wchar_t *, (
const wchar_t *s,
wchar_t c,
size_t n)
780 wchar_t *, (
const wchar_t *,
wchar_t,
size_t),
781 const wchar_t *, (
const wchar_t *,
wchar_t,
size_t));
782 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
783 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
786 (
const wchar_t *s,
wchar_t c,
size_t n));
790 #elif defined GNULIB_POSIXCHECK
792 # if HAVE_RAW_DECL_WMEMCHR
794 "use gnulib module wmemchr for portability");
803 (
const wchar_t *s1,
const wchar_t *s2,
size_t n)
807 (
const wchar_t *s1,
const wchar_t *s2,
size_t n));
809 #elif defined GNULIB_POSIXCHECK
811 # if HAVE_RAW_DECL_WMEMCMP
813 "use gnulib module wmemcmp for portability");
822 (
wchar_t *dest,
const wchar_t *src,
size_t n));
825 (
wchar_t *dest,
const wchar_t *src,
size_t n));
827 #elif defined GNULIB_POSIXCHECK
829 # if HAVE_RAW_DECL_WMEMCPY
831 "use gnulib module wmemcpy for portability");
841 (
wchar_t *dest,
const wchar_t *src,
size_t n));
844 (
wchar_t *dest,
const wchar_t *src,
size_t n));
846 #elif defined GNULIB_POSIXCHECK
848 # if HAVE_RAW_DECL_WMEMMOVE
850 "use gnulib module wmemmove for portability");
862 #elif defined GNULIB_POSIXCHECK
864 # if HAVE_RAW_DECL_WMEMSET
866 "use gnulib module wmemset for portability");
878 #elif defined GNULIB_POSIXCHECK
880 # if HAVE_RAW_DECL_WCSLEN
882 "use gnulib module wcslen for portability");
895 #elif defined GNULIB_POSIXCHECK
897 # if HAVE_RAW_DECL_WCSNLEN
899 "use gnulib module wcsnlen for portability");
911 #elif defined GNULIB_POSIXCHECK
913 # if HAVE_RAW_DECL_WCSCPY
915 "use gnulib module wcscpy for portability");
927 #elif defined GNULIB_POSIXCHECK
929 # if HAVE_RAW_DECL_WCPCPY
931 "use gnulib module wcpcpy for portability");
940 (
wchar_t *dest,
const wchar_t *src,
size_t n));
943 (
wchar_t *dest,
const wchar_t *src,
size_t n));
945 #elif defined GNULIB_POSIXCHECK
947 # if HAVE_RAW_DECL_WCSNCPY
949 "use gnulib module wcsncpy for portability");
959 (
wchar_t *dest,
const wchar_t *src,
size_t n));
962 (
wchar_t *dest,
const wchar_t *src,
size_t n));
964 #elif defined GNULIB_POSIXCHECK
966 # if HAVE_RAW_DECL_WCPNCPY
968 "use gnulib module wcpncpy for portability");
980 #elif defined GNULIB_POSIXCHECK
982 # if HAVE_RAW_DECL_WCSCAT
984 "use gnulib module wcscat for portability");
993 (
wchar_t *dest,
const wchar_t *src,
size_t n));
996 (
wchar_t *dest,
const wchar_t *src,
size_t n));
998 #elif defined GNULIB_POSIXCHECK
1000 # if HAVE_RAW_DECL_WCSNCAT
1002 "use gnulib module wcsncat for portability");
1015 #elif defined GNULIB_POSIXCHECK
1017 # if HAVE_RAW_DECL_WCSCMP
1019 "use gnulib module wcscmp for portability");
1028 (
const wchar_t *s1,
const wchar_t *s2,
size_t n)
1032 (
const wchar_t *s1,
const wchar_t *s2,
size_t n));
1034 #elif defined GNULIB_POSIXCHECK
1036 # if HAVE_RAW_DECL_WCSNCMP
1038 "use gnulib module wcsncmp for portability");
1049 _GL_CXXALIAS_SYS (wcscasecmp,
int, (
const wchar_t *s1,
const wchar_t *s2));
1051 #elif defined GNULIB_POSIXCHECK
1053 # if HAVE_RAW_DECL_WCSCASECMP
1055 "use gnulib module wcscasecmp for portability");
1064 (
const wchar_t *s1,
const wchar_t *s2,
size_t n)
1068 (
const wchar_t *s1,
const wchar_t *s2,
size_t n));
1070 #elif defined GNULIB_POSIXCHECK
1072 # if HAVE_RAW_DECL_WCSNCASECMP
1074 "use gnulib module wcsncasecmp for portability");
1087 #elif defined GNULIB_POSIXCHECK
1089 # if HAVE_RAW_DECL_WCSCOLL
1091 "use gnulib module wcscoll for portability");
1101 _GL_FUNCDECL_SYS (wcsxfrm,
size_t, (
wchar_t *s1,
const wchar_t *s2,
size_t n));
1103 _GL_CXXALIAS_SYS (wcsxfrm,
size_t, (
wchar_t *s1,
const wchar_t *s2,
size_t n));
1105 #elif defined GNULIB_POSIXCHECK
1107 # if HAVE_RAW_DECL_WCSXFRM
1109 "use gnulib module wcsxfrm for portability");
1121 #elif defined GNULIB_POSIXCHECK
1123 # if HAVE_RAW_DECL_WCSDUP
1125 "use gnulib module wcsdup for portability");
1142 wchar_t *, (
const wchar_t *,
wchar_t),
1143 const wchar_t *, (
const wchar_t *,
wchar_t));
1144 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
1145 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
1151 #elif defined GNULIB_POSIXCHECK
1153 # if HAVE_RAW_DECL_WCSCHR
1155 "use gnulib module wcschr for portability");
1172 wchar_t *, (
const wchar_t *,
wchar_t),
1173 const wchar_t *, (
const wchar_t *,
wchar_t));
1174 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
1175 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
1181 #elif defined GNULIB_POSIXCHECK
1183 # if HAVE_RAW_DECL_WCSRCHR
1185 "use gnulib module wcsrchr for portability");
1194 _GL_FUNCDECL_SYS (wcscspn,
size_t, (
const wchar_t *wcs,
const wchar_t *reject)
1197 _GL_CXXALIAS_SYS (wcscspn,
size_t, (
const wchar_t *wcs,
const wchar_t *reject));
1199 #elif defined GNULIB_POSIXCHECK
1201 # if HAVE_RAW_DECL_WCSCSPN
1203 "use gnulib module wcscspn for portability");
1212 _GL_FUNCDECL_SYS (wcsspn,
size_t, (
const wchar_t *wcs,
const wchar_t *accept)
1215 _GL_CXXALIAS_SYS (wcsspn,
size_t, (
const wchar_t *wcs,
const wchar_t *accept));
1217 #elif defined GNULIB_POSIXCHECK
1219 # if HAVE_RAW_DECL_WCSSPN
1221 "use gnulib module wcsspn for portability");
1230 (
const wchar_t *wcs,
const wchar_t *accept)
1239 wchar_t *, (
const wchar_t *,
const wchar_t *),
1240 const wchar_t *, (
const wchar_t *,
const wchar_t *));
1241 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
1242 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
1244 (
wchar_t *wcs,
const wchar_t *accept));
1246 (
const wchar_t *wcs,
const wchar_t *accept));
1250 #elif defined GNULIB_POSIXCHECK
1252 # if HAVE_RAW_DECL_WCSPBRK
1254 "use gnulib module wcspbrk for portability");
1263 (
const wchar_t *haystack,
const wchar_t *needle)
1272 wchar_t *, (
const wchar_t *,
const wchar_t *),
1273 const wchar_t *, (
const wchar_t *,
const wchar_t *));
1274 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
1275 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
1277 (
wchar_t *haystack,
const wchar_t *needle));
1279 (
const wchar_t *haystack,
const wchar_t *needle));
1283 #elif defined GNULIB_POSIXCHECK
1285 # if HAVE_RAW_DECL_WCSSTR
1287 "use gnulib module wcsstr for portability");
1296 (
wchar_t *wcs,
const wchar_t *delim,
wchar_t **ptr));
1299 (
wchar_t *wcs,
const wchar_t *delim,
wchar_t **ptr));
1301 #elif defined GNULIB_POSIXCHECK
1303 # if HAVE_RAW_DECL_WCSTOK
1305 "use gnulib module wcstok for portability");
1314 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1316 # define wcswidth rpl_wcswidth
1329 #elif defined GNULIB_POSIXCHECK
1331 # if HAVE_RAW_DECL_WCSWIDTH
1333 "use gnulib module wcswidth for portability");
#define _GL_CXXALIASWARN1(func, rettype, parameters_and_attributes)
_GL_CXXALIASWARN(mbsinit)
#define _GL_WARN_ON_USE(function, message)
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
#define _GL_ARG_NONNULL(params)
#define _GL_CXXALIAS_SYS_CAST2(func, rettype, parameters, rettype2, parameters2)
#define _GL_ATTRIBUTE_PURE
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
_GL_CXXALIAS_SYS(mbsinit, int,(const mbstate_t *ps))