Aric Stewart : usp10: Sinhala vowels are not fully decomposed. The Kombuva is simply split off.

Alexandre Julliard julliard at winehq.org
Thu Jun 9 11:47:39 CDT 2011


Module: wine
Branch: master
Commit: 428d3b025e4049ba5d48fb804e06d6a1b3ecd7d2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=428d3b025e4049ba5d48fb804e06d6a1b3ecd7d2

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Jun  8 14:05:10 2011 -0500

usp10: Sinhala vowels are not fully decomposed. The Kombuva is simply split off.

---

 dlls/usp10/shape.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c
index 5d0c3d4..f64dbd7 100644
--- a/dlls/usp10/shape.c
+++ b/dlls/usp10/shape.c
@@ -1806,6 +1806,8 @@ static void DecomposeVowels(HDC hdc, WCHAR *pwOutChars, INT *pcChars, const Vowe
             if (pwOutChars[cWalk] == vowels[i].base)
             {
                 ReplaceInsertChars(hdc, cWalk, pcChars, pwOutChars, vowels[i].parts);
+                if (vowels[i].parts[1]) cWalk++;
+                if (vowels[i].parts[2]) cWalk++;
                 break;
             }
         }
@@ -2007,7 +2009,7 @@ static int sinhala_lex(WCHAR c)
         case 0x0DD9:
         case 0x0DDB: return lex_Matra_pre;
         case 0x0DDA:
-        case 0x0DDC: return lex_Composed_Vowel;
+        case 0x0DDC: return lex_Matra_post;
         case 0x200D: return lex_ZWJ;
         case 0x200C: return lex_ZWNJ;
         case 0x00A0: return lex_NBSP;
@@ -2018,17 +2020,17 @@ static int sinhala_lex(WCHAR c)
             else if (c>=0x0DD0 && c <=0x0DD1) return lex_Matra_post;
             else if (c>=0x0DD2 && c <=0x0DD3) return lex_Matra_above;
             else if (c>=0x0DD4 && c <=0x0DD6) return lex_Matra_below;
-            else if (c>=0x0DDD && c <=0x0DDE) return lex_Composed_Vowel;
+            else if (c>=0x0DDD && c <=0x0DDE) return lex_Matra_post;
             else if (c>=0x0DF2 && c <=0x0DF3) return lex_Matra_post;
             else return lex_Generic;
     }
 }
 
 static const VowelComponents Sinhala_vowels[] = {
-            {0x0DDA, {0x0DD9,0x0DCA,0x0}},
-            {0x0DDC, {0x0DD9,0x0DCF,0x0}},
-            {0x0DDD, {0x0DD9,0x0DCF,0x0DCA}},
-            {0x0DDE, {0x0DD9,0x0DDF,0x0}},
+            {0x0DDA, {0x0DD9,0x0DDA,0x0}},
+            {0x0DDC, {0x0DD9,0x0DDC,0x0}},
+            {0x0DDD, {0x0DD9,0x0DDD,0x0}},
+            {0x0DDE, {0x0DD9,0x0DDE,0x0}},
             {0x0000, {0x0000,0x0000,0x0}}};
 
 static void ContextualShape_Sinhala(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *psa, WCHAR* pwcChars, INT cChars, WORD* pwOutGlyphs, INT* pcGlyphs, INT cMaxGlyphs, WORD *pwLogClust)




More information about the wine-cvs mailing list