Update Gnulib to the latest git version
[deliverable/binutils-gdb.git] / gnulib / import / wctype.in.h
1 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
2
3 Copyright (C) 2006-2019 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, see <https://www.gnu.org/licenses/>. */
17
18 /* Written by Bruno Haible and Paul Eggert. */
19
20 /*
21 * ISO C 99 <wctype.h> for platforms that lack it.
22 * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wctype.h.html>
23 *
24 * iswctype, towctrans, towlower, towupper, wctrans, wctype,
25 * wctrans_t, and wctype_t are not yet implemented.
26 */
27
28 #if __GNUC__ >= 3
29 @PRAGMA_SYSTEM_HEADER@
30 #endif
31 @PRAGMA_COLUMNS@
32
33 #if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__)
34
35 /* Special invocation convention:
36 - With MinGW 3.22, when <ctype.h> includes <wctype.h>, only some part of
37 <wctype.h> is being processed, which doesn't include the idempotency
38 guard. */
39
40 #@INCLUDE_NEXT@ @NEXT_WCTYPE_H@
41
42 #else
43 /* Normal invocation convention. */
44
45 #ifndef _@GUARD_PREFIX@_WCTYPE_H
46
47 #if @HAVE_WINT_T@
48 /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
49 Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
50 <wchar.h>.
51 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
52 included before <wchar.h>. */
53 # include <stddef.h>
54 # include <stdio.h>
55 # include <time.h>
56 # include <wchar.h>
57 #endif
58
59 /* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and
60 isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>. Include
61 <ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the
62 declarations. */
63 #if defined _WIN32 && ! defined __CYGWIN__
64 # include <ctype.h>
65 # include <wchar.h>
66 #endif
67
68 /* Include the original <wctype.h> if it exists.
69 BeOS 5 has the functions but no <wctype.h>. */
70 /* The include_next requires a split double-inclusion guard. */
71 #if @HAVE_WCTYPE_H@
72 # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
73 #endif
74
75 #ifndef _@GUARD_PREFIX@_WCTYPE_H
76 #define _@GUARD_PREFIX@_WCTYPE_H
77
78 #ifndef _GL_INLINE_HEADER_BEGIN
79 #error "Please include config.h first."
80 #endif
81 _GL_INLINE_HEADER_BEGIN
82 #ifndef _GL_WCTYPE_INLINE
83 # define _GL_WCTYPE_INLINE _GL_INLINE
84 #endif
85
86 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
87
88 /* The definition of _GL_WARN_ON_USE is copied here. */
89
90 /* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
91 #defines a number of identifiers in the application namespace. Revert
92 these #defines. */
93 #ifdef __sun
94 # undef multibyte
95 # undef eucw1
96 # undef eucw2
97 # undef eucw3
98 # undef scrw1
99 # undef scrw2
100 # undef scrw3
101 #endif
102
103 /* Define wint_t and WEOF. (Also done in wchar.in.h.) */
104 #if !@HAVE_WINT_T@ && !defined wint_t
105 # define wint_t int
106 # ifndef WEOF
107 # define WEOF -1
108 # endif
109 #else
110 /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
111 <stddef.h>. This is too small: ISO C 99 section 7.24.1.(2) says that
112 wint_t must be "unchanged by default argument promotions". Override it. */
113 # if @GNULIB_OVERRIDES_WINT_T@
114 # if !GNULIB_defined_wint_t
115 # if @HAVE_CRTDEFS_H@
116 # include <crtdefs.h>
117 # else
118 # include <stddef.h>
119 # endif
120 typedef unsigned int rpl_wint_t;
121 # undef wint_t
122 # define wint_t rpl_wint_t
123 # define GNULIB_defined_wint_t 1
124 # endif
125 # endif
126 # ifndef WEOF
127 # define WEOF ((wint_t) -1)
128 # endif
129 #endif
130
131
132 #if !GNULIB_defined_wctype_functions
133
134 /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
135 Linux libc5 has <wctype.h> and the functions but they are broken.
136 mingw and MSVC have <wctype.h> and the functions but they take a wchar_t
137 as argument, not an rpl_wint_t.
138 Assume all 11 functions (all isw* except iswblank) are implemented the
139 same way, or not at all. */
140 # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
141
142 # if @GNULIB_OVERRIDES_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */
143
144 _GL_WCTYPE_INLINE int
145 rpl_iswalnum (wint_t wc)
146 {
147 return ((wchar_t) wc == wc ? iswalnum ((wchar_t) wc) : 0);
148 }
149
150 _GL_WCTYPE_INLINE int
151 rpl_iswalpha (wint_t wc)
152 {
153 return ((wchar_t) wc == wc ? iswalpha ((wchar_t) wc) : 0);
154 }
155
156 _GL_WCTYPE_INLINE int
157 rpl_iswblank (wint_t wc)
158 {
159 return ((wchar_t) wc == wc ? iswblank ((wchar_t) wc) : 0);
160 }
161
162 _GL_WCTYPE_INLINE int
163 rpl_iswcntrl (wint_t wc)
164 {
165 return ((wchar_t) wc == wc ? iswcntrl ((wchar_t) wc) : 0);
166 }
167
168 _GL_WCTYPE_INLINE int
169 rpl_iswdigit (wint_t wc)
170 {
171 return ((wchar_t) wc == wc ? iswdigit ((wchar_t) wc) : 0);
172 }
173
174 _GL_WCTYPE_INLINE int
175 rpl_iswgraph (wint_t wc)
176 {
177 return ((wchar_t) wc == wc ? iswgraph ((wchar_t) wc) : 0);
178 }
179
180 _GL_WCTYPE_INLINE int
181 rpl_iswlower (wint_t wc)
182 {
183 return ((wchar_t) wc == wc ? iswlower ((wchar_t) wc) : 0);
184 }
185
186 _GL_WCTYPE_INLINE int
187 rpl_iswprint (wint_t wc)
188 {
189 return ((wchar_t) wc == wc ? iswprint ((wchar_t) wc) : 0);
190 }
191
192 _GL_WCTYPE_INLINE int
193 rpl_iswpunct (wint_t wc)
194 {
195 return ((wchar_t) wc == wc ? iswpunct ((wchar_t) wc) : 0);
196 }
197
198 _GL_WCTYPE_INLINE int
199 rpl_iswspace (wint_t wc)
200 {
201 return ((wchar_t) wc == wc ? iswspace ((wchar_t) wc) : 0);
202 }
203
204 _GL_WCTYPE_INLINE int
205 rpl_iswupper (wint_t wc)
206 {
207 return ((wchar_t) wc == wc ? iswupper ((wchar_t) wc) : 0);
208 }
209
210 _GL_WCTYPE_INLINE int
211 rpl_iswxdigit (wint_t wc)
212 {
213 return ((wchar_t) wc == wc ? iswxdigit ((wchar_t) wc) : 0);
214 }
215
216 _GL_WCTYPE_INLINE wint_t
217 rpl_towlower (wint_t wc)
218 {
219 return ((wchar_t) wc == wc ? (wchar_t) towlower ((wchar_t) wc) : wc);
220 }
221
222 _GL_WCTYPE_INLINE wint_t
223 rpl_towupper (wint_t wc)
224 {
225 return ((wchar_t) wc == wc ? (wchar_t) towupper ((wchar_t) wc) : wc);
226 }
227
228 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
229 # undef iswalnum
230 # undef iswalpha
231 # undef iswblank
232 # undef iswcntrl
233 # undef iswdigit
234 # undef iswgraph
235 # undef iswlower
236 # undef iswprint
237 # undef iswpunct
238 # undef iswspace
239 # undef iswupper
240 # undef iswxdigit
241 # undef towlower
242 # undef towupper
243 # define iswalnum rpl_iswalnum
244 # define iswalpha rpl_iswalpha
245 # define iswblank rpl_iswblank
246 # define iswcntrl rpl_iswcntrl
247 # define iswdigit rpl_iswdigit
248 # define iswgraph rpl_iswgraph
249 # define iswlower rpl_iswlower
250 # define iswprint rpl_iswprint
251 # define iswpunct rpl_iswpunct
252 # define iswspace rpl_iswspace
253 # define iswupper rpl_iswupper
254 # define iswxdigit rpl_iswxdigit
255 # define towlower rpl_towlower
256 # define towupper rpl_towupper
257 # endif
258
259 # else
260
261 /* IRIX 5.3 has macros but no functions, its isw* macros refer to an
262 undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
263 refer to system functions like _iswctype that are not in the
264 standard C library. Rather than try to get ancient buggy
265 implementations like this to work, just disable them. */
266 # undef iswalnum
267 # undef iswalpha
268 # undef iswblank
269 # undef iswcntrl
270 # undef iswdigit
271 # undef iswgraph
272 # undef iswlower
273 # undef iswprint
274 # undef iswpunct
275 # undef iswspace
276 # undef iswupper
277 # undef iswxdigit
278 # undef towlower
279 # undef towupper
280
281 /* Linux libc5 has <wctype.h> and the functions but they are broken. */
282 # if @REPLACE_ISWCNTRL@
283 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
284 # define iswalnum rpl_iswalnum
285 # define iswalpha rpl_iswalpha
286 # define iswblank rpl_iswblank
287 # define iswcntrl rpl_iswcntrl
288 # define iswdigit rpl_iswdigit
289 # define iswgraph rpl_iswgraph
290 # define iswlower rpl_iswlower
291 # define iswprint rpl_iswprint
292 # define iswpunct rpl_iswpunct
293 # define iswspace rpl_iswspace
294 # define iswupper rpl_iswupper
295 # define iswxdigit rpl_iswxdigit
296 # endif
297 # endif
298 # if @REPLACE_TOWLOWER@
299 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
300 # define towlower rpl_towlower
301 # define towupper rpl_towupper
302 # endif
303 # endif
304
305 _GL_WCTYPE_INLINE int
306 # if @REPLACE_ISWCNTRL@
307 rpl_iswalnum
308 # else
309 iswalnum
310 # endif
311 (wint_t wc)
312 {
313 return ((wc >= '0' && wc <= '9')
314 || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
315 }
316
317 _GL_WCTYPE_INLINE int
318 # if @REPLACE_ISWCNTRL@
319 rpl_iswalpha
320 # else
321 iswalpha
322 # endif
323 (wint_t wc)
324 {
325 return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
326 }
327
328 _GL_WCTYPE_INLINE int
329 # if @REPLACE_ISWCNTRL@
330 rpl_iswblank
331 # else
332 iswblank
333 # endif
334 (wint_t wc)
335 {
336 return wc == ' ' || wc == '\t';
337 }
338
339 _GL_WCTYPE_INLINE int
340 # if @REPLACE_ISWCNTRL@
341 rpl_iswcntrl
342 # else
343 iswcntrl
344 # endif
345 (wint_t wc)
346 {
347 return (wc & ~0x1f) == 0 || wc == 0x7f;
348 }
349
350 _GL_WCTYPE_INLINE int
351 # if @REPLACE_ISWCNTRL@
352 rpl_iswdigit
353 # else
354 iswdigit
355 # endif
356 (wint_t wc)
357 {
358 return wc >= '0' && wc <= '9';
359 }
360
361 _GL_WCTYPE_INLINE int
362 # if @REPLACE_ISWCNTRL@
363 rpl_iswgraph
364 # else
365 iswgraph
366 # endif
367 (wint_t wc)
368 {
369 return wc >= '!' && wc <= '~';
370 }
371
372 _GL_WCTYPE_INLINE int
373 # if @REPLACE_ISWCNTRL@
374 rpl_iswlower
375 # else
376 iswlower
377 # endif
378 (wint_t wc)
379 {
380 return wc >= 'a' && wc <= 'z';
381 }
382
383 _GL_WCTYPE_INLINE int
384 # if @REPLACE_ISWCNTRL@
385 rpl_iswprint
386 # else
387 iswprint
388 # endif
389 (wint_t wc)
390 {
391 return wc >= ' ' && wc <= '~';
392 }
393
394 _GL_WCTYPE_INLINE int
395 # if @REPLACE_ISWCNTRL@
396 rpl_iswpunct
397 # else
398 iswpunct
399 # endif
400 (wint_t wc)
401 {
402 return (wc >= '!' && wc <= '~'
403 && !((wc >= '0' && wc <= '9')
404 || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
405 }
406
407 _GL_WCTYPE_INLINE int
408 # if @REPLACE_ISWCNTRL@
409 rpl_iswspace
410 # else
411 iswspace
412 # endif
413 (wint_t wc)
414 {
415 return (wc == ' ' || wc == '\t'
416 || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
417 }
418
419 _GL_WCTYPE_INLINE int
420 # if @REPLACE_ISWCNTRL@
421 rpl_iswupper
422 # else
423 iswupper
424 # endif
425 (wint_t wc)
426 {
427 return wc >= 'A' && wc <= 'Z';
428 }
429
430 _GL_WCTYPE_INLINE int
431 # if @REPLACE_ISWCNTRL@
432 rpl_iswxdigit
433 # else
434 iswxdigit
435 # endif
436 (wint_t wc)
437 {
438 return ((wc >= '0' && wc <= '9')
439 || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
440 }
441
442 _GL_WCTYPE_INLINE wint_t
443 # if @REPLACE_TOWLOWER@
444 rpl_towlower
445 # else
446 towlower
447 # endif
448 (wint_t wc)
449 {
450 return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
451 }
452
453 _GL_WCTYPE_INLINE wint_t
454 # if @REPLACE_TOWLOWER@
455 rpl_towupper
456 # else
457 towupper
458 # endif
459 (wint_t wc)
460 {
461 return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
462 }
463
464 # endif
465
466 # elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@)
467 /* Only the iswblank function is missing. */
468
469 # if @REPLACE_ISWBLANK@
470 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
471 # define iswblank rpl_iswblank
472 # endif
473 _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
474 # else
475 _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
476 # endif
477
478 # endif
479
480 # if defined __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@
481
482 /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
483 The functions towlower and towupper are implemented in the MSVCRT library
484 to take a wchar_t argument and return a wchar_t result. mingw declares
485 these functions to take a wint_t argument and return a wint_t result.
486 This means that:
487 1. When the user passes an argument outside the range 0x0000..0xFFFF, the
488 function will look only at the lower 16 bits. This is allowed according
489 to POSIX.
490 2. The return value is returned in the lower 16 bits of the result register.
491 The upper 16 bits are random: whatever happened to be in that part of the
492 result register. We need to fix this by adding a zero-extend from
493 wchar_t to wint_t after the call. */
494
495 _GL_WCTYPE_INLINE wint_t
496 rpl_towlower (wint_t wc)
497 {
498 return (wint_t) (wchar_t) towlower (wc);
499 }
500 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
501 # define towlower rpl_towlower
502 # endif
503
504 _GL_WCTYPE_INLINE wint_t
505 rpl_towupper (wint_t wc)
506 {
507 return (wint_t) (wchar_t) towupper (wc);
508 }
509 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
510 # define towupper rpl_towupper
511 # endif
512
513 # endif /* __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@ */
514
515 # define GNULIB_defined_wctype_functions 1
516 #endif
517
518 #if @REPLACE_ISWCNTRL@
519 _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
520 _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc));
521 _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc));
522 _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc));
523 _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc));
524 _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc));
525 _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc));
526 _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc));
527 _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc));
528 _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc));
529 _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc));
530 #else
531 _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc));
532 _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc));
533 _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc));
534 _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc));
535 _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc));
536 _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc));
537 _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc));
538 _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc));
539 _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc));
540 _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc));
541 _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc));
542 #endif
543 #if __GLIBC__ >= 2
544 _GL_CXXALIASWARN (iswalnum);
545 _GL_CXXALIASWARN (iswalpha);
546 _GL_CXXALIASWARN (iswcntrl);
547 _GL_CXXALIASWARN (iswdigit);
548 _GL_CXXALIASWARN (iswgraph);
549 _GL_CXXALIASWARN (iswlower);
550 _GL_CXXALIASWARN (iswprint);
551 _GL_CXXALIASWARN (iswpunct);
552 _GL_CXXALIASWARN (iswspace);
553 _GL_CXXALIASWARN (iswupper);
554 _GL_CXXALIASWARN (iswxdigit);
555 #endif
556
557 #if @GNULIB_ISWBLANK@
558 # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@
559 _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
560 # else
561 _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
562 # endif
563 # if __GLIBC__ >= 2
564 _GL_CXXALIASWARN (iswblank);
565 # endif
566 #endif
567
568 #if !@HAVE_WCTYPE_T@
569 # if !GNULIB_defined_wctype_t
570 typedef void * wctype_t;
571 # define GNULIB_defined_wctype_t 1
572 # endif
573 #endif
574
575 /* Get a descriptor for a wide character property. */
576 #if @GNULIB_WCTYPE@
577 # if !@HAVE_WCTYPE_T@
578 _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name));
579 # endif
580 _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
581 # if __GLIBC__ >= 2
582 _GL_CXXALIASWARN (wctype);
583 # endif
584 #elif defined GNULIB_POSIXCHECK
585 # undef wctype
586 # if HAVE_RAW_DECL_WCTYPE
587 _GL_WARN_ON_USE (wctype, "wctype is unportable - "
588 "use gnulib module wctype for portability");
589 # endif
590 #endif
591
592 /* Test whether a wide character has a given property.
593 The argument WC must be either a wchar_t value or WEOF.
594 The argument DESC must have been returned by the wctype() function. */
595 #if @GNULIB_ISWCTYPE@
596 # if @GNULIB_OVERRIDES_WINT_T@
597 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
598 # undef iswctype
599 # define iswctype rpl_iswctype
600 # endif
601 _GL_FUNCDECL_RPL (iswctype, int, (wint_t wc, wctype_t desc));
602 _GL_CXXALIAS_RPL (iswctype, int, (wint_t wc, wctype_t desc));
603 # else
604 # if !@HAVE_WCTYPE_T@
605 _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
606 # endif
607 _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
608 # endif
609 # if __GLIBC__ >= 2
610 _GL_CXXALIASWARN (iswctype);
611 # endif
612 #elif defined GNULIB_POSIXCHECK
613 # undef iswctype
614 # if HAVE_RAW_DECL_ISWCTYPE
615 _GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
616 "use gnulib module iswctype for portability");
617 # endif
618 #endif
619
620 #if @REPLACE_TOWLOWER@ || defined __MINGW32__
621 _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
622 _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
623 #else
624 _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc));
625 _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc));
626 #endif
627 #if __GLIBC__ >= 2
628 _GL_CXXALIASWARN (towlower);
629 _GL_CXXALIASWARN (towupper);
630 #endif
631
632 #if !@HAVE_WCTRANS_T@
633 # if !GNULIB_defined_wctrans_t
634 typedef void * wctrans_t;
635 # define GNULIB_defined_wctrans_t 1
636 # endif
637 #endif
638
639 /* Get a descriptor for a wide character case conversion. */
640 #if @GNULIB_WCTRANS@
641 # if !@HAVE_WCTRANS_T@
642 _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name));
643 # endif
644 _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
645 # if __GLIBC__ >= 2
646 _GL_CXXALIASWARN (wctrans);
647 # endif
648 #elif defined GNULIB_POSIXCHECK
649 # undef wctrans
650 # if HAVE_RAW_DECL_WCTRANS
651 _GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
652 "use gnulib module wctrans for portability");
653 # endif
654 #endif
655
656 /* Perform a given case conversion on a wide character.
657 The argument WC must be either a wchar_t value or WEOF.
658 The argument DESC must have been returned by the wctrans() function. */
659 #if @GNULIB_TOWCTRANS@
660 # if !@HAVE_WCTRANS_T@
661 _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
662 # endif
663 _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
664 # if __GLIBC__ >= 2
665 _GL_CXXALIASWARN (towctrans);
666 # endif
667 #elif defined GNULIB_POSIXCHECK
668 # undef towctrans
669 # if HAVE_RAW_DECL_TOWCTRANS
670 _GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
671 "use gnulib module towctrans for portability");
672 # endif
673 #endif
674
675 _GL_INLINE_HEADER_END
676
677 #endif /* _@GUARD_PREFIX@_WCTYPE_H */
678 #endif /* _@GUARD_PREFIX@_WCTYPE_H */
679 #endif
This page took 0.044525 seconds and 4 git commands to generate.