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:
parent
de255a8caf
commit
c16455dbcf
69
src/3rdparty/harfbuzz/src/harfbuzz-arabic.c
vendored
69
src/3rdparty/harfbuzz/src/harfbuzz-arabic.c
vendored
@ -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 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user