#include <uchar.h> | |
#include <wchar.h> | |
size_t mbrtoc32(char32_t *restrict pc32, const char *restrict s, size_t n, mbstate_t *restrict ps) | |
{ | |
static unsigned internal_state; | |
if (!ps) ps = (void *)&internal_state; | |
if (!s) return mbrtoc32(0, "", 1, ps); | |
wchar_t wc; | |
size_t ret = mbrtowc(&wc, s, n, ps); | |
if (ret <= 4 && pc32) *pc32 = wc; | |
return ret; | |
} |