diff options
Diffstat (limited to 'gl/m4/btowc.m4')
-rw-r--r-- | gl/m4/btowc.m4 | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/gl/m4/btowc.m4 b/gl/m4/btowc.m4 index b46f74fb..c4ee4e41 100644 --- a/gl/m4/btowc.m4 +++ b/gl/m4/btowc.m4 | |||
@@ -1,5 +1,5 @@ | |||
1 | # btowc.m4 serial 4 | 1 | # btowc.m4 serial 6 |
2 | dnl Copyright (C) 2008-2009 Free Software Foundation, Inc. | 2 | dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. |
3 | dnl This file is free software; the Free Software Foundation | 3 | dnl This file is free software; the Free Software Foundation |
4 | dnl gives unlimited permission to copy and/or distribute it, | 4 | dnl gives unlimited permission to copy and/or distribute it, |
5 | dnl with or without modifications, as long as this notice is preserved. | 5 | dnl with or without modifications, as long as this notice is preserved. |
@@ -8,15 +8,49 @@ AC_DEFUN([gl_FUNC_BTOWC], | |||
8 | [ | 8 | [ |
9 | AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) | 9 | AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) |
10 | 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 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. | ||
14 | AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) | ||
15 | |||
11 | AC_CHECK_FUNCS_ONCE([btowc]) | 16 | AC_CHECK_FUNCS_ONCE([btowc]) |
12 | if test $ac_cv_func_btowc = no; then | 17 | if test $ac_cv_func_btowc = no; then |
13 | HAVE_BTOWC=0 | 18 | HAVE_BTOWC=0 |
14 | else | 19 | else |
15 | 20 | ||
16 | dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. | ||
17 | AC_REQUIRE([AC_PROG_CC]) | 21 | AC_REQUIRE([AC_PROG_CC]) |
18 | AC_REQUIRE([gt_LOCALE_FR]) | 22 | AC_REQUIRE([gt_LOCALE_FR]) |
19 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | 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_TRY_RUN([ | ||
30 | #include <stdio.h> | ||
31 | #include <string.h> | ||
32 | #include <wchar.h> | ||
33 | int main () | ||
34 | { | ||
35 | if (btowc ('\0') != 0) | ||
36 | return 1; | ||
37 | return 0; | ||
38 | }], | ||
39 | [gl_cv_func_btowc_nul=yes], | ||
40 | [gl_cv_func_btowc_nul=no], | ||
41 | [ | ||
42 | changequote(,)dnl | ||
43 | case "$host_os" in | ||
44 | # Guess no on Cygwin. | ||
45 | cygwin*) gl_cv_func_btowc_nul="guessing no" ;; | ||
46 | # Guess yes otherwise. | ||
47 | *) gl_cv_func_btowc_nul="guessing yes" ;; | ||
48 | esac | ||
49 | changequote([,])dnl | ||
50 | ]) | ||
51 | ]) | ||
52 | |||
53 | dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. | ||
20 | AC_CACHE_CHECK([whether btowc(EOF) is correct], | 54 | AC_CACHE_CHECK([whether btowc(EOF) is correct], |
21 | [gl_cv_func_btowc_eof], | 55 | [gl_cv_func_btowc_eof], |
22 | [ | 56 | [ |
@@ -50,6 +84,11 @@ int main () | |||
50 | [:]) | 84 | [:]) |
51 | fi | 85 | fi |
52 | ]) | 86 | ]) |
87 | |||
88 | case "$gl_cv_func_btowc_nul" in | ||
89 | *yes) ;; | ||
90 | *) REPLACE_BTOWC=1 ;; | ||
91 | esac | ||
53 | case "$gl_cv_func_btowc_eof" in | 92 | case "$gl_cv_func_btowc_eof" in |
54 | *yes) ;; | 93 | *yes) ;; |
55 | *) REPLACE_BTOWC=1 ;; | 94 | *) REPLACE_BTOWC=1 ;; |