diff -ur qt-all-opensource-src-4.4.0-rc1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-all-opensource-src-4.4.0-rc1-as_IN-437440/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp --- qt-all-opensource-src-4.4.0-rc1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2008-04-02 18:33:48.000000000 +0200 +++ qt-all-opensource-src-4.4.0-rc1-as_IN-437440/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2008-04-08 04:37:45.000000000 +0200 @@ -552,7 +552,7 @@ None, None, None, None, None, None, None, None, - None, None, None, None, + Below, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, @@ -1169,7 +1169,7 @@ HB_Script script = item->item.script; assert(script >= HB_Script_Devanagari && script <= HB_Script_Sinhala); const unsigned short script_base = 0x0900 + 0x80*(script-HB_Script_Devanagari); - const unsigned short ra = script_base + 0x30; + unsigned short ra = script_base + 0x30; const unsigned short halant = script_base + 0x4d; const unsigned short nukta = script_base + 0x3c; bool control = false; @@ -1212,6 +1212,19 @@ HB_UChar16 *uc = reordered; bool beginsWithRa = false; + // Exception in Bengali Script + // + // Bengali script supports two languages bengali and assamese + // Unfortunately for both languages there is different ra defined in same script chart + // for Bengali it ra is 'Base+ 0x30' and for assamese 'Base+0x70' + // Base is same 0x0980 + // To handle this exception we need to change ra to from const to normal variable + // and aslo need to change ra to 'Base+0x70' whenever we will get assamese language + //character in data + if((script == HB_Script_Bengali) && (*uc==0x09F0)){ + ra = script_base + 0x70; + } + // Rule 1: find base consonant // // The shaping engine finds the base consonant of the