1# wctype.m4 serial 2
2
3dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
4
5dnl Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
6dnl This file is free software; the Free Software Foundation
7dnl gives unlimited permission to copy and/or distribute it,
8dnl with or without modifications, as long as this notice is preserved.
9
10dnl Written by Paul Eggert.
11
12AC_DEFUN([gl_WCTYPE_H],
13[
14  AC_REQUIRE([AC_PROG_CC])
15  AC_CHECK_FUNCS_ONCE([iswcntrl])
16  if test $ac_cv_func_iswcntrl = yes; then
17    HAVE_ISWCNTRL=1
18  else
19    HAVE_ISWCNTRL=0
20  fi
21  AC_SUBST([HAVE_ISWCNTRL])
22  AC_CHECK_HEADERS_ONCE([wctype.h])
23  AC_REQUIRE([AC_C_INLINE])
24
25  AC_REQUIRE([gt_TYPE_WINT_T])
26  if test $gt_cv_c_wint_t = yes; then
27    HAVE_WINT_T=1
28  else
29    HAVE_WINT_T=0
30  fi
31  AC_SUBST([HAVE_WINT_T])
32
33  WCTYPE_H=wctype.h
34  if test $ac_cv_header_wctype_h = yes; then
35    if test $ac_cv_func_iswcntrl = yes; then
36      dnl Linux libc5 has an iswprint function that returns 0 for all arguments.
37      dnl The other functions are likely broken in the same way.
38      AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works],
39        [
40          AC_TRY_RUN([#include <stddef.h>
41                      #include <stdio.h>
42                      #include <time.h>
43                      #include <wchar.h>
44                      #include <wctype.h>
45                      int main () { return iswprint ('x') == 0; }],
46            [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
47            [AC_TRY_COMPILE([#include <stdlib.h>
48                          #if __GNU_LIBRARY__ == 1
49                          Linux libc5 i18n is broken.
50                          #endif], [],
51              [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
52            ])
53        ])
54      if test $gl_cv_func_iswcntrl_works = yes; then
55        WCTYPE_H=
56      fi
57    fi
58    dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty,
59    dnl for the benefit of builds from non-distclean directories.
60    gl_CHECK_NEXT_HEADERS([wctype.h])
61    HAVE_WCTYPE_H=1
62  else
63    HAVE_WCTYPE_H=0
64  fi
65  AC_SUBST([HAVE_WCTYPE_H])
66  AC_SUBST([WCTYPE_H])
67
68  if test "$gl_cv_func_iswcntrl_works" = no; then
69    REPLACE_ISWCNTRL=1
70  else
71    REPLACE_ISWCNTRL=0
72  fi
73  AC_SUBST([REPLACE_ISWCNTRL])
74])
75