Blame lib/wctype.in.h

Packit 8f70b4
/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
Packit 8f70b4
Packit 8f70b4
   Copyright (C) 2006-2018 Free Software Foundation, Inc.
Packit 8f70b4
Packit 8f70b4
   This program is free software; you can redistribute it and/or modify
Packit 8f70b4
   it under the terms of the GNU General Public License as published by
Packit 8f70b4
   the Free Software Foundation; either version 3, or (at your option)
Packit 8f70b4
   any later version.
Packit 8f70b4
Packit 8f70b4
   This program is distributed in the hope that it will be useful,
Packit 8f70b4
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 8f70b4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 8f70b4
   GNU General Public License for more details.
Packit 8f70b4
Packit 8f70b4
   You should have received a copy of the GNU General Public License
Packit 8f70b4
   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
Packit 8f70b4
Packit 8f70b4
/* Written by Bruno Haible and Paul Eggert.  */
Packit 8f70b4
Packit 8f70b4
/*
Packit 8f70b4
 * ISO C 99 <wctype.h> for platforms that lack it.
Packit 8f70b4
 * <http://www.opengroup.org/susv3xbd/wctype.h.html>
Packit 8f70b4
 *
Packit 8f70b4
 * iswctype, towctrans, towlower, towupper, wctrans, wctype,
Packit 8f70b4
 * wctrans_t, and wctype_t are not yet implemented.
Packit 8f70b4
 */
Packit 8f70b4
Packit 8f70b4
#if __GNUC__ >= 3
Packit 8f70b4
@PRAGMA_SYSTEM_HEADER@
Packit 8f70b4
#endif
Packit 8f70b4
@PRAGMA_COLUMNS@
Packit 8f70b4
Packit 8f70b4
#if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__)
Packit 8f70b4
Packit 8f70b4
/* Special invocation convention:
Packit 8f70b4
   - With MinGW 3.22, when <ctype.h> includes <wctype.h>, only some part of
Packit 8f70b4
     <wctype.h> is being processed, which doesn't include the idempotency
Packit 8f70b4
     guard.   */
Packit 8f70b4
Packit 8f70b4
#@INCLUDE_NEXT@ @NEXT_WCTYPE_H@
Packit 8f70b4
Packit 8f70b4
#else
Packit 8f70b4
/* Normal invocation convention.  */
Packit 8f70b4
Packit 8f70b4
#ifndef _@GUARD_PREFIX@_WCTYPE_H
Packit 8f70b4
Packit 8f70b4
#if @HAVE_WINT_T@
Packit 8f70b4
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
Packit 8f70b4
   Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
Packit 8f70b4
   <wchar.h>.
Packit 8f70b4
   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
Packit 8f70b4
   included before <wchar.h>.  */
Packit 8f70b4
# include <stddef.h>
Packit 8f70b4
# include <stdio.h>
Packit 8f70b4
# include <time.h>
Packit 8f70b4
# include <wchar.h>
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and
Packit 8f70b4
   isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>.  Include
Packit 8f70b4
   <ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the
Packit 8f70b4
   declarations.  */
Packit 8f70b4
#if defined _WIN32 && ! defined __CYGWIN__
Packit 8f70b4
# include <ctype.h>
Packit 8f70b4
# include <wchar.h>
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Include the original <wctype.h> if it exists.
Packit 8f70b4
   BeOS 5 has the functions but no <wctype.h>.  */
Packit 8f70b4
/* The include_next requires a split double-inclusion guard.  */
Packit 8f70b4
#if @HAVE_WCTYPE_H@
Packit 8f70b4
# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
#ifndef _@GUARD_PREFIX@_WCTYPE_H
Packit 8f70b4
#define _@GUARD_PREFIX@_WCTYPE_H
Packit 8f70b4
Packit 8f70b4
#ifndef _GL_INLINE_HEADER_BEGIN
Packit 8f70b4
 #error "Please include config.h first."
