GDBserver
wctype.h
Go to the documentation of this file.
1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
3 
4  Copyright (C) 2006-2012 Free Software Foundation, Inc.
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 3, or (at your option)
9  any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, see <http://www.gnu.org/licenses/>. */
18 
19 /* Written by Bruno Haible and Paul Eggert. */
20 
21 /*
22  * ISO C 99 <wctype.h> for platforms that lack it.
23  * <http://www.opengroup.org/susv3xbd/wctype.h.html>
24  *
25  * iswctype, towctrans, towlower, towupper, wctrans, wctype,
26  * wctrans_t, and wctype_t are not yet implemented.
27  */
28 
29 #ifndef _GL_WCTYPE_H
30 
31 #if __GNUC__ >= 3
32 #pragma GCC system_header
33 #endif
34 
35 
36 #if 1
37 /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
38  Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
39  <wchar.h>.
40  BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
41  included before <wchar.h>. */
42 # include <stddef.h>
43 # include <stdio.h>
44 # include <time.h>
45 # include <wchar.h>
46 #endif
47 
48 /* Include the original <wctype.h> if it exists.
49  BeOS 5 has the functions but no <wctype.h>. */
50 /* The include_next requires a split double-inclusion guard. */
51 #if 1
52 # include_next <wctype.h>
53 #endif
54 
55 #ifndef _GL_WCTYPE_H
56 #define _GL_WCTYPE_H
57 
59 #ifndef _GL_WCTYPE_INLINE
60 # define _GL_WCTYPE_INLINE _GL_INLINE
61 #endif
62 
63 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
64 #ifndef _GL_CXXDEFS_H
65 #define _GL_CXXDEFS_H
66 
67 /* The three most frequent use cases of these macros are:
68 
69  * For providing a substitute for a function that is missing on some
70  platforms, but is declared and works fine on the platforms on which
71  it exists:
72 
73  #if @GNULIB_FOO@
74  # if !@HAVE_FOO@
75  _GL_FUNCDECL_SYS (foo, ...);
76  # endif
77  _GL_CXXALIAS_SYS (foo, ...);
78  _GL_CXXALIASWARN (foo);
79  #elif defined GNULIB_POSIXCHECK
80  ...
81  #endif
82 
83  * For providing a replacement for a function that exists on all platforms,
84  but is broken/insufficient and needs to be replaced on some platforms:
85 
86  #if @GNULIB_FOO@
87  # if @REPLACE_FOO@
88  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
89  # undef foo
90  # define foo rpl_foo
91  # endif
92  _GL_FUNCDECL_RPL (foo, ...);
93  _GL_CXXALIAS_RPL (foo, ...);
94  # else
95  _GL_CXXALIAS_SYS (foo, ...);
96  # endif
97  _GL_CXXALIASWARN (foo);
98  #elif defined GNULIB_POSIXCHECK
99  ...
100  #endif
101 
102  * For providing a replacement for a function that exists on some platforms
103  but is broken/insufficient and needs to be replaced on some of them and
104  is additionally either missing or undeclared on some other platforms:
105 
106  #if @GNULIB_FOO@
107  # if @REPLACE_FOO@
108  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
109  # undef foo
110  # define foo rpl_foo
111  # endif
112  _GL_FUNCDECL_RPL (foo, ...);
113  _GL_CXXALIAS_RPL (foo, ...);
114  # else
115  # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
116  _GL_FUNCDECL_SYS (foo, ...);
117  # endif
118  _GL_CXXALIAS_SYS (foo, ...);
119  # endif
120  _GL_CXXALIASWARN (foo);
121  #elif defined GNULIB_POSIXCHECK
122  ...
123  #endif
124 */
125 
126 /* _GL_EXTERN_C declaration;
127  performs the declaration with C linkage. */
128 #if defined __cplusplus
129 # define _GL_EXTERN_C extern "C"
130 #else
131 # define _GL_EXTERN_C extern
132 #endif
133 
134 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
135  declares a replacement function, named rpl_func, with the given prototype,
136  consisting of return type, parameters, and attributes.
137  Example:
138  _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
139  _GL_ARG_NONNULL ((1)));
140  */
141 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
142  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
143 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
144  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
145 
146 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
147  declares the system function, named func, with the given prototype,
148  consisting of return type, parameters, and attributes.
149  Example:
150  _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
151  _GL_ARG_NONNULL ((1)));
152  */
153 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
154  _GL_EXTERN_C rettype func parameters_and_attributes
155 
156 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
157  declares a C++ alias called GNULIB_NAMESPACE::func
158  that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
159  Example:
160  _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
161  */
162 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
163  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
164 #if defined __cplusplus && defined GNULIB_NAMESPACE
165 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
166  namespace GNULIB_NAMESPACE \
167  { \
168  rettype (*const func) parameters = ::rpl_func; \
169  } \
170  _GL_EXTERN_C int _gl_cxxalias_dummy
171 #else
172 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
173  _GL_EXTERN_C int _gl_cxxalias_dummy
174 #endif
175 
176 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
177  is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
178  except that the C function rpl_func may have a slightly different
179  declaration. A cast is used to silence the "invalid conversion" error
180  that would otherwise occur. */
181 #if defined __cplusplus && defined GNULIB_NAMESPACE
182 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
183  namespace GNULIB_NAMESPACE \
184  { \
185  rettype (*const func) parameters = \
186  reinterpret_cast<rettype(*)parameters>(::rpl_func); \
187  } \
188  _GL_EXTERN_C int _gl_cxxalias_dummy
189 #else
190 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
191  _GL_EXTERN_C int _gl_cxxalias_dummy
192 #endif
193 
194 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
195  declares a C++ alias called GNULIB_NAMESPACE::func
196  that redirects to the system provided function func, if GNULIB_NAMESPACE
197  is defined.
198  Example:
199  _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
200  */
201 #if defined __cplusplus && defined GNULIB_NAMESPACE
202  /* If we were to write
203  rettype (*const func) parameters = ::func;
204  like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
205  better (remove an indirection through a 'static' pointer variable),
206  but then the _GL_CXXALIASWARN macro below would cause a warning not only
207  for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
208 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
209  namespace GNULIB_NAMESPACE \
210  { \
211  static rettype (*func) parameters = ::func; \
212  } \
213  _GL_EXTERN_C int _gl_cxxalias_dummy
214 #else
215 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
216  _GL_EXTERN_C int _gl_cxxalias_dummy
217 #endif
218 
219 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
220  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
221  except that the C function func may have a slightly different declaration.
222  A cast is used to silence the "invalid conversion" error that would
223  otherwise occur. */
224 #if defined __cplusplus && defined GNULIB_NAMESPACE
225 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
226  namespace GNULIB_NAMESPACE \
227  { \
228  static rettype (*func) parameters = \
229  reinterpret_cast<rettype(*)parameters>(::func); \
230  } \
231  _GL_EXTERN_C int _gl_cxxalias_dummy
232 #else
233 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
234  _GL_EXTERN_C int _gl_cxxalias_dummy
235 #endif
236 
237 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
238  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
239  except that the C function is picked among a set of overloaded functions,
240  namely the one with rettype2 and parameters2. Two consecutive casts
241  are used to silence the "cannot find a match" and "invalid conversion"
242  errors that would otherwise occur. */
243 #if defined __cplusplus && defined GNULIB_NAMESPACE
244  /* The outer cast must be a reinterpret_cast.
245  The inner cast: When the function is defined as a set of overloaded
246  functions, it works as a static_cast<>, choosing the designated variant.
247  When the function is defined as a single variant, it works as a
248  reinterpret_cast<>. The parenthesized cast syntax works both ways. */
249 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
250  namespace GNULIB_NAMESPACE \
251  { \
252  static rettype (*func) parameters = \
253  reinterpret_cast<rettype(*)parameters>( \
254  (rettype2(*)parameters2)(::func)); \
255  } \
256  _GL_EXTERN_C int _gl_cxxalias_dummy
257 #else
258 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
259  _GL_EXTERN_C int _gl_cxxalias_dummy
260 #endif
261 
262 /* _GL_CXXALIASWARN (func);
263  causes a warning to be emitted when ::func is used but not when
264  GNULIB_NAMESPACE::func is used. func must be defined without overloaded
265  variants. */
266 #if defined __cplusplus && defined GNULIB_NAMESPACE
267 # define _GL_CXXALIASWARN(func) \
268  _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
269 # define _GL_CXXALIASWARN_1(func,namespace) \
270  _GL_CXXALIASWARN_2 (func, namespace)
271 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
272  we enable the warning only when not optimizing. */
273 # if !__OPTIMIZE__
274 # define _GL_CXXALIASWARN_2(func,namespace) \
275  _GL_WARN_ON_USE (func, \
276  "The symbol ::" #func " refers to the system function. " \
277  "Use " #namespace "::" #func " instead.")
278 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
279 # define _GL_CXXALIASWARN_2(func,namespace) \
280  extern __typeof__ (func) func
281 # else
282 # define _GL_CXXALIASWARN_2(func,namespace) \
283  _GL_EXTERN_C int _gl_cxxalias_dummy
284 # endif
285 #else
286 # define _GL_CXXALIASWARN(func) \
287  _GL_EXTERN_C int _gl_cxxalias_dummy
288 #endif
289 
290 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
291  causes a warning to be emitted when the given overloaded variant of ::func
292  is used but not when GNULIB_NAMESPACE::func is used. */
293 #if defined __cplusplus && defined GNULIB_NAMESPACE
294 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
295  _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
296  GNULIB_NAMESPACE)
297 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
298  _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
299 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
300  we enable the warning only when not optimizing. */
301 # if !__OPTIMIZE__
302 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
303  _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
304  "The symbol ::" #func " refers to the system function. " \
305  "Use " #namespace "::" #func " instead.")
306 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
307 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
308  extern __typeof__ (func) func
309 # else
310 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
311  _GL_EXTERN_C int _gl_cxxalias_dummy
312 # endif
313 #else
314 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
315  _GL_EXTERN_C int _gl_cxxalias_dummy
316 #endif
317 
318 #endif /* _GL_CXXDEFS_H */
319 
320 /* The definition of _GL_WARN_ON_USE is copied here. */
321 #ifndef _GL_WARN_ON_USE
322 
323 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
324 /* A compiler attribute is available in gcc versions 4.3.0 and later. */
325 # define _GL_WARN_ON_USE(function, message) \
326 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
327 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
328 /* Verify the existence of the function. */
329 # define _GL_WARN_ON_USE(function, message) \
330 extern __typeof__ (function) function
331 # else /* Unsupported. */
332 # define _GL_WARN_ON_USE(function, message) \
333 _GL_WARN_EXTERN_C int _gl_warn_on_use
334 # endif
335 #endif
336 
337 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
338  is like _GL_WARN_ON_USE (function, "string"), except that the function is
339  declared with the given prototype, consisting of return type, parameters,
340  and attributes.
341  This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
342  not work in this case. */
343 #ifndef _GL_WARN_ON_USE_CXX
344 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
345 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
346 extern rettype function parameters_and_attributes \
347  __attribute__ ((__warning__ (msg)))
348 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
349 /* Verify the existence of the function. */
350 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
351 extern rettype function parameters_and_attributes
352 # else /* Unsupported. */
353 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
354 _GL_WARN_EXTERN_C int _gl_warn_on_use
355 # endif
356 #endif
357 
358 /* _GL_WARN_EXTERN_C declaration;
359  performs the declaration with C linkage. */
360 #ifndef _GL_WARN_EXTERN_C
361 # if defined __cplusplus
362 # define _GL_WARN_EXTERN_C extern "C"
363 # else
364 # define _GL_WARN_EXTERN_C extern
365 # endif
366 #endif
367 
368 /* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
369  #defines a number of identifiers in the application namespace. Revert
370  these #defines. */
371 #ifdef __sun
372 # undef multibyte
373 # undef eucw1
374 # undef eucw2
375 # undef eucw3
376 # undef scrw1
377 # undef scrw2
378 # undef scrw3
379 #endif
380 
381 /* Define wint_t and WEOF. (Also done in wchar.in.h.) */
382 #if !1 && !defined wint_t
383 # define wint_t int
384 # ifndef WEOF
385 # define WEOF -1
386 # endif
387 #else
388 /* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
389  This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
390  "unchanged by default argument promotions". Override it. */
391 # if defined _MSC_VER
392 # if !GNULIB_defined_wint_t
393 # include <crtdefs.h>
394 typedef unsigned int rpl_wint_t;
395 # undef wint_t
396 # define wint_t rpl_wint_t
397 # define GNULIB_defined_wint_t 1
398 # endif
399 # endif
400 # ifndef WEOF
401 # define WEOF ((wint_t) -1)
402 # endif
403 #endif
404 
405 
406 #if !GNULIB_defined_wctype_functions
407 
408 /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
409  Linux libc5 has <wctype.h> and the functions but they are broken.
410  Assume all 11 functions (all isw* except iswblank) are implemented the
411  same way, or not at all. */
412 # if ! 1 || 0
413 
414 /* IRIX 5.3 has macros but no functions, its isw* macros refer to an
415  undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
416  refer to system functions like _iswctype that are not in the
417  standard C library. Rather than try to get ancient buggy
418  implementations like this to work, just disable them. */
419 # undef iswalnum
420 # undef iswalpha
421 # undef iswblank
422 # undef iswcntrl
423 # undef iswdigit
424 # undef iswgraph
425 # undef iswlower
426 # undef iswprint
427 # undef iswpunct
428 # undef iswspace
429 # undef iswupper
430 # undef iswxdigit
431 # undef towlower
432 # undef towupper
433 
434 /* Linux libc5 has <wctype.h> and the functions but they are broken. */
435 # if 0
436 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
437 # define iswalnum rpl_iswalnum
438 # define iswalpha rpl_iswalpha
439 # define iswblank rpl_iswblank
440 # define iswcntrl rpl_iswcntrl
441 # define iswdigit rpl_iswdigit
442 # define iswgraph rpl_iswgraph
443 # define iswlower rpl_iswlower
444 # define iswprint rpl_iswprint
445 # define iswpunct rpl_iswpunct
446 # define iswspace rpl_iswspace
447 # define iswupper rpl_iswupper
448 # define iswxdigit rpl_iswxdigit
449 # endif
450 # endif
451 # if 0
452 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
453 # define towlower rpl_towlower
454 # define towupper rpl_towupper
455 # endif
456 # endif
457 
459 # if 0
460 rpl_iswalnum
461 # else
462 iswalnum
463 # endif
464  (wint_t wc)
465 {
466  return ((wc >= '0' && wc <= '9')
467  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
468 }
469 
471 # if 0
472 rpl_iswalpha
473 # else
474 iswalpha
475 # endif
476  (wint_t wc)
477 {
478  return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
479 }
480 
482 # if 0
483 rpl_iswblank
484 # else
485 iswblank
486 # endif
487  (wint_t wc)
488 {
489  return wc == ' ' || wc == '\t';
490 }
491 
493 # if 0
494 rpl_iswcntrl
495 # else
496 iswcntrl
497 # endif
498  (wint_t wc)
499 {
500  return (wc & ~0x1f) == 0 || wc == 0x7f;
501 }
502 
504 # if 0
505 rpl_iswdigit
506 # else
507 iswdigit
508 # endif
509  (wint_t wc)
510 {
511  return wc >= '0' && wc <= '9';
512 }
513 
515 # if 0
516 rpl_iswgraph
517 # else
518 iswgraph
519 # endif
520  (wint_t wc)
521 {
522  return wc >= '!' && wc <= '~';
523 }
524 
526 # if 0
527 rpl_iswlower
528 # else
529 iswlower
530 # endif
531  (wint_t wc)
532 {
533  return wc >= 'a' && wc <= 'z';
534 }
535 
537 # if 0
538 rpl_iswprint
539 # else
540 iswprint
541 # endif
542  (wint_t wc)
543 {
544  return wc >= ' ' && wc <= '~';
545 }
546 
548 # if 0
549 rpl_iswpunct
550 # else
551 iswpunct
552 # endif
553  (wint_t wc)
554 {
555  return (wc >= '!' && wc <= '~'
556  && !((wc >= '0' && wc <= '9')
557  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
558 }
559 
561 # if 0
562 rpl_iswspace
563 # else
564 iswspace
565 # endif
566  (wint_t wc)
567 {
568  return (wc == ' ' || wc == '\t'
569  || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
570 }
571 
573 # if 0
574 rpl_iswupper
575 # else
576 iswupper
577 # endif
578  (wint_t wc)
579 {
580  return wc >= 'A' && wc <= 'Z';
581 }
582 
584 # if 0
585 rpl_iswxdigit
586 # else
587 iswxdigit
588 # endif
589  (wint_t wc)
590 {
591  return ((wc >= '0' && wc <= '9')
592  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
593 }
594 
595 _GL_WCTYPE_INLINE wint_t
596 # if 0
597 rpl_towlower
598 # else
599 towlower
600 # endif
601  (wint_t wc)
602 {
603  return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
604 }
605 
606 _GL_WCTYPE_INLINE wint_t
607 # if 0
608 rpl_towupper
609 # else
610 towupper
611 # endif
612  (wint_t wc)
613 {
614  return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
615 }
616 
617 # elif 0 && (! 1 || 0)
618 /* Only the iswblank function is missing. */
619 
620 # if 0
621 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
622 # define iswblank rpl_iswblank
623 # endif
624 _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
625 # else
626 _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
627 # endif
628 
629 # endif
630 
631 # if defined __MINGW32__
632 
633 /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
634  The functions towlower and towupper are implemented in the MSVCRT library
635  to take a wchar_t argument and return a wchar_t result. mingw declares
636  these functions to take a wint_t argument and return a wint_t result.
637  This means that:
638  1. When the user passes an argument outside the range 0x0000..0xFFFF, the
639  function will look only at the lower 16 bits. This is allowed according
640  to POSIX.
641  2. The return value is returned in the lower 16 bits of the result register.
642  The upper 16 bits are random: whatever happened to be in that part of the
643  result register. We need to fix this by adding a zero-extend from
644  wchar_t to wint_t after the call. */
645 
646 _GL_WCTYPE_INLINE wint_t
647 rpl_towlower (wint_t wc)
648 {
649  return (wint_t) (wchar_t) towlower (wc);
650 }
651 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
652 # define towlower rpl_towlower
653 # endif
654 
655 _GL_WCTYPE_INLINE wint_t
656 rpl_towupper (wint_t wc)
657 {
658  return (wint_t) (wchar_t) towupper (wc);
659 }
660 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
661 # define towupper rpl_towupper
662 # endif
663 
664 # endif /* __MINGW32__ */
665 
666 # define GNULIB_defined_wctype_functions 1
667 #endif
668 
669 #if 0
670 _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
671 _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc));
672 _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc));
673 _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc));
674 _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc));
675 _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc));
676 _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc));
677 _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc));
678 _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc));
679 _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc));
680 _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc));
681 #else
682 _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc));
683 _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc));
684 _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc));
685 _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc));
686 _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc));
687 _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc));
688 _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc));
689 _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc));
690 _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc));
691 _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc));
692 _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc));
693 #endif
694 _GL_CXXALIASWARN (iswalnum);
695 _GL_CXXALIASWARN (iswalpha);
696 _GL_CXXALIASWARN (iswcntrl);
697 _GL_CXXALIASWARN (iswdigit);
698 _GL_CXXALIASWARN (iswgraph);
699 _GL_CXXALIASWARN (iswlower);
700 _GL_CXXALIASWARN (iswprint);
701 _GL_CXXALIASWARN (iswpunct);
702 _GL_CXXALIASWARN (iswspace);
703 _GL_CXXALIASWARN (iswupper);
704 _GL_CXXALIASWARN (iswxdigit);
705 
706 #if 0
707 # if 0 || 0
708 _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
709 # else
710 _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
711 # endif
712 _GL_CXXALIASWARN (iswblank);
713 #endif
714 
715 #if !1
716 # if !GNULIB_defined_wctype_t
717 typedef void * wctype_t;
718 # define GNULIB_defined_wctype_t 1
719 # endif
720 #endif
721 
722 /* Get a descriptor for a wide character property. */
723 #if 0
724 # if !1
725 _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name));
726 # endif
727 _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
728 _GL_CXXALIASWARN (wctype);
729 #elif defined GNULIB_POSIXCHECK
730 # undef wctype
731 # if HAVE_RAW_DECL_WCTYPE
732 _GL_WARN_ON_USE (wctype, "wctype is unportable - "
733  "use gnulib module wctype for portability");
734 # endif
735 #endif
736 
737 /* Test whether a wide character has a given property.
738  The argument WC must be either a wchar_t value or WEOF.
739  The argument DESC must have been returned by the wctype() function. */
740 #if 0
741 # if !1
742 _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
743 # endif
744 _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
745 _GL_CXXALIASWARN (iswctype);
746 #elif defined GNULIB_POSIXCHECK
747 # undef iswctype
748 # if HAVE_RAW_DECL_ISWCTYPE
749 _GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
750  "use gnulib module iswctype for portability");
751 # endif
752 #endif
753 
754 #if 0 || defined __MINGW32__
755 _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
756 _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
757 #else
758 _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc));
759 _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc));
760 #endif
761 _GL_CXXALIASWARN (towlower);
762 _GL_CXXALIASWARN (towupper);
763 
764 #if !1
765 # if !GNULIB_defined_wctrans_t
766 typedef void * wctrans_t;
767 # define GNULIB_defined_wctrans_t 1
768 # endif
769 #endif
770 
771 /* Get a descriptor for a wide character case conversion. */
772 #if 0
773 # if !1
774 _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name));
775 # endif
776 _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
777 _GL_CXXALIASWARN (wctrans);
778 #elif defined GNULIB_POSIXCHECK
779 # undef wctrans
780 # if HAVE_RAW_DECL_WCTRANS
781 _GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
782  "use gnulib module wctrans for portability");
783 # endif
784 #endif
785 
786 /* Perform a given case conversion on a wide character.
787  The argument WC must be either a wchar_t value or WEOF.
788  The argument DESC must have been returned by the wctrans() function. */
789 #if 0
790 # if !1
791 _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
792 # endif
793 _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
794 _GL_CXXALIASWARN (towctrans);
795 #elif defined GNULIB_POSIXCHECK
796 # undef towctrans
797 # if HAVE_RAW_DECL_TOWCTRANS
798 _GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
799  "use gnulib module towctrans for portability");
800 # endif
801 #endif
802 
804 
805 #endif /* _GL_WCTYPE_H */
806 #endif /* _GL_WCTYPE_H */
const char * name
Definition: tracepoint.c:178
#define _GL_WCTYPE_INLINE
Definition: wctype.h:60
_GL_CXXALIAS_SYS(iswalnum, int,(wint_t wc))
#define _GL_WARN_ON_USE(function, message)
Definition: dirent.h:348
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)
Definition: c++defs.h:78
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
Definition: c++defs.h:99
_GL_CXXALIASWARN(iswalnum)
#define _GL_INLINE_HEADER_END
Definition: config.h:1379
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
Definition: c++defs.h:90
#define _GL_INLINE_HEADER_BEGIN
Definition: config.h:1378