Nikolay Sivov : dwrite: Support nine more script ranges up to code point 0x0bff.

Alexandre Julliard julliard at winehq.org
Thu Nov 1 14:42:58 CDT 2012


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Nov  1 09:16:43 2012 -0400

dwrite: Support nine more script ranges up to code point 0x0bff.

---

 dlls/dwrite/analyzer.c       |   29 +++++++++++++++++++
 dlls/dwrite/tests/analyzer.c |   64 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/dlls/dwrite/analyzer.c b/dlls/dwrite/analyzer.c
index 0a0642a..6794c10 100644
--- a/dlls/dwrite/analyzer.c
+++ b/dlls/dwrite/analyzer.c
@@ -30,12 +30,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(dwrite);
 enum scriptcode {
     Script_Arabic = 0,
     Script_Armenian = 1,
+    Script_Bengali = 3,
     Script_C1Controls = 12,
     Script_Coptic = 13,
     Script_Cyrillic = 16,
+    Script_Devanagari = 18,
     Script_Greek = 23,
+    Script_Gujarati = 24,
+    Script_Gurmukhi = 25,
     Script_Hebrew = 29,
     Script_Latin  = 38,
+    Script_NKo = 48,
+    Script_Oriya = 53,
+    Script_Syriac = 64,
+    Script_Tamil = 68,
+    Script_Thaana = 70,
     Script_Symbol = 77,
     Script_Unknown = (UINT16)-1
 };
@@ -87,6 +96,26 @@ static const struct script_range script_ranges[] = {
     { Script_Hebrew, 0x590, 0x5ff },
     /* Arabic: U+0600–U+06FF */
     { Script_Arabic, 0x600, 0x6ff },
+    /* Syriac: U+0600–U+06FF */
+    { Script_Syriac, 0x700, 0x74f },
+    /* Arabic Supplement: U+0750–U+077F */
+    { Script_Arabic, 0x750, 0x77f },
+    /* Thaana: U+0780–U+07BF */
+    { Script_Thaana, 0x780, 0x7bf },
+    /* N'Ko: U+07C0–U+07FF */
+    { Script_NKo, 0x7c0, 0x7ff },
+    /* Devanagari: U+0900–U+097F */
+    { Script_Devanagari, 0x900, 0x97f },
+    /* Bengali: U+0980–U+09FF */
+    { Script_Bengali, 0x980, 0x9ff },
+    /* Gurmukhi: U+0A00–U+0A7F */
+    { Script_Gurmukhi, 0xa00, 0xa7f },
+    /* Gujarati: U+0A80–U+0AFF */
+    { Script_Gujarati, 0xa80, 0xaff },
+    /* Oriya: U+0B00–U+0B7F */
+    { Script_Oriya, 0xb00, 0xb7f },
+    /* Tamil: U+0B80–U+0BFF */
+    { Script_Tamil, 0xb80, 0xbff },
     /* unsupported range */
     { Script_Unknown }
 };
diff --git a/dlls/dwrite/tests/analyzer.c b/dlls/dwrite/tests/analyzer.c
index 648759f..dbd0307 100644
--- a/dlls/dwrite/tests/analyzer.c
+++ b/dlls/dwrite/tests/analyzer.c
@@ -399,12 +399,21 @@ struct sa_test {
 enum scriptcode {
     Script_Arabic = 0,
     Script_Armenian = 1,
+    Script_Bengali = 3,
     Script_C1Controls = 12,
     Script_Coptic = 13,
     Script_Cyrillic = 16,
+    Script_Devanagari = 18,
     Script_Greek = 23,
+    Script_Gujarati = 24,
+    Script_Gurmukhi = 25,
     Script_Hebrew = 29,
     Script_Latin  = 38,
+    Script_NKo = 48,
+    Script_Oriya = 53,
+    Script_Syriac = 64,
+    Script_Tamil = 68,
+    Script_Thaana = 70,
     Script_Symbol = 77
 };
 
@@ -532,6 +541,61 @@ static struct sa_test sa_tests[] = {
             { 9, 10, { Script_Hebrew, DWRITE_SCRIPT_SHAPES_DEFAULT } },
             { 19, 10, { Script_Latin, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
     },
+    {
+      /* Syriac */
+      {0x710,0x712,0x712,0x714,'.',0}, 1,
+          { { 0, 5, { Script_Syriac, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Arabic Supplement */
+      {0x750,0x760,0x76d,'.',0}, 1,
+          { { 0, 4, { Script_Arabic, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Thaana */
+      {0x780,0x78e,0x798,0x7a6,0x7b0,'.',0}, 1,
+          { { 0, 6, { Script_Thaana, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* N'Ko */
+      {0x7c0,0x7ca,0x7e8,0x7eb,0x7f6,'.',0}, 1,
+          { { 0, 6, { Script_NKo, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Thaana */
+      {0x780,0x798,0x7a5,0x7a6,0x7b0,'.',0}, 1,
+          { { 0, 6, { Script_Thaana, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Devanagari */
+      {0x926,0x947,0x935,0x928,0x93e,0x917,0x930,0x940,'.',0}, 1,
+          { { 0, 9, { Script_Devanagari, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Bengali */
+      {0x9ac,0x9be,0x982,0x9b2,0x9be,'.',0}, 1,
+          { { 0, 6, { Script_Bengali, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Gurmukhi */
+      {0xa17,0xa41,0xa30,0xa2e,0xa41,0xa16,0xa40,'.',0}, 1,
+          { { 0, 8, { Script_Gurmukhi, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Gujarati */
+      {0xa97,0xac1,0xa9c,0xab0,0xabe,0xaa4,0xac0,'.',0}, 1,
+          { { 0, 8, { Script_Gujarati, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Oriya */
+      {0xb13,0xb21,0xb3c,0xb3f,0xb06,'.',0}, 1,
+          { { 0, 6, { Script_Oriya, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
+    {
+      /* Tamil */
+      {0xba4,0xbae,0xbbf,0xbb4,0xbcd,'.',0}, 1,
+          { { 0, 6, { Script_Tamil, DWRITE_SCRIPT_SHAPES_DEFAULT } }}
+    },
     /* keep this as end marker */
     { {0} }
 };




More information about the wine-cvs mailing list