pkg-monitoring-plugins/gl/wctype.in.h

733 lines
18 KiB
C
Raw Normal View History

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