X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fwctype.m4;h=b611ebbc9b26e43ad901c36aa1b4985453fdf0b3;hb=6da2fb7a5a1e8a32ccd2f735834713a3bc8c4275;hp=7c6718c3e14e38fde512e3ce67d02b06aa39255f;hpb=5feb6a2ef2c57b51ebe76ed8a173cd1acc77b4bc;p=gnulib.git diff --git a/m4/wctype.m4 b/m4/wctype.m4 index 7c6718c3e..b611ebbc9 100644 --- a/m4/wctype.m4 +++ b/m4/wctype.m4 @@ -1,6 +1,8 @@ +# wctype.m4 serial 4 + dnl A placeholder for ISO C99 , for platforms that lack it. -dnl Copyright (C) 2006-2008 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2009 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. @@ -10,6 +12,7 @@ dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 @@ -35,23 +38,31 @@ AC_DEFUN([gl_WCTYPE_H], dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ - AC_TRY_RUN([#include - #include - #include - #include - #include - int main () { return iswprint ('x') == 0; }], - [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no]) - ], - [ - AC_TRY_COMPILE([#include + AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #include + #include + #include + #include + #include + int main () { return iswprint ('x') == 0; }]])], + [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. - #endif], - [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no]) + #endif]], [])], + [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no]) + ]) ]) if test $gl_cv_func_iswcntrl_works = yes; then - WCTYPE_H= + case "$host_os" in + mingw*) + dnl On mingw, towlower and towupper return random high 16 bits. + ;; + *) + dnl iswcntrl works. towlower and towupper work as well. + WCTYPE_H= + ;; + esac fi fi dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty,