New upstream version 1.9
[debian/gzip] / m4 / wint_t.m4
1 # wint_t.m4 serial 7
2 dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 dnl From Bruno Haible.
8 dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's
9 dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
10 dnl Prerequisite: AC_PROG_CC
11
12 AC_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
64 dnl Prerequisites of the 'wint_t' override.
65 AC_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 ])