1# btowc.m4 serial 12 2dnl Copyright (C) 2008-2021 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 7AC_DEFUN([gl_FUNC_BTOWC], 8[ 9 AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) 10 11 dnl Check whether <wchar.h> is usable at all, first. Otherwise the test 12 dnl program below may lead to an endless loop. See 13 dnl <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. 14 AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) 15 16 AC_CHECK_FUNCS_ONCE([btowc]) 17 if test $ac_cv_func_btowc = no; then 18 HAVE_BTOWC=0 19 else 20 21 AC_REQUIRE([AC_PROG_CC]) 22 AC_REQUIRE([gt_LOCALE_FR]) 23 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles 24 25 dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0. 26 AC_CACHE_CHECK([whether btowc(0) is correct], 27 [gl_cv_func_btowc_nul], 28 [ 29 AC_RUN_IFELSE( 30 [AC_LANG_SOURCE([[ 31#include <wchar.h> 32int main () 33{ 34 if (btowc ('\0') != 0) 35 return 1; 36 return 0; 37}]])], 38 [gl_cv_func_btowc_nul=yes], 39 [gl_cv_func_btowc_nul=no], 40 [ 41changequote(,)dnl 42 case "$host_os" in 43 # Guess no on Cygwin. 44 cygwin*) gl_cv_func_btowc_nul="guessing no" ;; 45 # Guess yes on native Windows. 46 mingw*) gl_cv_func_btowc_nul="guessing yes" ;; 47 # Guess yes otherwise. 48 *) gl_cv_func_btowc_nul="guessing yes" ;; 49 esac 50changequote([,])dnl 51 ]) 52 ]) 53 54 dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. 55 AC_CACHE_CHECK([whether btowc(EOF) is correct], 56 [gl_cv_func_btowc_eof], 57 [ 58 dnl Initial guess, used when cross-compiling or when no suitable locale 59 dnl is present. 60changequote(,)dnl 61 case "$host_os" in 62 # Guess no on IRIX. 63 irix*) gl_cv_func_btowc_eof="guessing no" ;; 64 # Guess yes on native Windows. 65 mingw*) gl_cv_func_btowc_eof="guessing yes" ;; 66 # Guess yes otherwise. 67 *) gl_cv_func_btowc_eof="guessing yes" ;; 68 esac 69changequote([,])dnl 70 if test $LOCALE_FR != none; then 71 AC_RUN_IFELSE( 72 [AC_LANG_SOURCE([[ 73#include <locale.h> 74#include <stdio.h> 75#include <wchar.h> 76int main () 77{ 78 if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) 79 { 80 if (btowc (EOF) != WEOF) 81 return 1; 82 } 83 return 0; 84}]])], 85 [gl_cv_func_btowc_eof=yes], 86 [gl_cv_func_btowc_eof=no], 87 [:]) 88 fi 89 ]) 90 91 case "$gl_cv_func_btowc_nul" in 92 *yes) ;; 93 *) REPLACE_BTOWC=1 ;; 94 esac 95 case "$gl_cv_func_btowc_eof" in 96 *yes) ;; 97 *) REPLACE_BTOWC=1 ;; 98 esac 99 fi 100]) 101 102# Prerequisites of lib/btowc.c. 103AC_DEFUN([gl_PREREQ_BTOWC], [ 104 : 105]) 106