Do the Windows oldnames workaround through the C++ GNULIB_NAMESPACE.
[gnulib.git] / m4 / mbsinit.m4
blob8c26b6b97164a38613cdee888764097c1c9b3207
1 # mbsinit.m4 serial 8
2 dnl Copyright (C) 2008, 2010-2020 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_FUNC_MBSINIT],
9   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
10   AC_REQUIRE([AC_CANONICAL_HOST])
12   AC_REQUIRE([AC_TYPE_MBSTATE_T])
13   gl_MBSTATE_T_BROKEN
15   AC_CHECK_FUNCS_ONCE([mbsinit])
16   if test $ac_cv_func_mbsinit = no; then
17     HAVE_MBSINIT=0
18     AC_CHECK_DECLS([mbsinit],,, [[
19 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
20    <wchar.h>.
21    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
22    included before <wchar.h>.  */
23 #include <stddef.h>
24 #include <stdio.h>
25 #include <time.h>
26 #include <wchar.h>
27 ]])
28     if test $ac_cv_have_decl_mbsinit = yes; then
29       dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
30       dnl it does not have the function. Avoid a collision with gnulib's
31       dnl replacement.
32       REPLACE_MBSINIT=1
33     fi
34   else
35     if test $REPLACE_MBSTATE_T = 1; then
36       REPLACE_MBSINIT=1
37     else
38       dnl On mingw, mbsinit() always returns 1, which is inappropriate for
39       dnl states produced by mbrtowc() for an incomplete multibyte character
40       dnl in multibyte locales.
41       case "$host_os" in
42         mingw*) REPLACE_MBSINIT=1 ;;
43       esac
44     fi
45   fi
48 # Prerequisites of lib/mbsinit.c.
49 AC_DEFUN([gl_PREREQ_MBSINIT], [
50   :