]> Dogcows Code - chaz/tar/blobdiff - m4/mbstate_t.m4
(AC_MBSTATE_T_OBJECT): Test for mbstate_t only if the test
[chaz/tar] / m4 / mbstate_t.m4
index 2c14444d7eebbac0a5bef08427278410439a9e6f..ac47f11b2504931b91db8c65ddd0184e3b4128d9 100644 (file)
@@ -1,4 +1,4 @@
-# serial 4
+# serial 6
 
 # From Paul Eggert.
 
 
 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_CHECK_HEADERS(stdlib.h)
 
-   AC_CACHE_CHECK([for mbstate_t object type], ac_cv_type_mbstate_t_object,
+   AC_CACHE_CHECK([for mbstate_t object], ac_cv_type_mbstate_t_object,
     [AC_TRY_COMPILE([
 #if HAVE_STDLIB_H
 # include <stdlib.h>
@@ -36,4 +26,18 @@ $ac_includes_default
    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.])
+   else
+     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=yes,
+       ac_cv_type_mbstate_t=no)])
+     if test $ac_cv_type_mbstate_t != yes; then
+       AC_DEFINE(mbstate_t, int,
+                [Define to int if <wchar.h> does not define.])
+     fi
    fi])
This page took 0.021223 seconds and 4 git commands to generate.