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.
12 *
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]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * An application should not include this header directly. Instead it
29 * should be included only through the inclusion of other Sun headers.
30 *
31 * The contents of this header is limited to identifiers specified in the
32 * C Standard. Any new identifiers specified in future amendments to the
33 * C Standard must be placed in this header. If these new identifiers
34 * are required to also be in the C++ Standard "std" namespace, then for
35 * anything other than macro definitions, corresponding "using" directives
36 * must also be added to <wchar.h>.
37 */
38
39 #ifndef _ISO_WCHAR_ISO_H
40 #define _ISO_WCHAR_ISO_H
41
42 #pragma ident "%Z%%M% %I% %E% SMI"
43
44 #include <sys/feature_tests.h>
45 #include <stdio_tag.h>
46 #include <wchar_impl.h>
47 #include <iso/time_iso.h>
48
49 #if (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) || \
50 (!defined(__cplusplus) && !defined(_STRICT_STDC)) || \
51 defined(__EXTENSIONS__)
52 #include <stdio.h>
53 #endif /* (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) ... */
54
55 #if !defined(_STRICT_STDC) || defined(__EXTENSIONS__)
56 #include <ctype.h>
57 #include <stddef.h>
58 #endif /* !defined(_STRICT_STDC) || defined(__EXTENSIONS__) */
59
60 #include <sys/va_list.h>
61
62 #ifdef __cplusplus
63 extern "C" {
309 extern int mbsinit(const mbstate_t *);
310 extern size_t mbrlen(const char *_RESTRICT_KYWD, size_t,
311 mbstate_t *_RESTRICT_KYWD);
312 extern size_t mbrtowc(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
313 size_t, mbstate_t *_RESTRICT_KYWD);
314 extern size_t mbsrtowcs(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
315 size_t, mbstate_t *_RESTRICT_KYWD);
316 extern int swprintf(wchar_t *_RESTRICT_KYWD, size_t,
317 const wchar_t *_RESTRICT_KYWD, ...);
318 extern int swscanf(const wchar_t *_RESTRICT_KYWD,
319 const wchar_t *_RESTRICT_KYWD, ...);
320 extern int vfwprintf(__FILE *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD,
321 __va_list);
322 extern int vwprintf(const wchar_t *_RESTRICT_KYWD, __va_list);
323 extern int vswprintf(wchar_t *_RESTRICT_KYWD, size_t,
324 const wchar_t *_RESTRICT_KYWD, __va_list);
325 extern size_t wcrtomb(char *_RESTRICT_KYWD, wchar_t,
326 mbstate_t *_RESTRICT_KYWD);
327 extern size_t wcsrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
328 size_t, mbstate_t *_RESTRICT_KYWD);
329 extern int wctob(wint_t);
330 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t);
331 extern wchar_t *wmemcpy(wchar_t *_RESTRICT_KYWD,
332 const wchar_t *_RESTRICT_KYWD, size_t);
333 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
334 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t);
335 extern int wprintf(const wchar_t *_RESTRICT_KYWD, ...);
336 extern int wscanf(const wchar_t *_RESTRICT_KYWD, ...);
337 #if __cplusplus >= 199711L
338 extern const wchar_t *wcsstr(const wchar_t *, const wchar_t *);
339 extern "C++" {
340 inline wchar_t *wcsstr(wchar_t *__ws1, const wchar_t *__ws2) {
341 return (wchar_t *)wcsstr((const wchar_t *)__ws1, __ws2);
342 }
343 }
344 extern const wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
345 extern "C++" {
346 inline wchar_t *wmemchr(wchar_t *__ws, wchar_t __wc, size_t __n) {
347 return (wchar_t *)wmemchr((const wchar_t *)__ws, __wc, __n);
348 }
403 #endif /* XPG4 or XPG4v2 */
404 #endif /* defined(_MSE_INT_H) */
405
406 /* not XPG4 and not XPG4v2 */
407 #if (!defined(_XPG4) && !defined(_XPG4_2) || defined(_XPG5))
408 extern wint_t btowc();
409 extern int fwprintf();
410 extern int fwscanf();
411 extern int fwide();
412 extern int mbsinit();
413 extern size_t mbrlen();
414 extern size_t mbrtowc();
415 extern size_t mbsrtowcs();
416 extern int swprintf();
417 extern int swscanf();
418 extern int vfwprintf();
419 extern int vwprintf();
420 extern int vswprintf();
421 extern size_t wcrtomb();
422 extern size_t wcsrtombs();
423 extern wchar_t *wcsstr();
424 extern int wctob();
425 extern wchar_t *wmemchr();
426 extern int wmemcmp();
427 extern wchar_t *wmemcpy();
428 extern wchar_t *wmemmove();
429 extern wchar_t *wmemset();
430 extern int wprintf();
431 extern int wscanf();
432 #endif /* not XPG4 and not XPG4v2 */
433
434 #endif /* __STDC__ */
435
436 #if __cplusplus >= 199711L
437 }
438 #endif /* end of namespace std */
439
440 #ifdef __cplusplus
441 }
442 #endif
|
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.
12 *
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]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29 */
30
31 /*
32 * An application should not include this header directly. Instead it
33 * should be included only through the inclusion of other Sun headers.
34 *
35 * The contents of this header is limited to identifiers specified in the
36 * C Standard. Any new identifiers specified in future amendments to the
37 * C Standard must be placed in this header. If these new identifiers
38 * are required to also be in the C++ Standard "std" namespace, then for
39 * anything other than macro definitions, corresponding "using" directives
40 * must also be added to <wchar.h>.
41 */
42
43 #ifndef _ISO_WCHAR_ISO_H
44 #define _ISO_WCHAR_ISO_H
45
46 #include <sys/feature_tests.h>
47 #include <stdio_tag.h>
48 #include <wchar_impl.h>
49 #include <iso/time_iso.h>
50
51 #if (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) || \
52 (!defined(__cplusplus) && !defined(_STRICT_STDC)) || \
53 defined(__EXTENSIONS__)
54 #include <stdio.h>
55 #endif /* (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) ... */
56
57 #if !defined(_STRICT_STDC) || defined(__EXTENSIONS__)
58 #include <ctype.h>
59 #include <stddef.h>
60 #endif /* !defined(_STRICT_STDC) || defined(__EXTENSIONS__) */
61
62 #include <sys/va_list.h>
63
64 #ifdef __cplusplus
65 extern "C" {
311 extern int mbsinit(const mbstate_t *);
312 extern size_t mbrlen(const char *_RESTRICT_KYWD, size_t,
313 mbstate_t *_RESTRICT_KYWD);
314 extern size_t mbrtowc(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
315 size_t, mbstate_t *_RESTRICT_KYWD);
316 extern size_t mbsrtowcs(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
317 size_t, mbstate_t *_RESTRICT_KYWD);
318 extern int swprintf(wchar_t *_RESTRICT_KYWD, size_t,
319 const wchar_t *_RESTRICT_KYWD, ...);
320 extern int swscanf(const wchar_t *_RESTRICT_KYWD,
321 const wchar_t *_RESTRICT_KYWD, ...);
322 extern int vfwprintf(__FILE *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD,
323 __va_list);
324 extern int vwprintf(const wchar_t *_RESTRICT_KYWD, __va_list);
325 extern int vswprintf(wchar_t *_RESTRICT_KYWD, size_t,
326 const wchar_t *_RESTRICT_KYWD, __va_list);
327 extern size_t wcrtomb(char *_RESTRICT_KYWD, wchar_t,
328 mbstate_t *_RESTRICT_KYWD);
329 extern size_t wcsrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
330 size_t, mbstate_t *_RESTRICT_KYWD);
331 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
332 extern size_t wcsnrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
333 size_t, size_t, mbstate_t *_RESTRICT_KYWD);
334 #endif
335 extern int wctob(wint_t);
336 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t);
337 extern wchar_t *wmemcpy(wchar_t *_RESTRICT_KYWD,
338 const wchar_t *_RESTRICT_KYWD, size_t);
339 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
340 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t);
341 extern int wprintf(const wchar_t *_RESTRICT_KYWD, ...);
342 extern int wscanf(const wchar_t *_RESTRICT_KYWD, ...);
343 #if __cplusplus >= 199711L
344 extern const wchar_t *wcsstr(const wchar_t *, const wchar_t *);
345 extern "C++" {
346 inline wchar_t *wcsstr(wchar_t *__ws1, const wchar_t *__ws2) {
347 return (wchar_t *)wcsstr((const wchar_t *)__ws1, __ws2);
348 }
349 }
350 extern const wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
351 extern "C++" {
352 inline wchar_t *wmemchr(wchar_t *__ws, wchar_t __wc, size_t __n) {
353 return (wchar_t *)wmemchr((const wchar_t *)__ws, __wc, __n);
354 }
409 #endif /* XPG4 or XPG4v2 */
410 #endif /* defined(_MSE_INT_H) */
411
412 /* not XPG4 and not XPG4v2 */
413 #if (!defined(_XPG4) && !defined(_XPG4_2) || defined(_XPG5))
414 extern wint_t btowc();
415 extern int fwprintf();
416 extern int fwscanf();
417 extern int fwide();
418 extern int mbsinit();
419 extern size_t mbrlen();
420 extern size_t mbrtowc();
421 extern size_t mbsrtowcs();
422 extern int swprintf();
423 extern int swscanf();
424 extern int vfwprintf();
425 extern int vwprintf();
426 extern int vswprintf();
427 extern size_t wcrtomb();
428 extern size_t wcsrtombs();
429 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
430 extern size_t wcsnrtombs();
431 #endif
432
433 extern wchar_t *wcsstr();
434 extern int wctob();
435 extern wchar_t *wmemchr();
436 extern int wmemcmp();
437 extern wchar_t *wmemcpy();
438 extern wchar_t *wmemmove();
439 extern wchar_t *wmemset();
440 extern int wprintf();
441 extern int wscanf();
442 #endif /* not XPG4 and not XPG4v2 */
443
444 #endif /* __STDC__ */
445
446 #if __cplusplus >= 199711L
447 }
448 #endif /* end of namespace std */
449
450 #ifdef __cplusplus
451 }
452 #endif
|