Blame gl/wctype.in.h

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