Avoid false positive on mingw.
[gnulib.git] / m4 / mbrtowc.m4
index 3085fc3..a3bd911 100644 (file)
@@ -1,18 +1,31 @@
-#serial 2
+# mbrtowc.m4 serial 8
+dnl Copyright (C) 2001-2002, 2004-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Paul Eggert
 
-AC_DEFUN(jm_FUNC_MBRTOWC,
+dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with
+dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere.
+
+AC_DEFUN([gl_FUNC_MBRTOWC],
 [
+  dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
   AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
-    jm_cv_func_mbrtowc,
-    [AC_TRY_LINK(
-       [@%:@include <wchar.h>],
-       [mbstate_t state; return ! (sizeof state && mbrtowc);],
-       jm_cv_func_mbrtowc=yes,
-       jm_cv_func_mbrtowc=no)])
-  if test $jm_cv_func_mbrtowc = yes; then
-    AC_DEFINE(HAVE_MBRTOWC, 1,
+    gl_cv_func_mbrtowc,
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+            [[#include <wchar.h>]],
+            [[wchar_t wc;
+              char const s[] = "";
+              size_t n = 1;
+              mbstate_t state;
+              return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
+       gl_cv_func_mbrtowc=yes,
+       gl_cv_func_mbrtowc=no)])
+  if test $gl_cv_func_mbrtowc = yes; then
+    AC_DEFINE([HAVE_MBRTOWC], 1,
       [Define to 1 if mbrtowc and mbstate_t are properly declared.])
   fi
 ])