mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 01:24:18 +00:00
fixed str_utf8_forward and str_utf8_encode
This commit is contained in:
parent
9490b6f28d
commit
fb5e0671db
|
@ -1368,14 +1368,14 @@ int str_utf8_forward(const char *str, int cursor)
|
|||
{
|
||||
if(!buf[1]) return cursor+1;
|
||||
if(!buf[2]) return cursor+2;
|
||||
return cursor+2;
|
||||
return cursor+3;
|
||||
}
|
||||
else if((*buf & 0xF8) == 0xF0) /* 11110xxx */
|
||||
{
|
||||
if(!buf[1]) return cursor+1;
|
||||
if(!buf[2]) return cursor+2;
|
||||
if(!buf[3]) return cursor+3;
|
||||
return cursor+3;
|
||||
return cursor+4;
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
|
@ -1399,16 +1399,16 @@ int str_utf8_encode(char *ptr, int chr)
|
|||
else if(chr <= 0xFFFF)
|
||||
{
|
||||
ptr[0] = 0xE0|((chr>>12)&0x0F);
|
||||
ptr[1] = 0xC0|((chr>>6)&0x3F);
|
||||
ptr[2] = 0xC0|(chr&0x3F);
|
||||
ptr[1] = 0x80|((chr>>6)&0x3F);
|
||||
ptr[2] = 0x80|(chr&0x3F);
|
||||
return 3;
|
||||
}
|
||||
else if(chr <= 0x10FFFF)
|
||||
{
|
||||
ptr[0] = 0xF0|((chr>>18)&0x07);
|
||||
ptr[1] = 0xC0|((chr>>12)&0x3F);
|
||||
ptr[2] = 0xC0|((chr>>6)&0x3F);
|
||||
ptr[3] = 0xC0|(chr&0x3F);
|
||||
ptr[1] = 0x80|((chr>>12)&0x3F);
|
||||
ptr[2] = 0x80|((chr>>6)&0x3F);
|
||||
ptr[3] = 0x80|(chr&0x3F);
|
||||
return 4;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue