diff options
Diffstat (limited to 'gl/m4/mbsinit.m4')
-rw-r--r-- | gl/m4/mbsinit.m4 | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/gl/m4/mbsinit.m4 b/gl/m4/mbsinit.m4 index 46c106f..2e6d092 100644 --- a/gl/m4/mbsinit.m4 +++ b/gl/m4/mbsinit.m4 | |||
@@ -1,5 +1,5 @@ | |||
1 | # mbsinit.m4 serial 4 | 1 | # mbsinit.m4 serial 8 |
2 | dnl Copyright (C) 2008, 2010 Free Software Foundation, Inc. | 2 | dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc. |
3 | dnl This file is free software; the Free Software Foundation | 3 | dnl This file is free software; the Free Software Foundation |
4 | dnl gives unlimited permission to copy and/or distribute it, | 4 | dnl gives unlimited permission to copy and/or distribute it, |
5 | dnl with or without modifications, as long as this notice is preserved. | 5 | dnl with or without modifications, as long as this notice is preserved. |
@@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved. | |||
7 | AC_DEFUN([gl_FUNC_MBSINIT], | 7 | AC_DEFUN([gl_FUNC_MBSINIT], |
8 | [ | 8 | [ |
9 | AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) | 9 | AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) |
10 | AC_REQUIRE([AC_CANONICAL_HOST]) | ||
10 | 11 | ||
11 | AC_REQUIRE([AC_TYPE_MBSTATE_T]) | 12 | AC_REQUIRE([AC_TYPE_MBSTATE_T]) |
12 | gl_MBSTATE_T_BROKEN | 13 | gl_MBSTATE_T_BROKEN |
@@ -14,16 +15,34 @@ AC_DEFUN([gl_FUNC_MBSINIT], | |||
14 | AC_CHECK_FUNCS_ONCE([mbsinit]) | 15 | AC_CHECK_FUNCS_ONCE([mbsinit]) |
15 | if test $ac_cv_func_mbsinit = no; then | 16 | if test $ac_cv_func_mbsinit = no; then |
16 | HAVE_MBSINIT=0 | 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 | ||
17 | else | 34 | else |
18 | if test $REPLACE_MBSTATE_T = 1; then | 35 | if test $REPLACE_MBSTATE_T = 1; then |
19 | REPLACE_MBSINIT=1 | 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 | ||
20 | fi | 44 | fi |
21 | fi | 45 | fi |
22 | if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then | ||
23 | gl_REPLACE_WCHAR_H | ||
24 | AC_LIBOBJ([mbsinit]) | ||
25 | gl_PREREQ_MBSINIT | ||
26 | fi | ||
27 | ]) | 46 | ]) |
28 | 47 | ||
29 | # Prerequisites of lib/mbsinit.c. | 48 | # Prerequisites of lib/mbsinit.c. |