-AC_DEFUN(AC_MBSTATE_T_OBJECT,
- [
- # Check for the mbstate_t type.
- ac_mbs_tmp=$ac_includes_default
- ac_includes_default="
-$ac_includes_default
-#if HAVE_WCHAR_H
-# include <wchar.h>
-#endif
-"
- AC_CHECK_TYPE(mbstate_t, int)
- # Restore the default value.
- ac_includes_default=$ac_mbs_tmp
-
- AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
- [AC_TRY_COMPILE([
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#include <wchar.h>],
- [mbstate_t x; return sizeof x;],
- ac_cv_type_mbstate_t_object=yes,
- ac_cv_type_mbstate_t_object=no)])
- if test $ac_cv_type_mbstate_t_object = yes; then
- AC_DEFINE(HAVE_MBSTATE_T_OBJECT, 1,
- [Define if mbstate_t is an object type.])
- fi])
+ AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT[
+# include <wchar.h>]],
+ [[mbstate_t x; return sizeof x;]])],
+ [ac_cv_type_mbstate_t=yes],
+ [ac_cv_type_mbstate_t=no])])
+ if test $ac_cv_type_mbstate_t = yes; then
+ AC_DEFINE([HAVE_MBSTATE_T], [1],
+ [Define to 1 if <wchar.h> declares mbstate_t.])
+ else
+ AC_DEFINE([mbstate_t], [int],
+ [Define to a type if <wchar.h> does not define.])
+ fi
+])