root/maint/gnulib/lib/wctype.in.h

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. rpl_iswalnum
  2. rpl_iswalpha
  3. rpl_iswblank
  4. rpl_iswcntrl
  5. rpl_iswdigit
  6. rpl_iswgraph
  7. rpl_iswlower
  8. rpl_iswprint
  9. rpl_iswpunct
  10. rpl_iswspace
  11. rpl_iswupper
  12. rpl_iswxdigit
  13. rpl_towlower
  14. rpl_towupper
  15. rpl_towlower
  16. rpl_towupper

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

/* [previous][next][first][last][top][bottom][index][help] */