summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2011-02-13 18:17:22 +0100
committerBruno Haible <bruno@clisp.org>2011-02-13 18:23:20 +0100
commitcca34e7a16b014a2429a0c0d98cfa4c935688f00 (patch)
treeedaa6cb352584b27b65d05d25f6015328f64c314 /m4
parenta38e4bbf37c4a77ea65f548dfcf590cf23e73d7e (diff)
downloadgnulib-cca34e7a16b014a2429a0c0d98cfa4c935688f00.tar.gz
mbsinit: Work around mingw bug.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Replace mbsinit also on mingw. * lib/mbsinit.c (mbsinit): Provide an alternate definition for native Windows. * doc/posix-functions/mbsinit.texi: Mention the mingw bug.
Diffstat (limited to 'm4')
-rw-r--r--m4/mbsinit.m410
1 files changed, 9 insertions, 1 deletions
diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4
index 03b31447cf..47e2d14a73 100644
--- a/m4/mbsinit.m4
+++ b/m4/mbsinit.m4
@@ -1,4 +1,4 @@
-# mbsinit.m4 serial 4
+# mbsinit.m4 serial 5
dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_MBSINIT],
[
AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_TYPE_MBSTATE_T])
gl_MBSTATE_T_BROKEN
@@ -17,6 +18,13 @@ AC_DEFUN([gl_FUNC_MBSINIT],
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_MBSINIT=1
+ else
+ dnl On mingw, mbsinit() always returns 1, which is inappropriate for
+ dnl states produced by mbrtowc() for an incomplete multibyte character
+ dnl in multibyte locales.
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
fi
fi
if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then