Blame gettext-runtime/gnulib-lib/wctype.in.h

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