From c16455dbcf7aae140524b391c99b97a7b10b41dc Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 23 May 2012 19:02:28 +0300 Subject: 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 --- src/3rdparty/harfbuzz/src/harfbuzz-arabic.c | 69 +++++++++++++++-------------- 1 file changed, 36 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c b/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c index 3837087f44..d478f0484c 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c +++ b/src/3rdparty/harfbuzz/src/harfbuzz-arabic.c @@ -65,12 +65,14 @@ typedef enum { /* Dual */ Beh, Noon, + Nya = Noon, Meem = Noon, Heh = Noon, KnottedHeh = Noon, HehGoal = Noon, SwashKaf = Noon, Yeh, + FarsiYeh = Yeh, Hah, Seen, Sad = Seen, @@ -87,9 +89,10 @@ typedef enum { Dal, TehMarbuta = Dal, Reh, - HamzaOnHehGoal, - YehWithTail = HamzaOnHehGoal, - YehBarre = HamzaOnHehGoal, + TehMarbutaGoal, + HamzaOnHehGoal = TehMarbutaGoal, /* has been retained as a property value alias */ + YehWithTail = TehMarbutaGoal, + YehBarree = TehMarbutaGoal, /* Syriac */ /* Dual */ @@ -98,12 +101,12 @@ typedef enum { Heth = Noon, Teth = Hah, Yudh = Noon, - Kaph = Noon, + Khaph = Noon, Lamadh = Lam, Mim = Noon, Nun = Noon, - Semakh = Noon, - FinalSemakh = Noon, + Semkath = Noon, + FinalSemkath = Noon, SyriacE = Ain, Pe = Ain, ReversedPe = Hah, @@ -113,16 +116,16 @@ typedef enum { /* Right */ Alaph = Alef, - Dalath = Dal, + DalathRish = Dal, He = Dal, SyriacWaw = Waw, - Zain = Alef, + Zhain = Alef, YudhHe = Waw, - Sadhe = HamzaOnHehGoal, + Sadhe = TehMarbutaGoal, Taw = Dal, /* Compiler bug? Otherwise ArabicGroupsEnd would be equal to Dal + 1. */ - Dummy = HamzaOnHehGoal, + Dummy = TehMarbutaGoal, ArabicGroupsEnd } ArabicGroup; @@ -133,19 +136,19 @@ static const unsigned char arabic_group[0x150] = { ArabicNone, ArabicNone, ArabicNone, ArabicNone, Transparent, Transparent, Transparent, Transparent, - Transparent, Transparent, ArabicNone, ArabicNone, - ArabicNone, ArabicNone, ArabicNone, ArabicNone, + Transparent, Transparent, Transparent, Transparent, + Transparent, Transparent, Transparent, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, - ArabicNone, ArabicNone, Alef, Alef, + Yeh, ArabicNone, Alef, Alef, Waw, Alef, Yeh, Alef, Beh, TehMarbuta, Beh, Beh, Hah, Hah, Hah, Dal, Dal, Reh, Reh, Seen, Seen, Sad, Sad, Tah, - Tah, Ain, Ain, ArabicNone, - ArabicNone, ArabicNone, ArabicNone, ArabicNone, + Tah, Ain, Ain, Gaf, + Gaf, FarsiYeh, FarsiYeh, FarsiYeh, /* 0x640 */ Kashida, Feh, Qaf, Kaf, @@ -155,8 +158,8 @@ static const unsigned char arabic_group[0x150] = { Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, Transparent, - Transparent, ArabicNone, ArabicNone, ArabicNone, - ArabicNone, ArabicNone, ArabicNone, ArabicNone, + Transparent, Transparent, Transparent, Transparent, + Transparent, Transparent, Transparent, Transparent, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, ArabicNone, @@ -187,15 +190,15 @@ static const unsigned char arabic_group[0x150] = { Gaf, Gaf, Gaf, Gaf, Gaf, Lam, Lam, Lam, Lam, Noon, Noon, Noon, - Noon, Noon, KnottedHeh, Hah, + Noon, Nya, KnottedHeh, Hah, /* 0x6c0 */ - TehMarbuta, HehGoal, HamzaOnHehGoal, HamzaOnHehGoal, + TehMarbuta, HehGoal, HehGoal, TehMarbutaGoal, 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, Transparent, Transparent, Transparent, 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, Transparent, Alaph, Transparent, Beth, Gamal, - Gamal, Dalath, Dalath, He, - SyriacWaw, Zain, Heth, Teth, - Teth, Yudh, YudhHe, Kaph, + Gamal, DalathRish, DalathRish, He, + SyriacWaw, Zhain, Heth, Teth, + Teth, Yudh, YudhHe, Khaph, - Lamadh, Mim, Nun, Semakh, - FinalSemakh, SyriacE, Pe, ReversedPe, - Sadhe, Qaph, Dalath, Shin, - Taw, Beth, Gamal, Dalath, + Lamadh, Mim, Nun, Semkath, + FinalSemkath, SyriacE, Pe, ReversedPe, + Sadhe, Qaph, DalathRish, Shin, + Taw, Beth, Gamal, DalathRish, 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, ArabicNone, - ArabicNone, Zain, Kaph, Fe, + ArabicNone, Zhain, Khaph, Fe, }; static ArabicGroup arabicGroup(unsigned short uc) @@ -313,7 +316,7 @@ static const Joining joining_for_group[ArabicGroupsEnd] = { JRight, /* Waw */ JRight, /* Dal */ JRight, /* Reh */ - JRight /* HamzaOnHehGoal */ + JRight /* TehMarbutaGoal */ }; @@ -471,7 +474,7 @@ static void getArabicProperties(const unsigned short *chars, int len, HB_ArabicP case Noon: case Beh: - case HamzaOnHehGoal: + case TehMarbutaGoal: lastGroup = Noon; break; case ArabicGroupsEnd: @@ -604,7 +607,7 @@ static const hb_uint16 arabicUnicodeMapping[256][2] = { { 0xFEAB, 1 }, /* 0x0630 R THAL */ { 0xFEAD, 1 }, /* 0x0631 R REH */ - { 0xFEAF, 1 }, /* 0x0632 R ZAIN */ + { 0xFEAF, 1 }, /* 0x0632 R ZHAIN */ { 0xFEB1, 3 }, /* 0x0633 D SEEN */ { 0xFEB5, 3 }, /* 0x0634 D SHEEN */ { 0xFEB9, 3 }, /* 0x0635 D SAD */ -- cgit v1.2.3