55 d[1] = 0x80 | (
c & 0x3f);
65 d[2] = 0x80 | (
c & 0x3f);
67 d[1] = 0x80 | (
c & 0x3f);
75 d[3] = 0x80 | (
c & 0x3f);
77 d[2] = 0x80 | (
c & 0x3f);
79 d[1] = 0x80 | (
c & 0x3f);
89 if (
s[0] < 0xd800 ||
s[0] > 0xdfff)
96 ||
s[1] < 0xdc00 ||
s[1] > 0xdfff)
103 return 0x10000 + ((
s[0] & 0x3ff) << 10) + (
s[1] & 0x3ff);
static uint32_t vkd3d_utf16_read(const uint16_t **src)
static size_t vkd3d_utf8_len(uint32_t c)
static char * vkd3d_strdup_w16_utf8(const uint16_t *wstr)
static void vkd3d_utf8_append(char **dst, uint32_t c)
char * vkd3d_strdup_w_utf8(const WCHAR *wstr, size_t wchar_size)
static char * vkd3d_strdup_w32_utf8(const uint32_t *wstr)
static void * vkd3d_malloc(size_t size)