summaryrefslogtreecommitdiffstats
path: root/gl/m4/wchar_h.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gl/m4/wchar_h.m4')
-rw-r--r--gl/m4/wchar_h.m4123
1 files changed, 98 insertions, 25 deletions
diff --git a/gl/m4/wchar_h.m4 b/gl/m4/wchar_h.m4
index 8cae82dd..bedb15a4 100644
--- a/gl/m4/wchar_h.m4
+++ b/gl/m4/wchar_h.m4
@@ -1,13 +1,13 @@
1dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. 1dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
2 2
3dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. 3dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
4dnl This file is free software; the Free Software Foundation 4dnl This file is free software; the Free Software Foundation
5dnl gives unlimited permission to copy and/or distribute it, 5dnl gives unlimited permission to copy and/or distribute it,
6dnl with or without modifications, as long as this notice is preserved. 6dnl with or without modifications, as long as this notice is preserved.
7 7
8dnl Written by Eric Blake. 8dnl Written by Eric Blake.
9 9
10# wchar_h.m4 serial 33 10# wchar_h.m4 serial 39
11 11
12AC_DEFUN([gl_WCHAR_H], 12AC_DEFUN([gl_WCHAR_H],
13[ 13[
@@ -17,7 +17,6 @@ AC_DEFUN([gl_WCHAR_H],
17 dnl Check for <wchar.h> (missing in Linux uClibc when built without wide 17 dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
18 dnl character support). 18 dnl character support).
19 dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK. 19 dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK.
20 AC_CHECK_HEADERS_ONCE([wchar.h])
21 gl_CHECK_NEXT_HEADERS([wchar.h]) 20 gl_CHECK_NEXT_HEADERS([wchar.h])
22 if test $ac_cv_header_wchar_h = yes; then 21 if test $ac_cv_header_wchar_h = yes; then
23 HAVE_WCHAR_H=1 22 HAVE_WCHAR_H=1
@@ -26,6 +25,8 @@ AC_DEFUN([gl_WCHAR_H],
26 fi 25 fi
27 AC_SUBST([HAVE_WCHAR_H]) 26 AC_SUBST([HAVE_WCHAR_H])
28 27
28 AC_REQUIRE([gl_FEATURES_H])
29
29 AC_REQUIRE([gt_TYPE_WINT_T]) 30 AC_REQUIRE([gt_TYPE_WINT_T])
30 if test $gt_cv_c_wint_t = yes; then 31 if test $gt_cv_c_wint_t = yes; then
31 HAVE_WINT_T=1 32 HAVE_WINT_T=1
@@ -37,15 +38,23 @@ AC_DEFUN([gl_WCHAR_H],
37 dnl Check for declarations of anything we want to poison if the 38 dnl Check for declarations of anything we want to poison if the
38 dnl corresponding gnulib module is not in use. 39 dnl corresponding gnulib module is not in use.
39 gl_WARN_ON_USE_PREPARE([[ 40 gl_WARN_ON_USE_PREPARE([[
40/* Some systems require additional headers. */ 41/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
41#ifndef __GLIBC__ 42 <wchar.h>.
43 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
44 included before <wchar.h>. */
45#if !(defined __GLIBC__ && !defined __UCLIBC__)
42# include <stddef.h> 46# include <stddef.h>
43# include <stdio.h> 47# include <stdio.h>
44# include <time.h> 48# include <time.h>
45#endif 49#endif
46#include <wchar.h> 50#include <wchar.h>
47 ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb 51 ]],
48 wcsrtombs wcsnrtombs wcwidth]) 52 [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
53 wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset
54 wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp
55 wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr
56 wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth
57 ])
49]) 58])
50 59
51dnl Check whether <wchar.h> is usable at all. 60dnl Check whether <wchar.h> is usable at all.
@@ -61,6 +70,13 @@ AC_DEFUN([gl_WCHAR_H_INLINE_OK],
61 [gl_cv_header_wchar_h_correct_inline=yes 70 [gl_cv_header_wchar_h_correct_inline=yes
62 AC_LANG_CONFTEST([ 71 AC_LANG_CONFTEST([
63 AC_LANG_SOURCE([[#define wcstod renamed_wcstod 72 AC_LANG_SOURCE([[#define wcstod renamed_wcstod
73/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
74 <wchar.h>.
75 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
76 included before <wchar.h>. */
77#include <stddef.h>
78#include <stdio.h>
79#include <time.h>
64#include <wchar.h> 80#include <wchar.h>
65extern int zero (void); 81extern int zero (void);
66int main () { return zero(); } 82int main () { return zero(); }
@@ -69,6 +85,13 @@ int main () { return zero(); }
69 mv conftest.$ac_objext conftest1.$ac_objext 85 mv conftest.$ac_objext conftest1.$ac_objext
70 AC_LANG_CONFTEST([ 86 AC_LANG_CONFTEST([
71 AC_LANG_SOURCE([[#define wcstod renamed_wcstod 87 AC_LANG_SOURCE([[#define wcstod renamed_wcstod
88/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
89 <wchar.h>.
90 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
91 included before <wchar.h>. */
92#include <stddef.h>
93#include <stdio.h>
94#include <time.h>
72#include <wchar.h> 95#include <wchar.h>
73int zero (void) { return 0; } 96int zero (void) { return 0; }
74]])]) 97]])])
@@ -96,13 +119,6 @@ Configuration aborted.])
96 fi 119 fi
97]) 120])
98 121
99dnl Unconditionally enables the replacement of <wchar.h>.
100AC_DEFUN([gl_REPLACE_WCHAR_H],
101[
102 dnl This is a no-op, because <wchar.h> is always overridden.
103 :
104])
105
106AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], 122AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
107[ 123[
108 dnl Use AC_REQUIRE here, so that the default settings are expanded once only. 124 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
@@ -114,17 +130,45 @@ AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
114 130
115AC_DEFUN([gl_WCHAR_H_DEFAULTS], 131AC_DEFUN([gl_WCHAR_H_DEFAULTS],
116[ 132[
117 GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) 133 GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC])
118 GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) 134 GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB])
119 GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) 135 GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT])
120 GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) 136 GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC])
121 GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) 137 GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN])
122 GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) 138 GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS])
123 GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) 139 GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS])
124 GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) 140 GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB])
125 GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) 141 GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS])
126 GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) 142 GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS])
127 GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) 143 GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH])
144 GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR])
145 GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP])
146 GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY])
147 GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE])
148 GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET])
149 GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN])
150 GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN])
151 GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY])
152 GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY])
153 GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY])
154 GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY])
155 GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT])
156 GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT])
157 GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP])
158 GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP])
159 GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP])
160 GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP])
161 GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL])
162 GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM])
163 GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP])
164 GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR])
165 GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR])
166 GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN])
167 GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN])
168 GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK])
169 GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR])
170 GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK])
171 GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH])
128 dnl Assume proper GNU behavior unless another module says otherwise. 172 dnl Assume proper GNU behavior unless another module says otherwise.
129 HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) 173 HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC])
130 HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) 174 HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT])
@@ -135,6 +179,34 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
135 HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) 179 HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB])
136 HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) 180 HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS])
137 HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) 181 HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS])
182 HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR])
183 HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP])
184 HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY])
185 HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE])
186 HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET])
187 HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN])
188 HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN])
189 HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY])
190 HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY])
191 HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY])
192 HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY])
193 HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT])
194 HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT])
195 HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP])
196 HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP])
197 HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP])
198 HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP])
199 HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL])
200 HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM])
201 HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP])
202 HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR])
203 HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR])
204 HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN])
205 HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN])
206 HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK])
207 HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR])
208 HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK])
209 HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH])
138 HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) 210 HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB])
139 HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) 211 HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
140 REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) 212 REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T])
@@ -149,4 +221,5 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
149 REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) 221 REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS])
150 REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) 222 REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS])
151 REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) 223 REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH])
224 REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH])
152]) 225])