Packit 8f70b4
#endif
Packit 8f70b4
_GL_INLINE_HEADER_BEGIN
Packit 8f70b4
#ifndef _GL_WCTYPE_INLINE
Packit 8f70b4
# define _GL_WCTYPE_INLINE _GL_INLINE
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
Packit 8f70b4
Packit 8f70b4
/* The definition of _GL_WARN_ON_USE is copied here.  */
Packit 8f70b4
Packit 8f70b4
/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
Packit 8f70b4
   #defines a number of identifiers in the application namespace.  Revert
Packit 8f70b4
   these #defines.  */
Packit 8f70b4
#ifdef __sun
Packit 8f70b4
# undef multibyte
Packit 8f70b4
# undef eucw1
Packit 8f70b4
# undef eucw2
Packit 8f70b4
# undef eucw3
Packit 8f70b4
# undef scrw1
Packit 8f70b4
# undef scrw2
Packit 8f70b4
# undef scrw3
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Define wint_t and WEOF.  (Also done in wchar.in.h.)  */
Packit 8f70b4
#if !@HAVE_WINT_T@ && !defined wint_t
Packit 8f70b4
# define wint_t int
Packit 8f70b4
# ifndef WEOF
Packit 8f70b4
#  define WEOF -1
Packit 8f70b4
# endif
Packit 8f70b4
#else
Packit 8f70b4
/* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
Packit 8f70b4
   <stddef.h>.  This is too small: ISO C 99 section 7.24.1.(2) says that
Packit 8f70b4
   wint_t must be "unchanged by default argument promotions".  Override it.  */
Packit 8f70b4
# if @GNULIB_OVERRIDES_WINT_T@
Packit 8f70b4
#  if !GNULIB_defined_wint_t
Packit 8f70b4
#   if @HAVE_CRTDEFS_H@
Packit 8f70b4
#    include <crtdefs.h>
Packit 8f70b4
#   else
Packit 8f70b4
#    include <stddef.h>
Packit 8f70b4
#   endif
Packit 8f70b4
typedef unsigned int rpl_wint_t;
Packit 8f70b4
#   undef wint_t
Packit 8f70b4
#   define wint_t rpl_wint_t
Packit 8f70b4
#   define GNULIB_defined_wint_t 1
Packit 8f70b4
#  endif
Packit 8f70b4
# endif
Packit 8f70b4
# ifndef WEOF
Packit 8f70b4
#  define WEOF ((wint_t) -1)
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
#if !GNULIB_defined_wctype_functions
Packit 8f70b4
Packit 8f70b4
/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
Packit 8f70b4
   Linux libc5 has <wctype.h> and the functions but they are broken.
Packit 8f70b4
   Assume all 11 functions (all isw* except iswblank) are implemented the
Packit 8f70b4
   same way, or not at all.  */
Packit 8f70b4
# if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
Packit 8f70b4
Packit 8f70b4
/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
Packit 8f70b4
   undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
Packit 8f70b4
   refer to system functions like _iswctype that are not in the
Packit 8f70b4
   standard C library.  Rather than try to get ancient buggy
Packit 8f70b4
   implementations like this to work, just disable them.  */
