OLD | NEW |
1 #include <uchar.h> | 1 #include <uchar.h> |
2 #include <wchar.h> | 2 #include <wchar.h> |
3 | 3 |
4 size_t mbrtoc32(char32_t *restrict pc32, const char *restrict s, size_t n, mbsta
te_t *restrict ps) | 4 size_t mbrtoc32(char32_t* restrict pc32, |
5 { | 5 const char* restrict s, |
6 » static unsigned internal_state; | 6 size_t n, |
7 » if (!ps) ps = (void *)&internal_state; | 7 mbstate_t* restrict ps) { |
8 » if (!s) return mbrtoc32(0, "", 1, ps); | 8 static unsigned internal_state; |
9 » wchar_t wc; | 9 if (!ps) |
10 » size_t ret = mbrtowc(&wc, s, n, ps); | 10 ps = (void*)&internal_state; |
11 » if (ret <= 4 && pc32) *pc32 = wc; | 11 if (!s) |
12 » return ret; | 12 return mbrtoc32(0, "", 1, ps); |
| 13 wchar_t wc; |
| 14 size_t ret = mbrtowc(&wc, s, n, ps); |
| 15 if (ret <= 4 && pc32) |
| 16 *pc32 = wc; |
| 17 return ret; |
13 } | 18 } |
OLD | NEW |