-# serial 2
+# mbstate_t.m4 serial 9
+dnl Copyright (C) 2000, 2001, 2002 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.
# 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 stdio.h first, because otherwise this test would fail on Linux
-# (at least 2.2.16) 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_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
- [AC_TRY_COMPILE([#include <stdio.h>
-#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_TYPE_MBSTATE_T
+# -----------------
+AC_DEFUN([AC_TYPE_MBSTATE_T],
+ [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])