Packit 8f70b4
#  undef iswalnum
Packit 8f70b4
#  undef iswalpha
Packit 8f70b4
#  undef iswblank
Packit 8f70b4
#  undef iswcntrl
Packit 8f70b4
#  undef iswdigit
Packit 8f70b4
#  undef iswgraph
Packit 8f70b4
#  undef iswlower
Packit 8f70b4
#  undef iswprint
Packit 8f70b4
#  undef iswpunct
Packit 8f70b4
#  undef iswspace
Packit 8f70b4
#  undef iswupper
Packit 8f70b4
#  undef iswxdigit
Packit 8f70b4
#  undef towlower
Packit 8f70b4
#  undef towupper
Packit 8f70b4
Packit 8f70b4
/* Linux libc5 has <wctype.h> and the functions but they are broken.  */
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit 8f70b4
#    define iswalnum rpl_iswalnum
Packit 8f70b4
#    define iswalpha rpl_iswalpha
Packit 8f70b4
#    define iswblank rpl_iswblank
Packit 8f70b4
#    define iswcntrl rpl_iswcntrl
Packit 8f70b4
#    define iswdigit rpl_iswdigit
Packit 8f70b4
#    define iswgraph rpl_iswgraph
Packit 8f70b4
#    define iswlower rpl_iswlower
Packit 8f70b4
#    define iswprint rpl_iswprint
Packit 8f70b4
#    define iswpunct rpl_iswpunct
Packit 8f70b4
#    define iswspace rpl_iswspace
Packit 8f70b4
#    define iswupper rpl_iswupper
Packit 8f70b4
#    define iswxdigit rpl_iswxdigit
Packit 8f70b4
#   endif
Packit 8f70b4
#  endif
Packit 8f70b4
#  if @REPLACE_TOWLOWER@
Packit 8f70b4
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit 8f70b4
#    define towlower rpl_towlower
Packit 8f70b4
#    define towupper rpl_towupper
Packit 8f70b4
#   endif
Packit 8f70b4
#  endif
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswalnum
Packit 8f70b4
#  else
Packit 8f70b4
iswalnum
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return ((wc >= '0' && wc <= '9')
Packit 8f70b4
          || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswalpha
Packit 8f70b4
#  else
Packit 8f70b4
iswalpha
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswblank
Packit 8f70b4
#  else
Packit 8f70b4
iswblank
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc == ' ' || wc == '\t';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswcntrl
Packit 8f70b4
#  else
Packit 8f70b4
iswcntrl
Packit 8f70b4
#  endif
Packit 8f70b4
        (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc & ~0x1f) == 0 || wc == 0x7f;
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswdigit
Packit 8f70b4
#  else
Packit 8f70b4
iswdigit
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc >= '0' && wc <= '9';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswgraph
Packit 8f70b4
#  else
Packit 8f70b4
iswgraph
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc >= '!' && wc <= '~';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswlower
Packit 8f70b4
#  else
Packit 8f70b4
iswlower
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc >= 'a' && wc <= 'z';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswprint
Packit 8f70b4
#  else
Packit 8f70b4
iswprint
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc >= ' ' && wc <= '~';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswpunct
Packit 8f70b4
#  else
Packit 8f70b4
iswpunct
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc >= '!' && wc <= '~'
Packit 8f70b4
          && !((wc >= '0' && wc <= '9')
Packit 8f70b4
               || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswspace
Packit 8f70b4
#  else
Packit 8f70b4
iswspace
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc == ' ' || wc == '\t'
Packit 8f70b4
          || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswupper
Packit 8f70b4
#  else
Packit 8f70b4
iswupper
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return wc >= 'A' && wc <= 'Z';
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE int
Packit 8f70b4
#  if @REPLACE_ISWCNTRL@
Packit 8f70b4
rpl_iswxdigit
Packit 8f70b4
#  else
Packit 8f70b4
iswxdigit
Packit 8f70b4
#  endif
Packit 8f70b4
          (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return ((wc >= '0' && wc <= '9')
Packit 8f70b4
          || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE wint_t
Packit 8f70b4
#  if @REPLACE_TOWLOWER@
Packit 8f70b4
rpl_towlower
Packit 8f70b4
#  else
Packit 8f70b4
towlower
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE wint_t
Packit 8f70b4
#  if @REPLACE_TOWLOWER@
Packit 8f70b4
rpl_towupper
Packit 8f70b4
#  else
Packit 8f70b4
towupper
Packit 8f70b4
#  endif
Packit 8f70b4
         (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
Packit 8f70b4
}
Packit 8f70b4
Packit 8f70b4
# elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@)
Packit 8f70b4
/* Only the iswblank function is missing.  */
Packit 8f70b4
Packit 8f70b4
#  if @REPLACE_ISWBLANK@
Packit 8f70b4
#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit 8f70b4
#    define iswblank rpl_iswblank
Packit 8f70b4
#   endif
Packit 8f70b4
_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
Packit 8f70b4
#  else
Packit 8f70b4
_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
Packit 8f70b4
#  endif
Packit 8f70b4
Packit 8f70b4
# endif
Packit 8f70b4
Packit 8f70b4
# if defined __MINGW32__
Packit 8f70b4
Packit 8f70b4
/* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
Packit 8f70b4
   The functions towlower and towupper are implemented in the MSVCRT library
Packit 8f70b4
   to take a wchar_t argument and return a wchar_t result.  mingw declares
Packit 8f70b4
   these functions to take a wint_t argument and return a wint_t result.
Packit 8f70b4
   This means that:
Packit 8f70b4
   1. When the user passes an argument outside the range 0x0000..0xFFFF, the
Packit 8f70b4
      function will look only at the lower 16 bits.  This is allowed according
Packit 8f70b4
      to POSIX.
Packit 8f70b4
   2. The return value is returned in the lower 16 bits of the result register.
Packit 8f70b4
      The upper 16 bits are random: whatever happened to be in that part of the
Packit 8f70b4
      result register.  We need to fix this by adding a zero-extend from
Packit 8f70b4
      wchar_t to wint_t after the call.  */
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE wint_t
Packit 8f70b4
rpl_towlower (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wint_t) (wchar_t) towlower (wc);
Packit 8f70b4
}
Packit 8f70b4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit 8f70b4
#   define towlower rpl_towlower
Packit 8f70b4
#  endif
Packit 8f70b4
Packit 8f70b4
_GL_WCTYPE_INLINE wint_t
Packit 8f70b4
rpl_towupper (wint_t wc)
Packit 8f70b4
{
Packit 8f70b4
  return (wint_t) (wchar_t) towupper (wc);
Packit 8f70b4
}
Packit 8f70b4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit 8f70b4
#   define towupper rpl_towupper
Packit 8f70b4
#  endif
Packit 8f70b4
Packit 8f70b4
# endif /* __MINGW32__ */
Packit 8f70b4
Packit 8f70b4
# define GNULIB_defined_wctype_functions 1
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
#if @REPLACE_ISWCNTRL@
Packit 8f70b4
_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc));
Packit 8f70b4
#else
Packit 8f70b4
_GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswlower, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswprint, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswspace, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswupper, int, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc));
Packit 8f70b4
#endif
Packit 8f70b4
_GL_CXXALIASWARN (iswalnum);
Packit 8f70b4
_GL_CXXALIASWARN (iswalpha);
Packit 8f70b4
_GL_CXXALIASWARN (iswcntrl);
Packit 8f70b4
_GL_CXXALIASWARN (iswdigit);
Packit 8f70b4
_GL_CXXALIASWARN (iswgraph);
Packit 8f70b4
_GL_CXXALIASWARN (iswlower);
Packit 8f70b4
_GL_CXXALIASWARN (iswprint);
Packit 8f70b4
_GL_CXXALIASWARN (iswpunct);
Packit 8f70b4
_GL_CXXALIASWARN (iswspace);
Packit 8f70b4
_GL_CXXALIASWARN (iswupper);
Packit 8f70b4
_GL_CXXALIASWARN (iswxdigit);
Packit 8f70b4
Packit 8f70b4
#if @GNULIB_ISWBLANK@
Packit 8f70b4
# if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@
Packit 8f70b4
_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
Packit 8f70b4
# else
Packit 8f70b4
_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
Packit 8f70b4
# endif
Packit 8f70b4
_GL_CXXALIASWARN (iswblank);
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
#if !@HAVE_WCTYPE_T@
Packit 8f70b4
# if !GNULIB_defined_wctype_t
Packit 8f70b4
typedef void * wctype_t;
Packit 8f70b4
#  define GNULIB_defined_wctype_t 1
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Get a descriptor for a wide character property.  */
Packit 8f70b4
#if @GNULIB_WCTYPE@
Packit 8f70b4
# if !@HAVE_WCTYPE_T@
Packit 8f70b4
_GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name));
Packit 8f70b4
# endif
Packit 8f70b4
_GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
Packit 8f70b4
_GL_CXXALIASWARN (wctype);
Packit 8f70b4
#elif defined GNULIB_POSIXCHECK
Packit 8f70b4
# undef wctype
Packit 8f70b4
# if HAVE_RAW_DECL_WCTYPE
Packit 8f70b4
_GL_WARN_ON_USE (wctype, "wctype is unportable - "
Packit 8f70b4
                 "use gnulib module wctype for portability");
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Test whether a wide character has a given property.
Packit 8f70b4
   The argument WC must be either a wchar_t value or WEOF.
