1
# mbsrtowcs.m4 serial 6
2
dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
1
# mbsrtowcs.m4 serial 13
2
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
3
3
dnl This file is free software; the Free Software Foundation
4
4
dnl gives unlimited permission to copy and/or distribute it,
5
5
dnl with or without modifications, as long as this notice is preserved.
14
14
AC_CHECK_FUNCS_ONCE([mbsrtowcs])
15
15
if test $ac_cv_func_mbsrtowcs = no; then
17
AC_CHECK_DECLS([mbsrtowcs],,, [[
18
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
20
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
21
included before <wchar.h>. */
27
if test $ac_cv_have_decl_mbsrtowcs = yes; then
28
dnl On Minix 3.1.8, the system's <wchar.h> declares mbsrtowcs() although
29
dnl it does not have the function. Avoid a collision with gnulib's
18
34
if test $REPLACE_MBSTATE_T = 1; then
19
35
REPLACE_MBSRTOWCS=1
39
49
AC_DEFUN([gl_MBSRTOWCS_WORKS],
41
51
AC_REQUIRE([AC_PROG_CC])
52
AC_REQUIRE([gt_LOCALE_FR])
42
53
AC_REQUIRE([gt_LOCALE_FR_UTF8])
43
54
AC_REQUIRE([gt_LOCALE_JA])
44
55
AC_REQUIRE([gt_LOCALE_ZH_CN])
53
# Guess no on HP-UX and Solaris.
54
hpux* | solaris*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
55
# Guess yes otherwise.
56
*) gl_cv_func_mbsrtowcs_works="guessing yes" ;;
64
# Guess no on HP-UX, Solaris, mingw.
65
hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
66
# Guess yes otherwise.
67
*) gl_cv_func_mbsrtowcs_works="guessing yes" ;;
58
69
changequote([,])dnl
59
if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
70
if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
61
73
#include <locale.h>
62
74
#include <string.h>
75
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
77
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
78
included before <wchar.h>. */
86
/* Test whether the function supports a NULL destination argument.
87
This fails on native Windows. */
88
if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
90
const char input[] = "\337er";
91
const char *src = input;
94
memset (&state, '\0', sizeof (mbstate_t));
95
if (mbsrtowcs (NULL, &src, 1, &state) != 3
66
99
/* Test whether the function works when started with a conversion state
67
100
in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */
68
101
if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
77
110
const char *src = input + 2;
78
111
if (mbsrtowcs (NULL, &src, 10, &state) != 4)
82
115
if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
91
124
const char *src = input + 4;
92
125
if (mbsrtowcs (NULL, &src, 10, &state) != 3)
96
129
if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
105
138
const char *src = input + 2;
106
139
if (mbsrtowcs (NULL, &src, 10, &state) != 4)
112
145
[gl_cv_func_mbsrtowcs_works=yes],
113
146
[gl_cv_func_mbsrtowcs_works=no],