Module: wine Branch: master Commit: 6c470a8bd338942a334b634b94ce7487c71f5107 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6c470a8bd338942a334b634b94...
Author: Aric Stewart aric@codeweavers.com Date: Wed Feb 3 12:55:12 2016 -0600
usp10: Directional control codes force complex itemization.
Signed-off-by: Aric Stewart aric@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/usp10/usp10.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index 8e7bb18..a3ca3c2 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -1307,9 +1307,15 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, else if (is_indic(scripts[i])) last_indic = base_indic(scripts[i]);
- /* Some unicode points (Zero Width Space U+200B - - Right-to-Left Mark U+200F) will force us into bidi mode */ - if (!forceLevels && pwcInChars[i] >= 0x200B && pwcInChars[i] <= 0x200F) + /* Some unicode points : + (Zero Width Space U+200B - Right-to-Left Mark U+200F) + (Left Right Embed U+202A - Left Right Override U+202D) + (Left Right Isolate U+2066 - Pop Directional Isolate U+2069) + will force us into bidi mode */ + if (!forceLevels && ((pwcInChars[i] >= 0x200B && pwcInChars[i] <= 0x200F) || + (pwcInChars[i] >= 0x202A && pwcInChars[i] <= 0x202E) || + (pwcInChars[i] >= 0x2066 && pwcInChars[i] <= 0x2069))) + forceLevels = TRUE;
/* Diacritical marks merge with other scripts */