Packit 8f70b4
   The argument DESC must have been returned by the wctype() function.  */
Packit 8f70b4
#if @GNULIB_ISWCTYPE@
Packit 8f70b4
# if !@HAVE_WCTYPE_T@
Packit 8f70b4
_GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
Packit 8f70b4
# endif
Packit 8f70b4
_GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
Packit 8f70b4
_GL_CXXALIASWARN (iswctype);
Packit 8f70b4
#elif defined GNULIB_POSIXCHECK
Packit 8f70b4
# undef iswctype
Packit 8f70b4
# if HAVE_RAW_DECL_ISWCTYPE
Packit 8f70b4
_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
Packit 8f70b4
                 "use gnulib module iswctype for portability");
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
#if @REPLACE_TOWLOWER@ || defined __MINGW32__
Packit 8f70b4
_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
Packit 8f70b4
#else
Packit 8f70b4
_GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc));
Packit 8f70b4
_GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc));
Packit 8f70b4
#endif
Packit 8f70b4
_GL_CXXALIASWARN (towlower);
Packit 8f70b4
_GL_CXXALIASWARN (towupper);
Packit 8f70b4
Packit 8f70b4
#if !@HAVE_WCTRANS_T@
Packit 8f70b4
# if !GNULIB_defined_wctrans_t
Packit 8f70b4
typedef void * wctrans_t;
Packit 8f70b4
#  define GNULIB_defined_wctrans_t 1
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Get a descriptor for a wide character case conversion.  */
Packit 8f70b4
#if @GNULIB_WCTRANS@
Packit 8f70b4
# if !@HAVE_WCTRANS_T@
Packit 8f70b4
_GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name));
Packit 8f70b4
# endif
Packit 8f70b4
_GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
Packit 8f70b4
_GL_CXXALIASWARN (wctrans);
Packit 8f70b4
#elif defined GNULIB_POSIXCHECK
Packit 8f70b4
# undef wctrans
Packit 8f70b4
# if HAVE_RAW_DECL_WCTRANS
Packit 8f70b4
_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
Packit 8f70b4
                 "use gnulib module wctrans for portability");
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
/* Perform a given case conversion on a wide character.
Packit 8f70b4
   The argument WC must be either a wchar_t value or WEOF.
Packit 8f70b4
   The argument DESC must have been returned by the wctrans() function.  */
Packit 8f70b4
#if @GNULIB_TOWCTRANS@
Packit 8f70b4
# if !@HAVE_WCTRANS_T@
Packit 8f70b4
_GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
Packit 8f70b4
# endif
Packit 8f70b4
_GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
Packit 8f70b4
_GL_CXXALIASWARN (towctrans);
Packit 8f70b4
#elif defined GNULIB_POSIXCHECK
Packit 8f70b4
# undef towctrans
Packit 8f70b4
# if HAVE_RAW_DECL_TOWCTRANS
Packit 8f70b4
_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
Packit 8f70b4
                 "use gnulib module towctrans for portability");
Packit 8f70b4
# endif
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
_GL_INLINE_HEADER_END
Packit 8f70b4
Packit 8f70b4
#endif /* _@GUARD_PREFIX@_WCTYPE_H */
Packit 8f70b4
#endif /* _@GUARD_PREFIX@_WCTYPE_H */
Packit 8f70b4
#endif