mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Make wrap_rows not wrap inside utf-8 multibyte sequences
Also count multibyte sequences as "one" character. Adds unittest for the bug reporter's case. Fixes #2796.
This commit is contained in:
parent
6dcf549ba9
commit
43dab2ffc8
2 changed files with 19 additions and 2 deletions
|
@ -242,6 +242,14 @@ void TestUtilities::testUTF8()
|
|||
void TestUtilities::testWrapRows()
|
||||
{
|
||||
UASSERT(wrap_rows("12345678",4) == "1234\n5678");
|
||||
// test that wrap_rows doesn't wrap inside multibyte sequences
|
||||
const unsigned char s[] = {
|
||||
0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x2f, 0x72, 0x61, 0x70, 0x74, 0x6f,
|
||||
0x72, 0x2f, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, 0x2f,
|
||||
0x6d, 0x69, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x62, 0x69,
|
||||
0x6e, 0x2f, 0x2e, 0x2e, 0};
|
||||
std::string str((char *)s);
|
||||
UASSERT(utf8_to_wide(wrap_rows(str, 20)) != L"<invalid UTF-8 string>");
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue