Re-generate the Arabic joining tables from UCD 6.1.0

Some names were fixed to meet their values in the Unicode data files (e.g. Zain -> Zhain);
Some other names were added as a value alias (Nya -> Noon) or deprecated
but retained as a value alias for BC (HamzaOnHehGoal -> TehMarbutaGoal);
Newly assigned Arabic characters were mapped into respective joining types and classes)

Change-Id: Ic4b4a6baf70f51fb5936f74fe9a173b8790dda11
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
Konstantin Ritt 2012-05-23 19:02:28 +03:00 committed by Qt by Nokia
parent de255a8caf
commit c16455dbcf

View File

@ -65,12 +65,14 @@ typedef enum {
/* Dual */ /* Dual */
Beh, Beh,
Noon, Noon,
Nya = Noon,
Meem = Noon, Meem = Noon,
Heh = Noon, Heh = Noon,
KnottedHeh = Noon, KnottedHeh = Noon,
HehGoal = Noon, HehGoal = Noon,
SwashKaf = Noon, SwashKaf = Noon,
Yeh, Yeh,
FarsiYeh = Yeh,
Hah, Hah,
Seen, Seen,
Sad = Seen, Sad = Seen,
@ -87,9 +89,10 @@ typedef enum {
Dal, Dal,
TehMarbuta = Dal, TehMarbuta = Dal,
Reh, Reh,
HamzaOnHehGoal, TehMarbutaGoal,
YehWithTail = HamzaOnHehGoal, HamzaOnHehGoal = TehMarbutaGoal, /* has been retained as a property value alias */
YehBarre = HamzaOnHehGoal, YehWithTail = TehMarbutaGoal,
YehBarree = TehMarbutaGoal,
/* Syriac */ /* Syriac */
/* Dual */ /* Dual */
@ -98,12 +101,12 @@ typedef enum {
Heth = Noon, Heth = Noon,
Teth = Hah, Teth = Hah,
Yudh = Noon, Yudh = Noon,
Kaph = Noon, Khaph = Noon,
Lamadh = Lam, Lamadh = Lam,
Mim = Noon, Mim = Noon,
Nun = Noon, Nun = Noon,
Semakh = Noon, Semkath = Noon,
FinalSemakh = Noon, FinalSemkath = Noon,
SyriacE = Ain, SyriacE = Ain,
Pe = Ain, Pe = Ain,
ReversedPe = Hah, ReversedPe = Hah,
@ -113,16 +116,16 @@ typedef enum {
/* Right */ /* Right */
Alaph = Alef, Alaph = Alef,
Dalath = Dal, DalathRish = Dal,
He = Dal, He = Dal,
SyriacWaw = Waw, SyriacWaw = Waw,
Zain = Alef, Zhain = Alef,
YudhHe = Waw, YudhHe = Waw,
Sadhe = HamzaOnHehGoal, Sadhe = TehMarbutaGoal,
Taw = Dal, Taw = Dal,
/* Compiler bug? Otherwise ArabicGroupsEnd would be equal to Dal + 1. */ /* Compiler bug? Otherwise ArabicGroupsEnd would be equal to Dal + 1. */
Dummy = HamzaOnHehGoal, Dummy = TehMarbutaGoal,
ArabicGroupsEnd ArabicGroupsEnd
} ArabicGroup; } ArabicGroup;
@ -133,19 +136,19 @@ static const unsigned char arabic_group[0x150] = {
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, Transparent, ArabicNone, ArabicNone, Transparent, Transparent, Transparent, Transparent,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, Transparent, Transparent, Transparent, ArabicNone,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
ArabicNone, ArabicNone, Alef, Alef, Yeh, ArabicNone, Alef, Alef,
Waw, Alef, Yeh, Alef, Waw, Alef, Yeh, Alef,
Beh, TehMarbuta, Beh, Beh, Beh, TehMarbuta, Beh, Beh,
Hah, Hah, Hah, Dal, Hah, Hah, Hah, Dal,
Dal, Reh, Reh, Seen, Dal, Reh, Reh, Seen,
Seen, Sad, Sad, Tah, Seen, Sad, Sad, Tah,
Tah, Ain, Ain, ArabicNone, Tah, Ain, Ain, Gaf,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, Gaf, FarsiYeh, FarsiYeh, FarsiYeh,
/* 0x640 */ /* 0x640 */
Kashida, Feh, Qaf, Kaf, Kashida, Feh, Qaf, Kaf,
@ -155,8 +158,8 @@ static const unsigned char arabic_group[0x150] = {
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, ArabicNone, ArabicNone, ArabicNone, Transparent, Transparent, Transparent, Transparent,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, Transparent, Transparent, Transparent, Transparent,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
@ -187,15 +190,15 @@ static const unsigned char arabic_group[0x150] = {
Gaf, Gaf, Gaf, Gaf, Gaf, Gaf, Gaf, Gaf,
Gaf, Lam, Lam, Lam, Gaf, Lam, Lam, Lam,
Lam, Noon, Noon, Noon, Lam, Noon, Noon, Noon,
Noon, Noon, KnottedHeh, Hah, Noon, Nya, KnottedHeh, Hah,
/* 0x6c0 */ /* 0x6c0 */
TehMarbuta, HehGoal, HamzaOnHehGoal, HamzaOnHehGoal, TehMarbuta, HehGoal, HehGoal, TehMarbutaGoal,
Waw, Waw, Waw, Waw, Waw, Waw, Waw, Waw,
Waw, Waw, Waw, Waw, Waw, Waw, Waw, Waw,
Yeh, YehWithTail, Yeh, Waw, FarsiYeh, YehWithTail, FarsiYeh, Waw,
Yeh, Yeh, YehBarre, YehBarre, Yeh, Yeh, YehBarree, YehBarree,
ArabicNone, TehMarbuta, Transparent, Transparent, ArabicNone, TehMarbuta, Transparent, Transparent,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, ArabicNone, ArabicNone, Transparent, Transparent, ArabicNone, ArabicNone, Transparent,
@ -214,17 +217,17 @@ static const unsigned char arabic_group[0x150] = {
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone,
ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, Transparent,
Alaph, Transparent, Beth, Gamal, Alaph, Transparent, Beth, Gamal,
Gamal, Dalath, Dalath, He, Gamal, DalathRish, DalathRish, He,
SyriacWaw, Zain, Heth, Teth, SyriacWaw, Zhain, Heth, Teth,
Teth, Yudh, YudhHe, Kaph, Teth, Yudh, YudhHe, Khaph,
Lamadh, Mim, Nun, Semakh, Lamadh, Mim, Nun, Semkath,
FinalSemakh, SyriacE, Pe, ReversedPe, FinalSemkath, SyriacE, Pe, ReversedPe,
Sadhe, Qaph, Dalath, Shin, Sadhe, Qaph, DalathRish, Shin,
Taw, Beth, Gamal, Dalath, Taw, Beth, Gamal, DalathRish,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
@ -234,7 +237,7 @@ static const unsigned char arabic_group[0x150] = {
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent,
Transparent, Transparent, Transparent, ArabicNone, Transparent, Transparent, Transparent, ArabicNone,
ArabicNone, Zain, Kaph, Fe, ArabicNone, Zhain, Khaph, Fe,
}; };
static ArabicGroup arabicGroup(unsigned short uc) static ArabicGroup arabicGroup(unsigned short uc)
@ -313,7 +316,7 @@ static const Joining joining_for_group[ArabicGroupsEnd] = {
JRight, /* Waw */ JRight, /* Waw */
JRight, /* Dal */ JRight, /* Dal */
JRight, /* Reh */ JRight, /* Reh */
JRight /* HamzaOnHehGoal */ JRight /* TehMarbutaGoal */
}; };
@ -471,7 +474,7 @@ static void getArabicProperties(const unsigned short *chars, int len, HB_ArabicP
case Noon: case Noon:
case Beh: case Beh:
case HamzaOnHehGoal: case TehMarbutaGoal:
lastGroup = Noon; lastGroup = Noon;
break; break;
case ArabicGroupsEnd: case ArabicGroupsEnd:
@ -604,7 +607,7 @@ static const hb_uint16 arabicUnicodeMapping[256][2] = {
{ 0xFEAB, 1 }, /* 0x0630 R THAL */ { 0xFEAB, 1 }, /* 0x0630 R THAL */
{ 0xFEAD, 1 }, /* 0x0631 R REH */ { 0xFEAD, 1 }, /* 0x0631 R REH */
{ 0xFEAF, 1 }, /* 0x0632 R ZAIN */ { 0xFEAF, 1 }, /* 0x0632 R ZHAIN */
{ 0xFEB1, 3 }, /* 0x0633 D SEEN */ { 0xFEB1, 3 }, /* 0x0633 D SEEN */
{ 0xFEB5, 3 }, /* 0x0634 D SHEEN */ { 0xFEB5, 3 }, /* 0x0634 D SHEEN */
{ 0xFEB9, 3 }, /* 0x0635 D SAD */ { 0xFEB9, 3 }, /* 0x0635 D SAD */