Annotation of src/include/uchar.h, Revision 1.2
1.2 ! schwarze 1: /* $OpenBSD: uchar.h,v 1.1 2023/08/20 15:02:50 schwarze Exp $ */
1.1 schwarze 2: /*
3: * Written by Ingo Schwarze <schwarze@openbsd.org>
4: * and placed in the public domain on March 19, 2022.
5: */
6:
7: #ifndef _UCHAR_H_
8: #define _UCHAR_H_
9:
10: #include <sys/cdefs.h>
11: #include <sys/_types.h>
12:
13: #ifndef _MBSTATE_T_DEFINED_
14: #define _MBSTATE_T_DEFINED_
15: typedef __mbstate_t mbstate_t;
16: #endif
17:
18: #ifndef _SIZE_T_DEFINED_
19: #define _SIZE_T_DEFINED_
20: typedef __size_t size_t;
21: #endif
22:
23: #define __STDC_UTF_16__ 1
24: #define __STDC_UTF_32__ 1
25:
1.2 ! schwarze 26: #if !defined(__cplusplus) || __cplusplus < 201103L
1.1 schwarze 27: typedef __uint16_t char16_t;
28: typedef __uint32_t char32_t;
1.2 ! schwarze 29: #endif
1.1 schwarze 30:
31: __BEGIN_DECLS
32: size_t mbrtoc16(char16_t * __restrict, const char * __restrict, size_t,
33: mbstate_t * __restrict);
34: size_t c16rtomb(char * __restrict, char16_t, mbstate_t * __restrict);
35: size_t mbrtoc32(char32_t * __restrict, const char * __restrict, size_t,
36: mbstate_t * __restrict);
37: size_t c32rtomb(char * __restrict, char32_t, mbstate_t * __restrict);
38: __END_DECLS
39:
40: #endif /* !_UCHAR_H_ */