unicode.c: remove utf8_decode

This commit is contained in:
Ian Fan 2019-01-22 17:38:34 +00:00
parent f0353900ae
commit 2de6b5083a

View File

@ -13,41 +13,6 @@ size_t utf8_chsize(uint32_t ch) {
return 4; return 4;
} }
static const uint8_t masks[] = {
0x7F,
0x1F,
0x0F,
0x07,
0x03,
0x01
};
uint32_t utf8_decode(const char **char_str) {
uint8_t **s = (uint8_t **)char_str;
uint32_t cp = 0;
if (**s < 128) {
// shortcut
cp = **s;
++*s;
return cp;
}
int size = utf8_size((char *)*s);
if (size == -1) {
++*s;
return UTF8_INVALID;
}
uint8_t mask = masks[size - 1];
cp = **s & mask;
++*s;
while (--size) {
cp <<= 6;
cp |= **s & 0x3f;
++*s;
}
return cp;
}
size_t utf8_encode(char *str, uint32_t ch) { size_t utf8_encode(char *str, uint32_t ch) {
size_t len = 0; size_t len = 0;
uint8_t first; uint8_t first;