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 46c106fc..2e6d0921 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. |
