dwrite: Classify direction control characters as complex.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2017-04-05 11:56:03 +03:00 committed by Alexandre Julliard
parent 7fae248552
commit a42a9940cf
2 changed files with 10 additions and 2 deletions

View File

@ -1524,7 +1524,9 @@ static HRESULT WINAPI dwritetextanalyzer1_GetScriptProperties(IDWriteTextAnalyze
static inline BOOL is_char_from_simple_script(WCHAR c)
{
if (IS_HIGH_SURROGATE(c) || IS_LOW_SURROGATE(c))
if (IS_HIGH_SURROGATE(c) || IS_LOW_SURROGATE(c) ||
/* LRM, RLM, LRE, RLE, PDF, LRO, RLO */
c == 0x200e || c == 0x200f || (c >= 0x202a && c <= 0x202e))
return FALSE;
else {
UINT16 script = get_char_script(c);

View File

@ -1197,7 +1197,13 @@ static const struct textcomplexity_test textcomplexity_tests[] = {
{ {0x610,0x610,'C','D',0}, 2, FALSE, 2 },
{ {0xd800,'A','B',0}, 1, FALSE, 1 },
{ {0xd800,'A','B',0}, 2, FALSE, 1 },
{ {0xdc00,'A','B',0}, 2, FALSE, 1 }
{ {0xdc00,'A','B',0}, 2, FALSE, 1 },
{ {0x202a,'A',0x202c,0}, 3, FALSE, 1 },
{ {0x200e,'A',0}, 2, FALSE, 1 },
{ {0x200f,'A',0}, 2, FALSE, 1 },
{ {0x202d,'A',0}, 2, FALSE, 1 },
{ {0x202e,'A',0}, 2, FALSE, 1 },
};
static void test_GetTextComplexity(void)