Aric Stewart : usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Syriac.
Alexandre Julliard
julliard at winehq.org
Mon Jun 4 13:27:13 CDT 2012
Module: wine
Branch: master
Commit: 3fd459b2327cbbe59b739302e420a7cc35e13d84
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fd459b2327cbbe59b739302e420a7cc35e13d84
Author: Aric Stewart <aric at codeweavers.com>
Date: Mon Jun 4 07:44:06 2012 -0500
usp10: Insert dotted circle (U+25CC) for invalid combining sequences in Syriac.
---
dlls/usp10/shape.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c
index fcf71f8..cf137bb 100644
--- a/dlls/usp10/shape.c
+++ b/dlls/usp10/shape.c
@@ -1099,6 +1099,54 @@ static void ContextualShape_Hebrew(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p
* ContextualShape_Syriac
*/
+static int combining_lexical_Syriac(WCHAR c)
+{
+ enum {Syriac_Norm=0, Syriac_DIAC1, Syriac_DIAC2, Syriac_DIAC3, Syriac_DIAC4, Syriac_DIAC5, Syriac_DIAC6, Syriac_DIAC7, Syriac_DIAC8, Syriac_DIAC9, Syriac_DIAC10, Syriac_DIAC11, Syriac_DIAC12, Syriac_DIAC13, Syriac_DIAC14, Syriac_DIAC15, Syriac_DIAC16, Syriac_DIAC17};
+
+ switch(c)
+ {
+ case 0x730:
+ case 0x733:
+ case 0x736:
+ case 0x73A:
+ case 0x73D: return Syriac_DIAC1; break;
+ case 0x731:
+ case 0x734:
+ case 0x737:
+ case 0x73B:
+ case 0x73E: return Syriac_DIAC2; break;
+ case 0x740:
+ case 0x749:
+ case 0x74A: return Syriac_DIAC3; break;
+ case 0x732:
+ case 0x735:
+ case 0x73F: return Syriac_DIAC4; break;
+ case 0x738:
+ case 0x739:
+ case 0x73C: return Syriac_DIAC5; break;
+ case 0x741:
+ case 0x30A: return Syriac_DIAC6; break;
+ case 0x742:
+ case 0x325: return Syriac_DIAC7; break;
+ case 0x747:
+ case 0x303: return Syriac_DIAC8; break;
+ case 0x748:
+ case 0x32D:
+ case 0x32E:
+ case 0x330:
+ case 0x331: return Syriac_DIAC9; break;
+ case 0x308: return Syriac_DIAC10; break;
+ case 0x304: return Syriac_DIAC11; break;
+ case 0x307: return Syriac_DIAC12; break;
+ case 0x323: return Syriac_DIAC13; break;
+ case 0x743: return Syriac_DIAC14; break;
+ case 0x744: return Syriac_DIAC15; break;
+ case 0x745: return Syriac_DIAC16; break;
+ case 0x746: return Syriac_DIAC17; break;
+ default: return Syriac_Norm;
+ }
+}
+
#define ALAPH 0x710
#define DALATH 0x715
#define RISH 0x72A
@@ -1189,6 +1237,8 @@ right_join_causing(neighbour_joining_type(i,dirR,context_type,cChars,psa)))
HeapFree(GetProcessHeap(),0,context_shape);
HeapFree(GetProcessHeap(),0,context_type);
+
+ mark_invalid_combinations(hdc, pwcChars, cChars, pwOutGlyphs, pcGlyphs, dirL, pwLogClust, combining_lexical_Syriac);
}
/*
More information about the wine-cvs
mailing list