Fix regression in CursorWindow.copyStingToBuffer.
Bug: 5332296 Change-Id: Iff9eed786f0a8293b6156f883a66a322ddad5e99
This commit is contained in:
parent
cc0bf53f21
commit
de27227026
@ -149,6 +149,13 @@ void utf8_to_utf32(const char* src, size_t src_len, char32_t* dst);
|
|||||||
*/
|
*/
|
||||||
ssize_t utf8_to_utf16_length(const uint8_t* src, size_t srcLen);
|
ssize_t utf8_to_utf16_length(const uint8_t* src, size_t srcLen);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert UTF-8 to UTF-16 including surrogate pairs.
|
||||||
|
* Returns a pointer to the end of the string (where a null terminator might go
|
||||||
|
* if you wanted to add one).
|
||||||
|
*/
|
||||||
|
char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* src, size_t srcLen, char16_t* dst);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert UTF-8 to UTF-16 including surrogate pairs. The destination buffer
|
* Convert UTF-8 to UTF-16 including surrogate pairs. The destination buffer
|
||||||
* must be large enough to hold the result as measured by utf8_to_utf16_length
|
* must be large enough to hold the result as measured by utf8_to_utf16_length
|
||||||
|
@ -542,11 +542,7 @@ ssize_t utf8_to_utf16_length(const uint8_t* u8str, size_t u8len)
|
|||||||
return u16measuredLen;
|
return u16measuredLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
char16_t* utf8_to_utf16_no_null_terminator(const uint8_t* u8str, size_t u8len, char16_t* u16str)
|
||||||
* Convert a UTF-8 string to UTF-16. The destination UTF-16 buffer must have
|
|
||||||
* space for NULL at the end.
|
|
||||||
*/
|
|
||||||
void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str)
|
|
||||||
{
|
{
|
||||||
const uint8_t* const u8end = u8str + u8len;
|
const uint8_t* const u8end = u8str + u8len;
|
||||||
const uint8_t* u8cur = u8str;
|
const uint8_t* u8cur = u8str;
|
||||||
@ -569,7 +565,12 @@ void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str)
|
|||||||
|
|
||||||
u8cur += u8len;
|
u8cur += u8len;
|
||||||
}
|
}
|
||||||
*u16cur = 0;
|
return u16cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
void utf8_to_utf16(const uint8_t* u8str, size_t u8len, char16_t* u16str) {
|
||||||
|
char16_t* end = utf8_to_utf16_no_null_terminator(u8str, u8len, u16str);
|
||||||
|
*end = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user