-# serial 4
+# serial 9
# From Paul Eggert.
-# Some versions of BeOS define mbstate_t to be an incomplete type,
+# BeOS 5 has <wchar.h> but does not define mbstate_t,
# so you can't declare an object of that type.
# Check for this incompatibility with Standard C.
# Include stdlib.h first, because otherwise this test would fail on Linux
-# (at least glibc-2.1.3) because the `_XOPEN_SOURCE 500' definition elicits
+# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits
# a syntax error in wchar.h due to the use of undefined __int32_t.
-AC_DEFUN(AC_MBSTATE_T_OBJECT,
+AC_DEFUN([AC_MBSTATE_T],
[
- # 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_CHECK_HEADERS(stdlib.h)
- AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
+ AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
[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.])
+ ac_cv_type_mbstate_t=yes,
+ ac_cv_type_mbstate_t=no)])
+ if test $ac_cv_type_mbstate_t = no; then
+ AC_DEFINE(mbstate_t, int,
+ [Define to a type if <wchar.h> does not define.])
fi])