1# wint_t.m4 serial 7
2dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7dnl From Bruno Haible.
8dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's
9dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
10dnl Prerequisite: AC_PROG_CC
11
12AC_DEFUN([gt_TYPE_WINT_T],
13[
14  AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
15    [AC_COMPILE_IFELSE(
16       [AC_LANG_PROGRAM(
17          [[
18/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
19   <wchar.h>.
20   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
21   before <wchar.h>.  */
22#include <stddef.h>
23#include <stdio.h>
24#include <time.h>
25#include <wchar.h>
26            wint_t foo = (wchar_t)'\0';]],
27          [[]])],
28       [gt_cv_c_wint_t=yes],
29       [gt_cv_c_wint_t=no])])
30  if test $gt_cv_c_wint_t = yes; then
31    AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
32
33    dnl Determine whether gnulib's <wchar.h> or <wctype.h> would, if present,
34    dnl override 'wint_t'.
35    AC_CACHE_CHECK([whether wint_t is too small],
36      [gl_cv_type_wint_t_too_small],
37      [AC_COMPILE_IFELSE(
38           [AC_LANG_PROGRAM([[
39/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
40   <wchar.h>.
41   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
42   included before <wchar.h>.  */
43#if !(defined __GLIBC__ && !defined __UCLIBC__)
44# include <stddef.h>
45# include <stdio.h>
46# include <time.h>
47#endif
48#include <wchar.h>
49              int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1];
50              ]])],
51           [gl_cv_type_wint_t_too_small=no],
52           [gl_cv_type_wint_t_too_small=yes])])
53    if test $gl_cv_type_wint_t_too_small = yes; then
54      GNULIB_OVERRIDES_WINT_T=1
55    else
56      GNULIB_OVERRIDES_WINT_T=0
57    fi
58  else
59    GNULIB_OVERRIDES_WINT_T=0
60  fi
61  AC_SUBST([GNULIB_OVERRIDES_WINT_T])
62])
63
64dnl Prerequisites of the 'wint_t' override.
65AC_DEFUN([gl_TYPE_WINT_T_PREREQ],
66[
67  AC_CHECK_HEADERS_ONCE([crtdefs.h])
68  if test $ac_cv_header_crtdefs_h = yes; then
69    HAVE_CRTDEFS_H=1
70  else
71    HAVE_CRTDEFS_H=0
72  fi
73  AC_SUBST([HAVE_CRTDEFS_H])
74])
75