[indic-generator/myanmar] Move most Myanmar category overrides to generator
This commit is contained in:
parent
c136227f57
commit
37217fc9be
|
@ -245,6 +245,114 @@ category_overrides = {
|
|||
0x17C8: 'Ygroup',
|
||||
0x17DD: 'Ygroup',
|
||||
0x17D3: 'Ygroup', # Just guessing. Uniscribe doesn't categorize it.
|
||||
|
||||
|
||||
# Myanmar
|
||||
|
||||
# https://docs.microsoft.com/en-us/typography/script-development/myanmar#analyze
|
||||
|
||||
0xFE00: 'VS',
|
||||
0xFE01: 'VS',
|
||||
0xFE02: 'VS',
|
||||
0xFE03: 'VS',
|
||||
0xFE04: 'VS',
|
||||
0xFE05: 'VS',
|
||||
0xFE06: 'VS',
|
||||
0xFE07: 'VS',
|
||||
0xFE08: 'VS',
|
||||
0xFE09: 'VS',
|
||||
0xFE0A: 'VS',
|
||||
0xFE0B: 'VS',
|
||||
0xFE0C: 'VS',
|
||||
0xFE0D: 'VS',
|
||||
0xFE0E: 'VS',
|
||||
0xFE0F: 'VS',
|
||||
|
||||
0x104E: 'C', # The spec says C, IndicSyllableCategory doesn't have.
|
||||
|
||||
0x002D: 'PLACEHOLDER',
|
||||
0x00A0: 'PLACEHOLDER',
|
||||
0x00D7: 'PLACEHOLDER',
|
||||
0x2012: 'PLACEHOLDER',
|
||||
0x2013: 'PLACEHOLDER',
|
||||
0x2014: 'PLACEHOLDER',
|
||||
0x2015: 'PLACEHOLDER',
|
||||
0x2022: 'PLACEHOLDER',
|
||||
0x25FB: 'PLACEHOLDER',
|
||||
0x25FC: 'PLACEHOLDER',
|
||||
0x25FD: 'PLACEHOLDER',
|
||||
0x25FE: 'PLACEHOLDER',
|
||||
|
||||
0x1004: 'Ra',
|
||||
0x101B: 'Ra',
|
||||
0x105A: 'Ra',
|
||||
|
||||
0x1032: 'A',
|
||||
0x1036: 'A',
|
||||
|
||||
0x1039: 'H',
|
||||
|
||||
0x103A: 'As',
|
||||
|
||||
0x1040: 'D', # XXX The spec says D0, but Uniscribe doesn't seem to do.
|
||||
0x1041: 'D',
|
||||
0x1042: 'D',
|
||||
0x1043: 'D',
|
||||
0x1044: 'D',
|
||||
0x1045: 'D',
|
||||
0x1046: 'D',
|
||||
0x1047: 'D',
|
||||
0x1048: 'D',
|
||||
0x1049: 'D',
|
||||
0x1090: 'D',
|
||||
0x1091: 'D',
|
||||
0x1092: 'D',
|
||||
0x1093: 'D',
|
||||
0x1094: 'D',
|
||||
0x1095: 'D',
|
||||
0x1096: 'D',
|
||||
0x1097: 'D',
|
||||
0x1098: 'D',
|
||||
0x1099: 'D',
|
||||
|
||||
0x103E: 'MH',
|
||||
0x1060: 'ML',
|
||||
0x103C: 'MR',
|
||||
0x103D: 'MW',
|
||||
0x1082: 'MW',
|
||||
0x103B: 'MY',
|
||||
0x105E: 'MY',
|
||||
0x105F: 'MY',
|
||||
|
||||
0x1063: 'PT',
|
||||
0x1064: 'PT',
|
||||
0x1069: 'PT',
|
||||
0x106A: 'PT',
|
||||
0x106B: 'PT',
|
||||
0x106C: 'PT',
|
||||
0x106D: 'PT',
|
||||
0xAA7B: 'PT',
|
||||
|
||||
0x1038: 'SM',
|
||||
0x1087: 'SM',
|
||||
0x1088: 'SM',
|
||||
0x1089: 'SM',
|
||||
0x108A: 'SM',
|
||||
0x108B: 'SM',
|
||||
0x108C: 'SM',
|
||||
0x108D: 'SM',
|
||||
0x108F: 'SM',
|
||||
0x109A: 'SM',
|
||||
0x109B: 'SM',
|
||||
0x109C: 'SM',
|
||||
|
||||
0x104A: 'P',
|
||||
0x104B: 'P',
|
||||
|
||||
# https://github.com/harfbuzz/harfbuzz/issues/218
|
||||
0xAA74: 'C',
|
||||
0xAA75: 'C',
|
||||
0xAA76: 'C',
|
||||
}
|
||||
position_overrides = {
|
||||
|
||||
|
@ -302,6 +410,7 @@ def position_to_category(pos):
|
|||
if pos == 'ABOVE_C': return 'VAbv'
|
||||
if pos == 'BELOW_C': return 'VBlw'
|
||||
if pos == 'POST_C': return 'VPst'
|
||||
assert(False)
|
||||
|
||||
|
||||
defaults = (category_map[defaults[0]], position_map[defaults[1]], defaults[2])
|
||||
|
@ -391,6 +500,7 @@ short = [{
|
|||
"Robatic": 'Rt',
|
||||
"Xgroup": 'Xg',
|
||||
"Ygroup": 'Yg',
|
||||
"As": 'As',
|
||||
},{
|
||||
"END": 'X',
|
||||
"BASE_C": 'C',
|
||||
|
|
|
@ -23,44 +23,54 @@
|
|||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-macros"
|
||||
|
||||
#define ISC_A OT_A /* 51 chars; A */
|
||||
#define ISC_C OT_C /* 520 chars; C */
|
||||
#define ISC_CM OT_CM /* 9 chars; CM */
|
||||
#define ISC_A OT_A /* 53 chars; A */
|
||||
#define ISC_As OT_As /* 1 chars; As */
|
||||
#define ISC_C OT_C /* 521 chars; C */
|
||||
#define ISC_CM OT_CM /* 1 chars; CM */
|
||||
#define ISC_CS OT_CS /* 2 chars; CS */
|
||||
#define ISC_Co OT_Coeng /* 2 chars; Coeng */
|
||||
#define ISC_Co OT_Coeng /* 1 chars; Coeng */
|
||||
#define ISC_D OT_D /* 20 chars; D */
|
||||
#define ISC_DC OT_DOTTEDCIRCLE /* 1 chars; DOTTEDCIRCLE */
|
||||
#define ISC_H OT_H /* 10 chars; H */
|
||||
#define ISC_H OT_H /* 11 chars; H */
|
||||
#define ISC_M OT_M /* 160 chars; M */
|
||||
#define ISC_N OT_N /* 35 chars; N */
|
||||
#define ISC_GB OT_PLACEHOLDER /* 168 chars; PLACEHOLDER */
|
||||
#define ISC_R OT_Ra /* 12 chars; Ra */
|
||||
#define ISC_MH OT_MH /* 1 chars; MH */
|
||||
#define ISC_ML OT_ML /* 1 chars; ML */
|
||||
#define ISC_MR OT_MR /* 1 chars; MR */
|
||||
#define ISC_MW OT_MW /* 2 chars; MW */
|
||||
#define ISC_MY OT_MY /* 3 chars; MY */
|
||||
#define ISC_N OT_N /* 17 chars; N */
|
||||
#define ISC_P OT_P /* 2 chars; P */
|
||||
#define ISC_GB OT_PLACEHOLDER /* 149 chars; PLACEHOLDER */
|
||||
#define ISC_PT OT_PT /* 8 chars; PT */
|
||||
#define ISC_R OT_Ra /* 15 chars; Ra */
|
||||
#define ISC_Rf OT_Repha /* 1 chars; Repha */
|
||||
#define ISC_Rt OT_Robatic /* 3 chars; Robatic */
|
||||
#define ISC_SM OT_SM /* 48 chars; SM */
|
||||
#define ISC_SM OT_SM /* 58 chars; SM */
|
||||
#define ISC_S OT_Symbol /* 22 chars; Symbol */
|
||||
#define ISC_V OT_V /* 190 chars; V */
|
||||
#define ISC_VA OT_VAbv /* 20 chars; VAbv */
|
||||
#define ISC_VA OT_VAbv /* 18 chars; VAbv */
|
||||
#define ISC_VB OT_VBlw /* 7 chars; VBlw */
|
||||
#define ISC_VL OT_VPre /* 5 chars; VPre */
|
||||
#define ISC_VR OT_VPst /* 14 chars; VPst */
|
||||
#define ISC_VR OT_VPst /* 13 chars; VPst */
|
||||
#define ISC_VS OT_VS /* 16 chars; VS */
|
||||
#define ISC_X OT_X /* 2 chars; X */
|
||||
#define ISC_Xg OT_Xgroup /* 7 chars; Xgroup */
|
||||
#define ISC_Yg OT_Ygroup /* 4 chars; Ygroup */
|
||||
#define ISC_ZWJ OT_ZWJ /* 1 chars; ZWJ */
|
||||
#define ISC_ZWNJ OT_ZWNJ /* 1 chars; ZWNJ */
|
||||
|
||||
#define IMC_T POS_ABOVE_C /* 25 chars; ABOVE_C */
|
||||
#define IMC_T POS_ABOVE_C /* 23 chars; ABOVE_C */
|
||||
#define IMC_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */
|
||||
#define IMC_AP POS_AFTER_POST /* 50 chars; AFTER_POST */
|
||||
#define IMC_AS POS_AFTER_SUB /* 60 chars; AFTER_SUB */
|
||||
#define IMC_C POS_BASE_C /* 902 chars; BASE_C */
|
||||
#define IMC_C POS_BASE_C /* 879 chars; BASE_C */
|
||||
#define IMC_BS POS_BEFORE_SUB /* 31 chars; BEFORE_SUB */
|
||||
#define IMC_B POS_BELOW_C /* 13 chars; BELOW_C */
|
||||
#define IMC_X POS_END /* 56 chars; END */
|
||||
#define IMC_R POS_POST_C /* 14 chars; POST_C */
|
||||
#define IMC_X POS_END /* 93 chars; END */
|
||||
#define IMC_R POS_POST_C /* 13 chars; POST_C */
|
||||
#define IMC_L POS_PRE_C /* 5 chars; PRE_C */
|
||||
#define IMC_LM POS_PRE_M /* 16 chars; PRE_M */
|
||||
#define IMC_SM POS_SMVD /* 120 chars; SMVD */
|
||||
#define IMC_SM POS_SMVD /* 132 chars; SMVD */
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
|
@ -287,26 +297,26 @@ static const uint16_t indic_table[] = {
|
|||
|
||||
/* Myanmar */
|
||||
|
||||
/* 1000 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1000 */ _(C,C), _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1008 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1010 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1018 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1018 */ _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1020 */ _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C),
|
||||
/* 1028 */ _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R), _(VA,T), _(VA,T), _(VB,B),
|
||||
/* 1030 */ _(VB,B), _(VL,L), _(VA,T), _(VA,T), _(VA,T), _(VA,T),_(SM,SM), _(N,X),
|
||||
/* 1038 */_(SM,SM), _(Co,X), _(VA,T), _(CM,C), _(CM,C), _(CM,C), _(CM,C), _(C,C),
|
||||
/* 1040 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
||||
/* 1048 */ _(GB,C), _(GB,C), _(X,X), _(GB,C), _(X,X), _(X,X), _(GB,C), _(X,X),
|
||||
/* 1030 */ _(VB,B), _(VL,L), _(A,SM), _(VA,T), _(VA,T), _(VA,T), _(A,SM), _(N,X),
|
||||
/* 1038 */_(SM,SM), _(H,X), _(As,X), _(MY,X), _(MR,X), _(MW,X), _(MH,X), _(C,C),
|
||||
/* 1040 */ _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X),
|
||||
/* 1048 */ _(D,X), _(D,X), _(P,X), _(P,X), _(X,X), _(X,X), _(C,C), _(X,X),
|
||||
/* 1050 */ _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R),
|
||||
/* 1058 */ _(VB,B), _(VB,B), _(C,C), _(C,C), _(C,C), _(C,C), _(CM,C), _(CM,C),
|
||||
/* 1060 */ _(CM,C), _(C,C), _(VR,R), _(N,X), _(N,X), _(C,C), _(C,C), _(VR,R),
|
||||
/* 1068 */ _(VR,R), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
||||
/* 1058 */ _(VB,B), _(VB,B), _(R,C), _(C,C), _(C,C), _(C,C), _(MY,X), _(MY,X),
|
||||
/* 1060 */ _(ML,X), _(C,C), _(VR,R), _(PT,X), _(PT,X), _(C,C), _(C,C), _(VR,R),
|
||||
/* 1068 */ _(VR,R), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(C,C), _(C,C),
|
||||
/* 1070 */ _(C,C), _(VA,T), _(VA,T), _(VA,T), _(VA,T), _(C,C), _(C,C), _(C,C),
|
||||
/* 1078 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* 1080 */ _(C,C), _(C,C), _(CM,C), _(VR,R), _(VL,L), _(VA,T), _(VA,T), _(N,X),
|
||||
/* 1088 */ _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,C), _(N,X),
|
||||
/* 1090 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
||||
/* 1098 */ _(GB,C), _(GB,C), _(N,X), _(N,X), _(VR,R), _(VA,T), _(X,X), _(X,X),
|
||||
/* 1080 */ _(C,C), _(C,C), _(MW,X), _(VR,R), _(VL,L), _(VA,T), _(VA,T),_(SM,SM),
|
||||
/* 1088 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(C,C),_(SM,SM),
|
||||
/* 1090 */ _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X),
|
||||
/* 1098 */ _(D,X), _(D,X),_(SM,SM),_(SM,SM),_(SM,SM), _(VA,T), _(X,X), _(X,X),
|
||||
|
||||
#define indic_offset_0x1780u 1496
|
||||
|
||||
|
@ -352,9 +362,14 @@ static const uint16_t indic_table[] = {
|
|||
/* General Punctuation */
|
||||
|
||||
/* 2008 */ _(X,X), _(X,X), _(X,X), _(X,X),_(ZWNJ,X),_(ZWJ,X), _(X,X), _(X,X),
|
||||
/* 2010 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X), _(X,X),
|
||||
/* 2010 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X),
|
||||
/* 2018 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
|
||||
#define indic_offset_0x2070u 1672
|
||||
/* No_Block */
|
||||
|
||||
/* 2020 */ _(X,X), _(X,X), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
|
||||
#define indic_offset_0x2070u 1688
|
||||
|
||||
|
||||
/* Superscripts and Subscripts */
|
||||
|
@ -363,7 +378,14 @@ static const uint16_t indic_table[] = {
|
|||
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X),
|
||||
|
||||
#define indic_offset_0xa8e0u 1696
|
||||
#define indic_offset_0x25f8u 1712
|
||||
|
||||
|
||||
/* No_Block */
|
||||
|
||||
/* 25F8 */ _(X,X), _(X,X), _(X,X), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X),
|
||||
|
||||
#define indic_offset_0xa8e0u 1720
|
||||
|
||||
|
||||
/* Devanagari Extended */
|
||||
|
@ -373,7 +395,7 @@ static const uint16_t indic_table[] = {
|
|||
/* A8F0 */ _(A,SM), _(A,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM),
|
||||
/* A8F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), _(M,AS),
|
||||
|
||||
#define indic_offset_0xa9e0u 1728
|
||||
#define indic_offset_0xa9e0u 1752
|
||||
|
||||
|
||||
/* Myanmar Extended-B */
|
||||
|
@ -383,21 +405,26 @@ static const uint16_t indic_table[] = {
|
|||
/* A9F0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
||||
/* A9F8 */ _(GB,C), _(GB,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X),
|
||||
|
||||
#define indic_offset_0xaa60u 1760
|
||||
#define indic_offset_0xaa60u 1784
|
||||
|
||||
|
||||
/* Myanmar Extended-A */
|
||||
|
||||
/* AA60 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* AA68 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||
/* AA70 */ _(X,X), _(C,C), _(C,C), _(C,C), _(GB,C), _(GB,C), _(GB,C), _(X,X),
|
||||
/* AA78 */ _(X,X), _(X,X), _(C,C), _(N,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
||||
/* AA70 */ _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X),
|
||||
/* AA78 */ _(X,X), _(X,X), _(C,C), _(PT,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
||||
|
||||
#define indic_offset_0x11300u 1792
|
||||
#define indic_offset_0xfe00u 1816
|
||||
|
||||
|
||||
/* No_Block */
|
||||
|
||||
/* FE00 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X),
|
||||
/* FE08 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X),
|
||||
|
||||
#define indic_offset_0x11300u 1832
|
||||
|
||||
/* 11300 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 11308 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 11310 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
|
@ -407,7 +434,7 @@ static const uint16_t indic_table[] = {
|
|||
/* 11330 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 11338 */ _(X,X), _(X,X), _(X,X), _(N,X), _(N,X), _(X,X), _(X,X), _(X,X),
|
||||
|
||||
}; /* Table items: 1856; occupancy: 69% */
|
||||
}; /* Table items: 1896; occupancy: 69% */
|
||||
|
||||
uint16_t
|
||||
hb_indic_get_categories (hb_codepoint_t u)
|
||||
|
@ -429,8 +456,9 @@ hb_indic_get_categories (hb_codepoint_t u)
|
|||
|
||||
case 0x2u:
|
||||
if (unlikely (u == 0x25CCu)) return _(DC,C);
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2017u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2027u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u];
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0x25F8u, 0x25FFu)) return indic_table[u - 0x25F8u + indic_offset_0x25f8u];
|
||||
break;
|
||||
|
||||
case 0xAu:
|
||||
|
@ -439,6 +467,10 @@ hb_indic_get_categories (hb_codepoint_t u)
|
|||
if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
|
||||
break;
|
||||
|
||||
case 0xFu:
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0xFE00u, 0xFE0Fu)) return indic_table[u - 0xFE00u + indic_offset_0xfe00u];
|
||||
break;
|
||||
|
||||
case 0x11u:
|
||||
if (hb_in_range<hb_codepoint_t> (u, 0x11300u, 0x1133Fu)) return indic_table[u - 0x11300u + indic_offset_0x11300u];
|
||||
break;
|
||||
|
@ -452,15 +484,24 @@ hb_indic_get_categories (hb_codepoint_t u)
|
|||
#undef _
|
||||
|
||||
#undef ISC_A
|
||||
#undef ISC_As
|
||||
#undef ISC_C
|
||||
#undef ISC_CM
|
||||
#undef ISC_CS
|
||||
#undef ISC_Co
|
||||
#undef ISC_D
|
||||
#undef ISC_DC
|
||||
#undef ISC_H
|
||||
#undef ISC_M
|
||||
#undef ISC_MH
|
||||
#undef ISC_ML
|
||||
#undef ISC_MR
|
||||
#undef ISC_MW
|
||||
#undef ISC_MY
|
||||
#undef ISC_N
|
||||
#undef ISC_P
|
||||
#undef ISC_GB
|
||||
#undef ISC_PT
|
||||
#undef ISC_R
|
||||
#undef ISC_Rf
|
||||
#undef ISC_Rt
|
||||
|
@ -471,6 +512,7 @@ hb_indic_get_categories (hb_codepoint_t u)
|
|||
#undef ISC_VB
|
||||
#undef ISC_VL
|
||||
#undef ISC_VR
|
||||
#undef ISC_VS
|
||||
#undef ISC_X
|
||||
#undef ISC_Xg
|
||||
#undef ISC_Yg
|
||||
|
|
|
@ -77,15 +77,16 @@ enum indic_category_t {
|
|||
|
||||
/* Myanmar */
|
||||
OT_As = 32, // Asat
|
||||
OT_D0 = 33, // Digit zero
|
||||
OT_MH = 34, // Medial
|
||||
OT_MR = 35, // Medial
|
||||
OT_MW = 36, // Medial
|
||||
OT_MY = 37, // Medial
|
||||
OT_PT = 38, // Pwo and other tones
|
||||
OT_VS = 39, // Variation selectors
|
||||
OT_P = 40, // Punctuation
|
||||
OT_ML = 41, // Consonant medials
|
||||
OT_D = 33, // Digits except zero
|
||||
OT_D0 = 34, // Digit zero
|
||||
OT_MH = 35, // Medial
|
||||
OT_MR = 36, // Medial
|
||||
OT_MW = 37, // Medial
|
||||
OT_MY = 38, // Medial
|
||||
OT_PT = 39, // Pwo and other tones
|
||||
OT_VS = 40, // Variation selectors
|
||||
OT_P = 41, // Punctuation
|
||||
OT_ML = 42, // Consonant medials
|
||||
};
|
||||
|
||||
#define MEDIAL_FLAGS (FLAG (OT_CM))
|
||||
|
|
|
@ -56,98 +56,100 @@ enum myanmar_syllable_type_t {
|
|||
#define myanmar_syllable_machine_ex_As 32u
|
||||
#define myanmar_syllable_machine_ex_C 1u
|
||||
#define myanmar_syllable_machine_ex_CS 18u
|
||||
#define myanmar_syllable_machine_ex_D 10u
|
||||
#define myanmar_syllable_machine_ex_D0 33u
|
||||
#define myanmar_syllable_machine_ex_D 33u
|
||||
#define myanmar_syllable_machine_ex_D0 34u
|
||||
#define myanmar_syllable_machine_ex_DB 3u
|
||||
#define myanmar_syllable_machine_ex_DOTTEDCIRCLE 11u
|
||||
#define myanmar_syllable_machine_ex_GB 10u
|
||||
#define myanmar_syllable_machine_ex_H 4u
|
||||
#define myanmar_syllable_machine_ex_IV 2u
|
||||
#define myanmar_syllable_machine_ex_MH 34u
|
||||
#define myanmar_syllable_machine_ex_ML 41u
|
||||
#define myanmar_syllable_machine_ex_MR 35u
|
||||
#define myanmar_syllable_machine_ex_MW 36u
|
||||
#define myanmar_syllable_machine_ex_MY 37u
|
||||
#define myanmar_syllable_machine_ex_P 40u
|
||||
#define myanmar_syllable_machine_ex_PT 38u
|
||||
#define myanmar_syllable_machine_ex_MH 35u
|
||||
#define myanmar_syllable_machine_ex_ML 42u
|
||||
#define myanmar_syllable_machine_ex_MR 36u
|
||||
#define myanmar_syllable_machine_ex_MW 37u
|
||||
#define myanmar_syllable_machine_ex_MY 38u
|
||||
#define myanmar_syllable_machine_ex_P 41u
|
||||
#define myanmar_syllable_machine_ex_PT 39u
|
||||
#define myanmar_syllable_machine_ex_Ra 15u
|
||||
#define myanmar_syllable_machine_ex_V 8u
|
||||
#define myanmar_syllable_machine_ex_SM 8u
|
||||
#define myanmar_syllable_machine_ex_VAbv 20u
|
||||
#define myanmar_syllable_machine_ex_VBlw 21u
|
||||
#define myanmar_syllable_machine_ex_VPre 22u
|
||||
#define myanmar_syllable_machine_ex_VPst 23u
|
||||
#define myanmar_syllable_machine_ex_VS 39u
|
||||
#define myanmar_syllable_machine_ex_VS 40u
|
||||
#define myanmar_syllable_machine_ex_ZWJ 6u
|
||||
#define myanmar_syllable_machine_ex_ZWNJ 5u
|
||||
|
||||
|
||||
#line 84 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 85 "hb-ot-shaper-myanmar-machine.hh"
|
||||
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
|
||||
1u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
|
||||
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 38u, 3u, 38u,
|
||||
3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 41u,
|
||||
3u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
|
||||
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 41u, 3u, 38u,
|
||||
3u, 38u, 3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u,
|
||||
3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 8u, 8u,
|
||||
1u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
|
||||
3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 42u,
|
||||
3u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 42u, 3u, 39u,
|
||||
3u, 39u, 3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u,
|
||||
3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 1u, 42u, 1u, 33u, 8u, 8u,
|
||||
0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_key_spans[] = {
|
||||
41, 39, 34, 4, 39, 36, 36, 34,
|
||||
34, 36, 36, 39, 34, 15, 36, 36,
|
||||
37, 36, 39, 39, 36, 39, 39, 39,
|
||||
39, 39, 34, 4, 39, 36, 36, 34,
|
||||
34, 36, 36, 39, 34, 15, 39, 36,
|
||||
36, 37, 36, 39, 39, 36, 39, 39,
|
||||
39, 39, 39, 39, 39, 41, 15, 1
|
||||
42, 40, 35, 4, 40, 37, 37, 35,
|
||||
35, 37, 37, 40, 35, 15, 37, 37,
|
||||
38, 37, 40, 40, 37, 40, 40, 40,
|
||||
40, 40, 35, 4, 40, 37, 37, 35,
|
||||
35, 37, 37, 40, 35, 15, 40, 37,
|
||||
37, 38, 37, 40, 40, 37, 40, 40,
|
||||
40, 40, 40, 40, 40, 42, 33, 1
|
||||
};
|
||||
|
||||
static const short _myanmar_syllable_machine_index_offsets[] = {
|
||||
0, 42, 82, 117, 122, 162, 199, 236,
|
||||
271, 306, 343, 380, 420, 455, 471, 508,
|
||||
545, 583, 620, 660, 700, 737, 777, 817,
|
||||
857, 897, 937, 972, 977, 1017, 1054, 1091,
|
||||
1126, 1161, 1198, 1235, 1275, 1310, 1326, 1366,
|
||||
1403, 1440, 1478, 1515, 1555, 1595, 1632, 1672,
|
||||
1712, 1752, 1792, 1832, 1872, 1912, 1954, 1970
|
||||
0, 43, 84, 120, 125, 166, 204, 242,
|
||||
278, 314, 352, 390, 431, 467, 483, 521,
|
||||
559, 598, 636, 677, 718, 756, 797, 838,
|
||||
879, 920, 961, 997, 1002, 1043, 1081, 1119,
|
||||
1155, 1191, 1229, 1267, 1308, 1344, 1360, 1401,
|
||||
1439, 1477, 1516, 1554, 1595, 1636, 1674, 1715,
|
||||
1756, 1797, 1838, 1879, 1920, 1961, 2004, 2038
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_indicies[] = {
|
||||
1, 1, 2, 3, 4, 4, 0, 5,
|
||||
6, 1, 0, 0, 0, 0, 7, 0,
|
||||
6, 1, 1, 0, 0, 0, 7, 0,
|
||||
0, 8, 0, 9, 10, 11, 12, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 13,
|
||||
0, 14, 15, 16, 17, 18, 19, 20,
|
||||
21, 0, 23, 24, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 32,
|
||||
22, 33, 34, 35, 36, 37, 38, 22,
|
||||
39, 22, 25, 25, 22, 26, 22, 22,
|
||||
1, 0, 14, 15, 16, 17, 18, 19,
|
||||
20, 21, 0, 23, 24, 25, 25, 22,
|
||||
26, 27, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 28, 29, 30, 31,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
32, 22, 22, 33, 34, 35, 36, 37,
|
||||
38, 22, 39, 22, 25, 25, 22, 26,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 40, 22, 22,
|
||||
22, 22, 22, 37, 22, 25, 25, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 41, 22, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 42,
|
||||
22, 43, 22, 22, 22, 37, 22, 22,
|
||||
42, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 40,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
25, 25, 22, 26, 22, 23, 22, 25,
|
||||
25, 22, 26, 27, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 41, 22,
|
||||
22, 31, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 42, 22, 22, 43, 22, 22,
|
||||
22, 37, 22, 22, 42, 22, 23, 22,
|
||||
25, 25, 22, 26, 27, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 37, 22, 44,
|
||||
22, 25, 25, 22, 26, 37, 22, 22,
|
||||
22, 22, 31, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 44, 22, 25, 25,
|
||||
22, 26, 37, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 45, 22, 22, 22,
|
||||
22, 22, 37, 22, 25, 25, 22, 26,
|
||||
22, 45, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 25, 25, 22, 26, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 45,
|
||||
22, 22, 22, 22, 22, 37, 22, 25,
|
||||
25, 22, 26, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 45, 22, 22,
|
||||
22, 22, 22, 22, 37, 22, 25, 25,
|
||||
22, 26, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
|
@ -155,211 +157,219 @@ static const char _myanmar_syllable_machine_indicies[] = {
|
|||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 41, 22, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 37, 22, 23,
|
||||
22, 25, 25, 22, 26, 27, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
23, 22, 25, 25, 22, 26, 27, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
41, 22, 22, 31, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 42, 22, 22, 22,
|
||||
22, 22, 37, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 41, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 42, 22, 22, 22, 22, 22, 37,
|
||||
22, 22, 42, 22, 25, 25, 22, 26,
|
||||
22, 41, 22, 22, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 42, 22, 22,
|
||||
22, 22, 22, 22, 37, 22, 23, 22,
|
||||
25, 25, 22, 26, 27, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 41,
|
||||
22, 22, 31, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 42, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 22, 42, 22, 25,
|
||||
25, 22, 26, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 31, 22,
|
||||
22, 31, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 37, 22, 1,
|
||||
1, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 1, 22, 23,
|
||||
22, 25, 25, 22, 26, 27, 22, 22,
|
||||
22, 37, 22, 1, 1, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
28, 29, 22, 31, 22, 22, 22, 22,
|
||||
22, 1, 22, 23, 22, 25, 25, 22,
|
||||
26, 27, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 28, 29, 22, 31,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 29, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 37,
|
||||
22, 23, 22, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
22, 22, 22, 29, 22, 31, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 37, 46, 22, 23,
|
||||
22, 22, 22, 22, 22, 37, 22, 23,
|
||||
22, 25, 25, 22, 26, 27, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
28, 29, 30, 31, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 37, 46, 22, 23, 22,
|
||||
25, 25, 22, 26, 27, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 28,
|
||||
29, 30, 31, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 28, 29, 30,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 32, 22, 33, 34, 35, 36, 37,
|
||||
22, 22, 39, 22, 23, 22, 25, 25,
|
||||
22, 32, 22, 22, 33, 34, 35, 36,
|
||||
37, 22, 22, 39, 22, 23, 22, 25,
|
||||
25, 22, 26, 27, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 28, 29,
|
||||
30, 31, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 46, 22, 22, 22, 22, 22,
|
||||
22, 37, 22, 22, 39, 22, 23, 22,
|
||||
25, 25, 22, 26, 27, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 28,
|
||||
29, 30, 31, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 46, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 28, 29, 30,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 46, 22, 22, 22, 22, 22, 37,
|
||||
22, 22, 39, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 28, 29, 30,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 46, 22, 22, 22, 22, 22, 37,
|
||||
22, 23, 22, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 33, 22, 35, 22,
|
||||
37, 22, 22, 39, 22, 23, 22, 25,
|
||||
25, 22, 26, 27, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 28, 29,
|
||||
30, 31, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 46, 22, 22, 33, 22, 22,
|
||||
22, 37, 22, 22, 39, 22, 23, 22,
|
||||
25, 25, 22, 26, 27, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 28,
|
||||
29, 30, 31, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 47, 22, 22, 33, 34,
|
||||
35, 22, 37, 22, 22, 39, 22, 23,
|
||||
22, 25, 25, 22, 26, 27, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
28, 29, 30, 31, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 33,
|
||||
34, 35, 22, 37, 22, 22, 39, 22,
|
||||
23, 24, 25, 25, 22, 26, 27, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
33, 22, 35, 22, 37, 22, 22, 39,
|
||||
22, 23, 22, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 46, 22,
|
||||
33, 22, 22, 22, 37, 22, 22, 39,
|
||||
22, 23, 22, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 47, 22,
|
||||
33, 34, 35, 22, 37, 22, 22, 39,
|
||||
22, 23, 22, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
33, 34, 35, 22, 37, 22, 22, 39,
|
||||
22, 23, 24, 25, 25, 22, 26, 27,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 28, 29, 30, 31, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 32, 22,
|
||||
22, 28, 29, 30, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 32, 22, 22,
|
||||
33, 34, 35, 36, 37, 22, 22, 39,
|
||||
22, 49, 49, 48, 5, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 12, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 50, 48, 48, 48,
|
||||
48, 48, 18, 48, 49, 49, 48, 5,
|
||||
48, 2, 48, 49, 49, 48, 5, 6,
|
||||
48, 48, 48, 18, 48, 49, 49, 48,
|
||||
5, 48, 2, 48, 49, 49, 48, 5,
|
||||
6, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 51, 48, 48, 12, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 52,
|
||||
48, 48, 53, 48, 48, 48, 18, 48,
|
||||
48, 52, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 51, 48, 48, 12, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 52, 48,
|
||||
53, 48, 48, 48, 18, 48, 48, 52,
|
||||
48, 2, 48, 49, 49, 48, 5, 6,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 12, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 18, 48, 54, 48,
|
||||
49, 49, 48, 5, 18, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 55, 48, 48, 48, 48,
|
||||
48, 18, 48, 49, 49, 48, 5, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 18,
|
||||
48, 54, 48, 49, 49, 48, 5, 18,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 55, 48,
|
||||
48, 48, 48, 48, 18, 48, 49, 49,
|
||||
48, 5, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 18, 48, 49,
|
||||
49, 48, 5, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 18,
|
||||
48, 2, 48, 49, 49, 48, 5, 6,
|
||||
48, 48, 55, 48, 48, 48, 48, 48,
|
||||
48, 18, 48, 49, 49, 48, 5, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 51, 48, 48, 12, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 18, 48, 2, 48,
|
||||
49, 49, 48, 5, 6, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 51,
|
||||
48, 48, 12, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 52, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 18, 48, 2,
|
||||
48, 49, 49, 48, 5, 6, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
51, 48, 48, 12, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 18, 48, 2, 48, 49,
|
||||
49, 48, 5, 6, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 51, 48,
|
||||
48, 12, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 52, 48, 48, 48, 48, 48,
|
||||
48, 18, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 51, 48, 48, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
52, 48, 48, 48, 48, 48, 18, 48,
|
||||
48, 52, 48, 49, 49, 48, 5, 48,
|
||||
52, 48, 48, 48, 48, 48, 48, 18,
|
||||
48, 48, 52, 48, 49, 49, 48, 5,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 12, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 18, 48, 56, 56,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 56, 48, 2, 3,
|
||||
49, 49, 48, 5, 6, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 9,
|
||||
10, 11, 12, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 13, 48, 14, 15, 16,
|
||||
17, 18, 19, 48, 21, 48, 2, 48,
|
||||
49, 49, 48, 5, 6, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 9,
|
||||
10, 48, 12, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 18, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 10, 48, 12,
|
||||
48, 48, 48, 48, 48, 48, 12, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 18, 48,
|
||||
2, 48, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 18, 57, 48, 2, 48,
|
||||
49, 49, 48, 5, 6, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 9,
|
||||
10, 11, 12, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 18, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
13, 48, 14, 15, 16, 17, 18, 48,
|
||||
48, 21, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
57, 48, 48, 48, 48, 48, 18, 48,
|
||||
48, 21, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
57, 48, 48, 48, 48, 48, 18, 48,
|
||||
2, 48, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 14,
|
||||
48, 16, 48, 18, 48, 48, 21, 48,
|
||||
2, 48, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 57, 48, 14,
|
||||
48, 48, 48, 18, 48, 48, 21, 48,
|
||||
2, 48, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 58, 48, 14,
|
||||
15, 16, 48, 18, 48, 48, 21, 48,
|
||||
2, 48, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 14,
|
||||
15, 16, 48, 18, 48, 48, 21, 48,
|
||||
56, 56, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 56, 48,
|
||||
2, 3, 49, 49, 48, 5, 6, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 9, 10, 11, 12, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 13, 48, 14,
|
||||
15, 16, 17, 18, 48, 48, 21, 48,
|
||||
23, 24, 25, 25, 22, 26, 27, 22,
|
||||
48, 48, 48, 48, 48, 13, 48, 48,
|
||||
14, 15, 16, 17, 18, 19, 48, 21,
|
||||
48, 2, 48, 49, 49, 48, 5, 6,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 9, 10, 48, 12, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 18, 48, 2,
|
||||
48, 49, 49, 48, 5, 6, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 10, 48, 12, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 18, 48, 2, 48, 49,
|
||||
49, 48, 5, 6, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 9, 10,
|
||||
11, 12, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 18, 57, 48, 2, 48, 49, 49,
|
||||
48, 5, 6, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 9, 10, 11,
|
||||
12, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
18, 48, 2, 48, 49, 49, 48, 5,
|
||||
6, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 9, 10, 11, 12, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 13,
|
||||
48, 48, 14, 15, 16, 17, 18, 48,
|
||||
48, 21, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
57, 48, 48, 48, 48, 48, 48, 18,
|
||||
48, 48, 21, 48, 2, 48, 49, 49,
|
||||
48, 5, 6, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 9, 10, 11,
|
||||
12, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 57, 48, 48, 48, 48, 48, 48,
|
||||
18, 48, 2, 48, 49, 49, 48, 5,
|
||||
6, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 9, 10, 11, 12, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 14, 48, 16, 48, 18, 48,
|
||||
48, 21, 48, 2, 48, 49, 49, 48,
|
||||
5, 6, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
57, 48, 48, 14, 48, 48, 48, 18,
|
||||
48, 48, 21, 48, 2, 48, 49, 49,
|
||||
48, 5, 6, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 9, 10, 11,
|
||||
12, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 58, 48, 48, 14, 15, 16, 48,
|
||||
18, 48, 48, 21, 48, 2, 48, 49,
|
||||
49, 48, 5, 6, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 9, 10,
|
||||
11, 12, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 14, 15, 16,
|
||||
48, 18, 48, 48, 21, 48, 2, 3,
|
||||
49, 49, 48, 5, 6, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 9,
|
||||
10, 11, 12, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 13, 48, 48, 14, 15,
|
||||
16, 17, 18, 48, 48, 21, 48, 23,
|
||||
24, 25, 25, 22, 26, 27, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 28, 29, 30, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 59, 22, 33,
|
||||
28, 29, 30, 31, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 59, 22, 22, 33,
|
||||
34, 35, 36, 37, 38, 22, 39, 22,
|
||||
23, 60, 25, 25, 22, 26, 27, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 28, 29, 30, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 32, 22, 33,
|
||||
34, 35, 36, 37, 22, 22, 39, 22,
|
||||
1, 1, 2, 3, 49, 49, 48, 5,
|
||||
6, 1, 48, 48, 48, 48, 1, 48,
|
||||
48, 48, 48, 9, 10, 11, 12, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 13,
|
||||
48, 14, 15, 16, 17, 18, 19, 48,
|
||||
21, 48, 1, 1, 61, 61, 61, 61,
|
||||
61, 61, 61, 1, 61, 61, 61, 61,
|
||||
1, 61, 62, 61, 0
|
||||
22, 22, 22, 22, 22, 32, 22, 22,
|
||||
33, 34, 35, 36, 37, 22, 22, 39,
|
||||
22, 1, 1, 2, 3, 49, 49, 48,
|
||||
5, 6, 1, 1, 48, 48, 48, 1,
|
||||
48, 48, 48, 48, 9, 10, 11, 12,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
13, 1, 48, 14, 15, 16, 17, 18,
|
||||
19, 48, 21, 48, 1, 1, 61, 61,
|
||||
61, 61, 61, 61, 61, 1, 1, 61,
|
||||
61, 61, 1, 61, 61, 61, 61, 61,
|
||||
61, 61, 61, 61, 61, 61, 61, 61,
|
||||
61, 61, 61, 61, 1, 61, 62, 61,
|
||||
0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_trans_targs[] = {
|
||||
|
@ -425,7 +435,7 @@ static const int myanmar_syllable_machine_en_main = 0;
|
|||
|
||||
|
||||
|
||||
#line 117 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 118 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
|
||||
#define found_syllable(syllable_type) \
|
||||
|
@ -444,7 +454,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
|||
int cs;
|
||||
hb_glyph_info_t *info = buffer->info;
|
||||
|
||||
#line 448 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 458 "hb-ot-shaper-myanmar-machine.hh"
|
||||
{
|
||||
cs = myanmar_syllable_machine_start;
|
||||
ts = 0;
|
||||
|
@ -452,7 +462,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
|||
act = 0;
|
||||
}
|
||||
|
||||
#line 137 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 138 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
|
||||
p = 0;
|
||||
|
@ -460,7 +470,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
|||
|
||||
unsigned int syllable_serial = 1;
|
||||
|
||||
#line 464 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 474 "hb-ot-shaper-myanmar-machine.hh"
|
||||
{
|
||||
int _slen;
|
||||
int _trans;
|
||||
|
@ -474,7 +484,7 @@ _resume:
|
|||
#line 1 "NONE"
|
||||
{ts = p;}
|
||||
break;
|
||||
#line 478 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 488 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
|
||||
|
@ -493,38 +503,38 @@ _eof_trans:
|
|||
|
||||
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
|
||||
case 6:
|
||||
#line 109 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
|
||||
break;
|
||||
case 4:
|
||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
case 10:
|
||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
|
||||
break;
|
||||
case 8:
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_broken_cluster); }}
|
||||
break;
|
||||
case 3:
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
case 5:
|
||||
#line 109 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
|
||||
break;
|
||||
case 7:
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
|
||||
break;
|
||||
case 9:
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
#line 528 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 538 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
_again:
|
||||
|
@ -533,7 +543,7 @@ _again:
|
|||
#line 1 "NONE"
|
||||
{ts = 0;}
|
||||
break;
|
||||
#line 537 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 547 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
if ( ++p != pe )
|
||||
|
@ -549,7 +559,7 @@ _again:
|
|||
|
||||
}
|
||||
|
||||
#line 145 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 146 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -63,9 +63,9 @@ export DB = 3; # Dot below = OT_N
|
|||
export H = 4;
|
||||
export ZWNJ = 5;
|
||||
export ZWJ = 6;
|
||||
export V = 8; # Visarga and Shan tones
|
||||
export SM = 8; # Visarga and Shan tones
|
||||
export GB = 10; # = OT_PLACEHOLDER
|
||||
export D = 10; # Digits except zero = GB
|
||||
export DOTTEDCIRCLE = 11;
|
||||
export A = 9;
|
||||
export Ra = 15;
|
||||
export CS = 18;
|
||||
|
@ -76,15 +76,16 @@ export VPre = 22;
|
|||
export VPst = 23;
|
||||
|
||||
export As = 32; # Asat
|
||||
export D0 = 33; # Digit zero
|
||||
export MH = 34; # Medial
|
||||
export MR = 35; # Medial
|
||||
export MW = 36; # Medial
|
||||
export MY = 37; # Medial
|
||||
export PT = 38; # Pwo and other tones
|
||||
export VS = 39; # Variation selectors
|
||||
export P = 40; # Punctuation
|
||||
export ML = 41; # Consonant medials
|
||||
export D = 33; # Digits except zero
|
||||
export D0 = 34; # Digit zero
|
||||
export MH = 35; # Medial
|
||||
export MR = 36; # Medial
|
||||
export MW = 37; # Medial
|
||||
export MY = 38; # Medial
|
||||
export PT = 39; # Pwo and other tones
|
||||
export VS = 40; # Variation selectors
|
||||
export P = 41; # Punctuation
|
||||
export ML = 42; # Consonant medials
|
||||
|
||||
|
||||
j = ZWJ|ZWNJ; # Joiners
|
||||
|
@ -97,11 +98,11 @@ main_vowel_group = (VPre.VS?)* VAbv* VBlw* A* (DB As?)?;
|
|||
post_vowel_group = VPst MH? ML? As* VAbv* A* (DB As?)?;
|
||||
pwo_tone_group = PT A* DB? As?;
|
||||
|
||||
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* V* j?;
|
||||
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* SM* j?;
|
||||
syllable_tail = (H (c|IV).VS?)* (H | complex_syllable_tail);
|
||||
|
||||
consonant_syllable = (k|CS)? (c|IV|D|GB).VS? syllable_tail;
|
||||
punctuation_cluster = P V;
|
||||
consonant_syllable = (k|CS)? (c|IV|D|GB|DOTTEDCIRCLE).VS? syllable_tail;
|
||||
punctuation_cluster = P SM;
|
||||
broken_cluster = k? VS? syllable_tail;
|
||||
other = any;
|
||||
|
||||
|
|
|
@ -68,98 +68,8 @@ set_myanmar_properties (hb_glyph_info_t &info)
|
|||
{
|
||||
hb_codepoint_t u = info.codepoint;
|
||||
unsigned int type = hb_indic_get_categories (u);
|
||||
unsigned int cat = type & 0xFFu;
|
||||
|
||||
/* Myanmar
|
||||
* https://docs.microsoft.com/en-us/typography/script-development/myanmar#analyze
|
||||
*/
|
||||
if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xFE00u, 0xFE0Fu)))
|
||||
cat = M_Cat(VS);
|
||||
|
||||
switch (u)
|
||||
{
|
||||
case 0x104Eu:
|
||||
cat = M_Cat(C); /* The spec says C, IndicSyllableCategory doesn't have. */
|
||||
break;
|
||||
|
||||
case 0x002Du: case 0x00A0u: case 0x00D7u: case 0x2012u:
|
||||
case 0x2013u: case 0x2014u: case 0x2015u: case 0x2022u:
|
||||
case 0x25CCu: case 0x25FBu: case 0x25FCu: case 0x25FDu:
|
||||
case 0x25FEu:
|
||||
cat = M_Cat(GB);
|
||||
break;
|
||||
|
||||
case 0x1004u: case 0x101Bu: case 0x105Au:
|
||||
cat = M_Cat(Ra);
|
||||
break;
|
||||
|
||||
case 0x1032u: case 0x1036u:
|
||||
cat = M_Cat(A);
|
||||
break;
|
||||
|
||||
case 0x1039u:
|
||||
cat = M_Cat(H);
|
||||
break;
|
||||
|
||||
case 0x103Au:
|
||||
cat = M_Cat(As);
|
||||
break;
|
||||
|
||||
case 0x1041u: case 0x1042u: case 0x1043u: case 0x1044u:
|
||||
case 0x1045u: case 0x1046u: case 0x1047u: case 0x1048u:
|
||||
case 0x1049u: case 0x1090u: case 0x1091u: case 0x1092u:
|
||||
case 0x1093u: case 0x1094u: case 0x1095u: case 0x1096u:
|
||||
case 0x1097u: case 0x1098u: case 0x1099u:
|
||||
cat = M_Cat(D);
|
||||
break;
|
||||
|
||||
case 0x1040u:
|
||||
cat = M_Cat(D); /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
|
||||
break;
|
||||
|
||||
case 0x103Eu:
|
||||
cat = M_Cat(MH);
|
||||
break;
|
||||
|
||||
case 0x1060u:
|
||||
cat = M_Cat(ML);
|
||||
break;
|
||||
|
||||
case 0x103Cu:
|
||||
cat = M_Cat(MR);
|
||||
break;
|
||||
|
||||
case 0x103Du: case 0x1082u:
|
||||
cat = M_Cat(MW);
|
||||
break;
|
||||
|
||||
case 0x103Bu: case 0x105Eu: case 0x105Fu:
|
||||
cat = M_Cat(MY);
|
||||
break;
|
||||
|
||||
case 0x1063u: case 0x1064u: case 0x1069u: case 0x106Au:
|
||||
case 0x106Bu: case 0x106Cu: case 0x106Du: case 0xAA7Bu:
|
||||
cat = M_Cat(PT);
|
||||
break;
|
||||
|
||||
case 0x1038u: case 0x1087u: case 0x1088u: case 0x1089u:
|
||||
case 0x108Au: case 0x108Bu: case 0x108Cu: case 0x108Du:
|
||||
case 0x108Fu: case 0x109Au: case 0x109Bu: case 0x109Cu:
|
||||
cat = M_Cat(V);
|
||||
break;
|
||||
|
||||
case 0x104Au: case 0x104Bu:
|
||||
cat = M_Cat(P);
|
||||
break;
|
||||
|
||||
case 0xAA74u: case 0xAA75u: case 0xAA76u:
|
||||
/* https://github.com/harfbuzz/harfbuzz/issues/218 */
|
||||
cat = M_Cat(C);
|
||||
break;
|
||||
}
|
||||
|
||||
info.myanmar_category() = cat;
|
||||
info.myanmar_position() = 0; /* Doesn't use the existing position info. */
|
||||
info.myanmar_category() = (myanmar_category_t) (type & 0xFFu);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -365,7 +275,7 @@ reorder_myanmar (const hb_ot_shape_plan_t *plan,
|
|||
{
|
||||
hb_syllabic_insert_dotted_circles (font, buffer,
|
||||
myanmar_broken_cluster,
|
||||
M_Cat(GB));
|
||||
M_Cat(DOTTEDCIRCLE));
|
||||
|
||||
foreach_syllable (buffer, start, end)
|
||||
reorder_syllable_myanmar (plan, font->face, buffer, start, end);
|
||||
|
|
Loading…
Reference in New Issue