| 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 |