]> git.ipfire.org Git - thirdparty/glibc.git/blame - wctype/wctype.h
aarch64/fpu: Add vector variants of cbrt
[thirdparty/glibc.git] / wctype / wctype.h
CommitLineData
dff8da6b 1/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
ba1ffaa1 2 This file is part of the GNU C Library.
19bc17a9 3
ba1ffaa1 4 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
19bc17a9 8
ba1ffaa1
UD
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 12 Lesser General Public License for more details.
19bc17a9 13
41bdb6e2 14 You should have received a copy of the GNU Lesser General Public
59ba27a6 15 License along with the GNU C Library; if not, see
5a82c748 16 <https://www.gnu.org/licenses/>. */
19bc17a9
RM
17
18/*
d1646309
UD
19 * ISO C99 Standard: 7.25
20 * Wide character classification and mapping utilities <wctype.h>
19bc17a9
RM
21 */
22
23#ifndef _WCTYPE_H
199fc19d 24#define _WCTYPE_H 1
5107cf1d 25
fe490140
UD
26#include <features.h>
27#include <bits/types.h>
199fc19d 28#include <bits/types/wint_t.h>
9756dfe1
UD
29
30/* Constant expression of type `wint_t' whose value does not correspond
31 to any member of the extended character set. */
199fc19d
ZW
32#ifndef WEOF
33# define WEOF (0xffffffffu)
19bc17a9 34#endif
19bc17a9 35
199fc19d
ZW
36/* Some definitions from this header also appear in <wchar.h> in
37 Unix98 mode. */
38#include <bits/wctype-wchar.h>
9756dfe1 39
19bc17a9 40/*
199fc19d 41 * Extensible wide-character mapping functions: 7.15.3.2.
19bc17a9
RM
42 */
43
199fc19d 44__BEGIN_DECLS
19bc17a9 45
9756dfe1
UD
46/* Scalar type that can hold values which represent locale-specific
47 character mappings. */
a784e502 48typedef const __int32_t *wctrans_t;
9756dfe1 49
9756dfe1
UD
50/* Construct value that describes a mapping between wide characters
51 identified by the string argument PROPERTY. */
a784e502 52extern wctrans_t wctrans (const char *__property) __THROW;
9756dfe1
UD
53
54/* Map the wide character WC using the mapping described by DESC. */
c1422e5b 55extern wint_t towctrans (wint_t __wc, wctrans_t __desc) __THROW;
9756dfe1 56
6cbe890a 57# ifdef __USE_XOPEN2K8
f0be25b6
ZW
58/* POSIX.1-2008 extended locale interface (see locale.h). */
59# include <bits/types/locale_t.h>
c84142e8
UD
60
61/* Test for any wide character for which `iswalpha' or `iswdigit' is
62 true. */
af85385f 63extern int iswalnum_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
64
65/* Test for any wide character for which `iswupper' or 'iswlower' is
66 true, or any wide character that is one of a locale-specific set of
67 wide-characters for which none of `iswcntrl', `iswdigit',
68 `iswpunct', or `iswspace' is true. */
af85385f 69extern int iswalpha_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
70
71/* Test for any control wide character. */
af85385f 72extern int iswcntrl_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
73
74/* Test for any wide character that corresponds to a decimal-digit
75 character. */
af85385f 76extern int iswdigit_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
77
78/* Test for any wide character for which `iswprint' is true and
79 `iswspace' is false. */
af85385f 80extern int iswgraph_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
81
82/* Test for any wide character that corresponds to a lowercase letter
83 or is one of a locale-specific set of wide characters for which
84 none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
af85385f 85extern int iswlower_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
86
87/* Test for any printing wide character. */
af85385f 88extern int iswprint_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
89
90/* Test for any printing wide character that is one of a
91 locale-specific et of wide characters for which neither `iswspace'
92 nor `iswalnum' is true. */
af85385f 93extern int iswpunct_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
94
95/* Test for any wide character that corresponds to a locale-specific
96 set of wide characters for which none of `iswalnum', `iswgraph', or
97 `iswpunct' is true. */
af85385f 98extern int iswspace_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
99
100/* Test for any wide character that corresponds to an uppercase letter
101 or is one of a locale-specific set of wide character for which none
102 of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
af85385f 103extern int iswupper_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
104
105/* Test for any wide character that corresponds to a hexadecimal-digit
106 character equivalent to that performed be the functions described
107 in the previous subclause. */
af85385f 108extern int iswxdigit_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8 109
b77e6cd6
UD
110/* Test for any wide character that corresponds to a standard blank
111 wide character or a locale-specific set of wide characters for
112 which `iswalnum' is false. */
af85385f 113extern int iswblank_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8 114
bd355af0
UD
115/* Construct value that describes a class of wide characters identified
116 by the string argument PROPERTY. */
af85385f 117extern wctype_t wctype_l (const char *__property, locale_t __locale)
1ab62b32 118 __THROW;
bd355af0 119
c84142e8
UD
120/* Determine whether the wide-character WC has the property described by
121 DESC. */
af85385f 122extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale)
1ab62b32 123 __THROW;
c84142e8 124
c84142e8 125/*
bd355af0 126 * Wide-character case-mapping functions.
c84142e8
UD
127 */
128
129/* Converts an uppercase letter to the corresponding lowercase letter. */
af85385f 130extern wint_t towlower_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8
UD
131
132/* Converts an lowercase letter to the corresponding uppercase letter. */
af85385f 133extern wint_t towupper_l (wint_t __wc, locale_t __locale) __THROW;
c84142e8 134
e04b831a
UD
135/* Construct value that describes a mapping between wide characters
136 identified by the string argument PROPERTY. */
af85385f 137extern wctrans_t wctrans_l (const char *__property, locale_t __locale)
1ab62b32 138 __THROW;
e04b831a 139
c84142e8 140/* Map the wide character WC using the mapping described by DESC. */
1ab62b32 141extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
af85385f 142 locale_t __locale) __THROW;
c84142e8 143
6cbe890a 144# endif /* Use POSIX 2008. */
c84142e8 145
19bc17a9
RM
146__END_DECLS
147
148#endif /* wctype.h */