Commit b8aad9d3 authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

usp10: Add Devanagari script.

parent 397c3ac5
......@@ -126,6 +126,7 @@ static inline void _test_items_ok(LPCWSTR string, DWORD cchString,
#define thai_tag MS_MAKE_TAG('t','h','a','i')
#define hebr_tag MS_MAKE_TAG('h','e','b','r')
#define syrc_tag MS_MAKE_TAG('s','y','r','c')
#define deva_tag MS_MAKE_TAG('d','e','v','a')
static void test_ScriptItemize( void )
{
......@@ -207,6 +208,11 @@ static void test_ScriptItemize( void )
static const WCHAR test10[] = {0x0717, 0x0718, 0x071a, 0x071b,0};
static const itemTest t101[2] = {{{0,0,0,0,0},0,1,1,1,syrc_tag},{{0,0,0,0,0},4,0,0,0,-1}};
/* Devanagari */
static const WCHAR test11[] = {0x0926, 0x0947, 0x0935, 0x0928, 0x093e, 0x0917, 0x0930, 0x0940};
static const itemTest t111[2] = {{{0,0,0,0,0},0,0,0,0,deva_tag},{{0,0,0,0,0},8,0,0,0,-1}};
static const itemTest t112[2] = {{{0,0,0,0,0},0,0,0,2,deva_tag},{{0,0,0,0,0},8,0,0,0,-1}};
SCRIPT_ITEM items[15];
SCRIPT_CONTROL Control;
SCRIPT_STATE State;
......@@ -249,6 +255,7 @@ static void test_ScriptItemize( void )
test_items_ok(test8,4,NULL,NULL,1,t81,FALSE,0);
test_items_ok(test9,5,NULL,NULL,2,t91,FALSE,0);
test_items_ok(test10,4,NULL,NULL,1,t101,FALSE,0);
test_items_ok(test11,8,NULL,NULL,1,t111,FALSE,0);
State.uBidiLevel = 0;
test_items_ok(test1,4,&Control,&State,1,t11,FALSE,0);
......@@ -265,6 +272,7 @@ static void test_ScriptItemize( void )
test_items_ok(test8,4,&Control,&State,1,t81,FALSE,0);
test_items_ok(test9,5,&Control,&State,2,t91,FALSE,0);
test_items_ok(test10,4,&Control,&State,1,t101,FALSE,0);
test_items_ok(test11,8,&Control,&State,1,t111,FALSE,0);
State.uBidiLevel = 1;
test_items_ok(test1,4,&Control,&State,1,t12,FALSE,0);
......@@ -281,6 +289,7 @@ static void test_ScriptItemize( void )
test_items_ok(test8,4,&Control,&State,1,t81,FALSE,0);
test_items_ok(test9,5,&Control,&State,2,t92,FALSE,0);
test_items_ok(test10,4,&Control,&State,1,t101,FALSE,0);
test_items_ok(test11,8,&Control,&State,1,t112,FALSE,0);
State.uBidiLevel = 1;
Control.fMergeNeutralItems = TRUE;
......@@ -298,6 +307,7 @@ static void test_ScriptItemize( void )
test_items_ok(test8,4,&Control,&State,1,t81,FALSE,0);
test_items_ok(test9,5,&Control,&State,1,t93,FALSE,2);
test_items_ok(test10,4,&Control,&State,1,t101,FALSE,0);
test_items_ok(test11,8,&Control,&State,1,t112,FALSE,0);
}
static inline void _test_shape_ok(int valid, HDC hdc, LPCWSTR string,
......
......@@ -77,6 +77,8 @@ static const scriptRange scriptRanges[] = {
{ Script_Arabic, 0x750, 0x77f, 0, 0},
/* Thaana: U+0780–U+07BF */
{ Script_Thaana, 0x780, 0x7bf, 0, 0},
/* Devanagari: U+0900–U+097F */
{ Script_Devanagari, 0x900, 0x97f, Script_Devanagari_Numeric, 0},
/* Sinhala: U+0D80–U+0DFF */
{ Script_Sinhala, 0xd80, 0xdff, 0, 0},
/* Thai: U+0E00–U+0E7F */
......@@ -87,6 +89,8 @@ static const scriptRange scriptRanges[] = {
{ Script_Tibetan, 0xf00, 0xfff, Script_Tibetan_Numeric, 0},
/* Georgian: U+10A0–U+10FF */
{ Script_Georgian, 0x10a0, 0x10ff, 0, 0},
/* Vedic Extensions: U+1CD0-U+1CFF */
{ Script_Devanagari, 0x1cd0, 0x1cff, Script_Devanagari_Numeric, 0},
/* Phonetic Extensions: U+1D00–U+1DBF */
{ Script_Latin, 0x1d00, 0x1dbf, 0, 0},
/* Latin Extended Additional: U+1E00–U+1EFF */
......@@ -106,6 +110,8 @@ static const scriptRange scriptRanges[] = {
{ Script_Latin, 0xa700, 0xa7ff, 0, 0},
/* Phags-pa: U+A840–U+A87F */
{ Script_Phags_pa, 0xa840, 0xa87f, 0, 0},
/* Devanagari Extended: U+A8E0-U+A8FF */
{ Script_Devanagari, 0xa8e0, 0xa8ff, Script_Devanagari_Numeric, 0},
/* Latin Ligatures: U+FB00–U+FB06 */
{ Script_Latin, 0xfb00, 0xfb06, 0, 0},
/* Armenian ligatures U+FB13..U+FB17 */
......@@ -201,6 +207,12 @@ static const scriptData scriptInformation[] = {
{{Script_Lao_Numeric, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}},
{LANG_LAO, 1, 1, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0},
MS_MAKE_TAG('l','a','o',' ')},
{{Script_Devanagari, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}},
{LANG_HINDI, 0, 1, 0, 1, DEFAULT_CHARSET, 0, 0, 0, 0, 1, 0, 0, 0, 0},
MS_MAKE_TAG('d','e','v','a')},
{{Script_Devanagari_Numeric, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}},
{LANG_HINDI, 1, 1, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0},
MS_MAKE_TAG('d','e','v','a')},
};
static const SCRIPT_PROPERTIES *script_props[] =
......@@ -216,7 +228,8 @@ static const SCRIPT_PROPERTIES *script_props[] =
&scriptInformation[16].props, &scriptInformation[17].props,
&scriptInformation[18].props, &scriptInformation[19].props,
&scriptInformation[20].props, &scriptInformation[21].props,
&scriptInformation[22].props, &scriptInformation[23].props
&scriptInformation[22].props, &scriptInformation[23].props,
&scriptInformation[24].props, &scriptInformation[25].props
};
typedef struct {
......
......@@ -50,6 +50,9 @@
#define Script_Thai_Numeric 21
#define Script_Lao 22
#define Script_Lao_Numeric 23
/* Unicode Chapter 9 */
#define Script_Devanagari 24
#define Script_Devanagari_Numeric 25
#define GLYPH_BLOCK_SHIFT 8
#define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment