4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24 * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
30 #include <sys/feature_tests.h>
31 #include <iso/wchar_iso.h>
32 #include <iso/wchar_c99.h>
35 * Allow global visibility for symbols defined in
36 * C++ "std" namespace in <iso/wchar_iso.h>.
38 #if __cplusplus >= 199711L
74 /* not XPG4 and not XPG4v2 */
75 #if (!defined(_XPG4) && !defined(_XPG4_2) || defined(_XPG5))
100 #endif /* not XPG4 and not XPG4v2 */
101 #endif /* __cplusplus >= 199711L */
107 #if !defined(_STRICT_STDC) || defined(_XOPEN_SOURCE) || defined(__EXTENSIONS__)
108 #if !defined(_WCTYPE_T) || __cplusplus >= 199711L
110 typedef int wctype_t;
112 #endif /* !defined(_STRICT_STDC) || defined(_XOPEN_SOURCE)... */
115 * XPG6 requires that va_list be defined as defined in <stdarg.h>,
116 * however, inclusion of <stdarg.h> breaks Standard C namespace.
118 #if defined(_XPG6) && !defined(_VA_LIST)
120 typedef __va_list
va_list;
121 #endif /* defined(_XPG6) && !defined(_VA_LIST) */
123 #if !defined(_STRICT_STDC) || defined(_XOPEN_SOURCE) || defined(__EXTENSIONS__)
124 #if __cplusplus >= 199711L
127 extern int iswalpha(wint_t);
128 extern int iswupper(wint_t);
129 extern int iswlower(wint_t);
130 extern int iswdigit(wint_t);
131 extern int iswxdigit(wint_t);
132 extern int iswalnum(wint_t);
133 extern int iswspace(wint_t);
134 extern int iswpunct(wint_t);
135 extern int iswprint(wint_t);
136 extern int iswgraph(wint_t);
137 extern int iswcntrl(wint_t);
138 extern int iswctype(wint_t, wctype_t);
139 extern wint_t towlower(wint_t);
140 extern wint_t towupper(wint_t);
141 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
142 extern int wcswidth(const wchar_t *, size_t);
143 extern int wcwidth(wchar_t);
144 extern wctype_t wctype(const char *);
145 #if __cplusplus >= 199711L
146 } /* namespace std */
152 using std::iswxdigit
;
167 #endif /* !defined(_STRICT_STDC) || defined(_XOPEN_SOURCE)... */
169 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
173 typedef struct _locale
*locale_t
;
176 extern size_t wcsnlen(const wchar_t *, size_t);
177 extern wchar_t *wcpcpy(wchar_t *_RESTRICT_KYWD
, const wchar_t *_RESTRICT_KYWD
);
178 extern wchar_t *wcpncpy(wchar_t *_RESTRICT_KYWD
, const wchar_t *_RESTRICT_KYWD
,
180 extern size_t wcsxfrm_l(wchar_t *_RESTRICT_KYWD
, const wchar_t *_RESTRICT_KYWD
,
182 extern int wcscoll_l(const wchar_t *, const wchar_t *, locale_t
);
183 extern wchar_t *wcsdup(const wchar_t *);
184 extern int wcscasecmp(const wchar_t *, const wchar_t *);
185 extern int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t
);
186 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
187 extern int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t
);
188 extern size_t mbsnrtowcs(wchar_t *_RESTRICT_KYWD
, const char **_RESTRICT_KYWD
,
189 size_t, size_t, mbstate_t *_RESTRICT_KYWD
);
191 #endif /* defined(_XPG7) || !defined(_STRICT_SYMBOLS) */
197 #endif /* _WCHAR_H */