[use] Merge IND and Rsv classes into O
diff --git a/src/gen-use-table.py b/src/gen-use-table.py index 1605a6a..57d2674 100755 --- a/src/gen-use-table.py +++ b/src/gen-use-table.py
@@ -246,9 +246,6 @@ AJT in [jt_C, jt_D, jt_L, jt_R] and UISC != Joiner or (UGC == Lo and UISC in [Avagraha, Bindu, Consonant_Final, Consonant_Medial, Consonant_Subjoined, Vowel, Vowel_Dependent])) -def is_BASE_IND(U, UISC, UGC, AJT): - return (UISC in [Consonant_Dead, Modifying_Letter] or - (UGC == Po and not U in [0x0F04, 0x0F05, 0x0F06, 0x104B, 0x104E, 0x1800, 0x1807, 0x180A, 0x1B5B, 0x1B5C, 0x1B5F, 0x2022, 0x111C8, 0x11A3F, 0x11A45, 0x11C44, 0x11C45])) def is_BASE_NUM(U, UISC, UGC, AJT): return UISC == Brahmi_Joining_Number def is_BASE_OTHER(U, UISC, UGC, AJT): @@ -291,13 +288,12 @@ def is_ZWNJ(U, UISC, UGC, AJT): return UISC == Non_Joiner def is_OTHER(U, UISC, UGC, AJT): - return (UISC in [Joiner, Other] + return ((UGC in [Cn, Po] or UISC in [Consonant_Dead, Joiner, Modifying_Letter, Other]) and not is_BASE(U, UISC, UGC, AJT) + and not is_BASE_OTHER(U, UISC, UGC, AJT) and not is_SYM(U, UISC, UGC, AJT) and not is_SYM_MOD(U, UISC, UGC, AJT) ) -def is_Reserved(U, UISC, UGC, AJT): - return UGC == 'Cn' def is_REPHA(U, UISC, UGC, AJT): return UISC in [Consonant_Preceding_Repha, Consonant_Prefixed] def is_SAKOT(U, UISC, UGC, AJT): @@ -319,7 +315,6 @@ # CGJ, VS, WJ, and ZWJ are handled in find_syllables use_mapping = { 'B': is_BASE, - 'IND': is_BASE_IND, 'N': is_BASE_NUM, 'GB': is_BASE_OTHER, 'F': is_CONS_FINAL, @@ -337,7 +332,6 @@ 'SE': is_HIEROGLYPH_SEGMENT_END, 'ZWNJ': is_ZWNJ, 'O': is_OTHER, - 'Rsv': is_Reserved, 'R': is_REPHA, 'S': is_SYM, 'Sk': is_SAKOT,
diff --git a/src/hb-ot-shape-complex-use-machine.hh b/src/hb-ot-shape-complex-use-machine.hh index 356fd10..c8d24c5 100644 --- a/src/hb-ot-shape-complex-use-machine.hh +++ b/src/hb-ot-shape-complex-use-machine.hh
@@ -70,9 +70,9 @@ }; static const char _use_syllable_machine_indicies[] = { - 1, 0, 2, 0, 3, 4, 5, 3, + 1, 0, 2, 0, 3, 4, 5, 5, 6, 7, 5, 5, 5, 5, 5, 1, - 8, 9, 5, 5, 5, 3, 10, 11, + 8, 9, 5, 5, 5, 5, 10, 11, 5, 5, 12, 13, 14, 15, 16, 17, 18, 12, 19, 20, 21, 22, 23, 24, 5, 25, 26, 27, 5, 28, 29, 30, @@ -308,7 +308,7 @@ -#line 156 "hb-ot-shape-complex-use-machine.rl" +#line 154 "hb-ot-shape-complex-use-machine.rl" #define found_syllable(syllable_type) \ @@ -322,7 +322,7 @@ static bool not_standard_default_ignorable (const hb_glyph_info_t &i) -{ return !((i.use_category() == USE_O || i.use_category() == USE_Rsv) && _hb_glyph_info_is_default_ignorable (&i)); } +{ return !(i.use_category() == USE_O && _hb_glyph_info_is_default_ignorable (&i)); } static void find_syllables_use (hb_buffer_t *buffer) @@ -359,7 +359,7 @@ act = 0; } -#line 200 "hb-ot-shape-complex-use-machine.rl" +#line 198 "hb-ot-shape-complex-use-machine.rl" unsigned int syllable_serial = 1; @@ -401,59 +401,59 @@ {te = p+1;} break; case 5: -#line 143 "hb-ot-shape-complex-use-machine.rl" +#line 141 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (independent_cluster); }} break; case 9: -#line 146 "hb-ot-shape-complex-use-machine.rl" +#line 144 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (standard_cluster); }} break; case 7: -#line 151 "hb-ot-shape-complex-use-machine.rl" +#line 149 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (broken_cluster); }} break; case 6: -#line 152 "hb-ot-shape-complex-use-machine.rl" +#line 150 "hb-ot-shape-complex-use-machine.rl" {te = p+1;{ found_syllable (non_cluster); }} break; case 10: -#line 144 "hb-ot-shape-complex-use-machine.rl" +#line 142 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (virama_terminated_cluster); }} break; case 11: -#line 145 "hb-ot-shape-complex-use-machine.rl" +#line 143 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (sakot_terminated_cluster); }} break; case 8: -#line 146 "hb-ot-shape-complex-use-machine.rl" +#line 144 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (standard_cluster); }} break; case 13: -#line 147 "hb-ot-shape-complex-use-machine.rl" +#line 145 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }} break; case 12: -#line 148 "hb-ot-shape-complex-use-machine.rl" +#line 146 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (numeral_cluster); }} break; case 14: -#line 149 "hb-ot-shape-complex-use-machine.rl" +#line 147 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (symbol_cluster); }} break; case 17: -#line 150 "hb-ot-shape-complex-use-machine.rl" +#line 148 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (hieroglyph_cluster); }} break; case 15: -#line 151 "hb-ot-shape-complex-use-machine.rl" +#line 149 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (broken_cluster); }} break; case 16: -#line 152 "hb-ot-shape-complex-use-machine.rl" +#line 150 "hb-ot-shape-complex-use-machine.rl" {te = p;p--;{ found_syllable (non_cluster); }} break; case 1: -#line 151 "hb-ot-shape-complex-use-machine.rl" +#line 149 "hb-ot-shape-complex-use-machine.rl" {{p = ((te))-1;}{ found_syllable (broken_cluster); }} break; #line 460 "hb-ot-shape-complex-use-machine.hh" @@ -481,7 +481,7 @@ } -#line 205 "hb-ot-shape-complex-use-machine.rl" +#line 203 "hb-ot-shape-complex-use-machine.rl" }
diff --git a/src/hb-ot-shape-complex-use-machine.rl b/src/hb-ot-shape-complex-use-machine.rl index b810411..da8e4a2 100644 --- a/src/hb-ot-shape-complex-use-machine.rl +++ b/src/hb-ot-shape-complex-use-machine.rl
@@ -45,7 +45,6 @@ O = 0; # OTHER B = 1; # BASE -IND = 3; # BASE_IND N = 4; # BASE_NUM GB = 5; # BASE_OTHER SUB = 11; # CONS_SUB @@ -53,7 +52,6 @@ HN = 13; # HALANT_NUM ZWNJ = 14; # Zero width non-joiner -Rsv = 17; # Reserved characters R = 18; # REPHA S = 19; # SYM CS = 43; # CONS_WITH_STACKER @@ -136,7 +134,7 @@ numeral_cluster = N numeral_cluster_tail?; symbol_cluster = (S | GB) symbol_cluster_tail?; hieroglyph_cluster = SB+ | SB* G SE* (J SE* (G SE*)?)*; -independent_cluster = (IND | O | Rsv); +independent_cluster = O; other = any; main := |* @@ -166,7 +164,7 @@ static bool not_standard_default_ignorable (const hb_glyph_info_t &i) -{ return !((i.use_category() == USE_O || i.use_category() == USE_Rsv) && _hb_glyph_info_is_default_ignorable (&i)); } +{ return !(i.use_category() == USE_O && _hb_glyph_info_is_default_ignorable (&i)); } static void find_syllables_use (hb_buffer_t *buffer)
diff --git a/src/hb-ot-shape-complex-use-table.cc b/src/hb-ot-shape-complex-use-table.cc index b550502..5b5a6b5 100644 --- a/src/hb-ot-shape-complex-use-table.cc +++ b/src/hb-ot-shape-complex-use-table.cc
@@ -46,12 +46,10 @@ #define H USE_H /* HALANT */ #define HN USE_HN /* HALANT_NUM */ #define HVM USE_HVM /* HALANT_OR_VOWEL_MODIFIER */ -#define IND USE_IND /* BASE_IND */ #define J USE_J /* HIEROGLYPH_JOINER */ #define N USE_N /* BASE_NUM */ #define O USE_O /* OTHER */ #define R USE_R /* REPHA */ -#define Rsv USE_Rsv /* Reserved */ #define S USE_S /* SYM */ #define SB USE_SB /* HIEROGLYPH_SEGMENT_BEGIN */ #define SE USE_SE /* HIEROGLYPH_SEGMENT_END */ @@ -146,7 +144,7 @@ /* 0990 */ B, O, O, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 09A0 */ B, B, B, B, B, B, B, B, B, O, B, B, B, B, B, B, /* 09B0 */ B, O, B, O, O, O, B, B, B, B, O, O, CMBlw, B, VPst, VPre, - /* 09C0 */ VPst, VBlw, VBlw, VBlw, VBlw, O, O, VPre, VPre, O, O, VPre, VPre, H, IND, O, + /* 09C0 */ VPst, VBlw, VBlw, VBlw, VBlw, O, O, VPre, VPre, O, O, VPre, VPre, H, O, O, /* 09D0 */ O, O, O, O, O, O, O, VPst, O, O, O, O, B, B, O, B, /* 09E0 */ B, B, VBlw, VBlw, O, O, B, B, B, B, B, B, B, B, B, B, /* 09F0 */ B, B, O, O, O, O, O, O, O, O, O, O, B, O, FMAbv, O, @@ -186,7 +184,7 @@ /* Tamil */ - /* 0B80 */ O, O, VMAbv, IND, O, B, B, B, B, B, B, O, O, O, B, B, + /* 0B80 */ O, O, VMAbv, O, O, B, B, B, B, B, B, O, O, O, B, B, /* 0B90 */ B, O, B, B, B, B, O, O, O, B, B, O, B, O, B, B, /* 0BA0 */ O, O, O, B, B, O, O, O, B, B, B, O, O, O, B, B, /* 0BB0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, VPst, VPst, @@ -224,9 +222,9 @@ /* 0D20 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 0D30 */ B, B, B, B, B, B, B, B, B, B, B, VAbv, VAbv, B, VPst, VPst, /* 0D40 */ VPst, VPst, VPst, VBlw, VBlw, O, VPre, VPre, VPre, O, VPre, VPre, VPre, H, R, O, - /* 0D50 */ O, O, O, O, IND, IND, IND, VPst, O, O, O, O, O, O, O, B, + /* 0D50 */ O, O, O, O, O, O, O, VPst, O, O, O, O, O, O, O, B, /* 0D60 */ B, B, VBlw, VBlw, O, O, B, B, B, B, B, B, B, B, B, B, - /* 0D70 */ O, O, O, O, O, O, O, O, O, O, IND, IND, IND, IND, IND, IND, + /* 0D70 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, /* Sinhala */ @@ -251,8 +249,8 @@ /* 0F40 */ B, B, B, B, B, B, B, B, O, B, B, B, B, B, B, B, /* 0F50 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 0F60 */ B, B, B, B, B, B, B, B, B, B, B, B, B, O, O, O, - /* 0F70 */ O, CMBlw, VBlw, VAbv, VAbv, VBlw, VAbv, VAbv, VAbv, VAbv, VBlw, VBlw, VBlw, VBlw, VMAbv, IND, - /* 0F80 */ VBlw, VAbv, VMAbv, VMAbv, VBlw, IND, VMAbv, VMAbv, B, B, B, B, B, SUB, SUB, SUB, + /* 0F70 */ O, CMBlw, VBlw, VAbv, VAbv, VBlw, VAbv, VAbv, VAbv, VAbv, VBlw, VBlw, VBlw, VBlw, VMAbv, O, + /* 0F80 */ VBlw, VAbv, VMAbv, VMAbv, VBlw, O, VMAbv, VMAbv, B, B, B, B, B, SUB, SUB, SUB, /* 0F90 */ SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, O, SUB, SUB, SUB, SUB, SUB, SUB, SUB, /* 0FA0 */ SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, /* 0FB0 */ SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, O, O, O, @@ -409,7 +407,7 @@ /* 1CD0 */ VMAbv, VMAbv, VMAbv, O, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMAbv, VMAbv, VMBlw, VMBlw, VMBlw, VMBlw, /* 1CE0 */ VMAbv, VMPst, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, O, O, O, O, VMBlw, O, O, - /* 1CF0 */ O, O, IND, IND, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, GB, O, O, O, O, O, + /* 1CF0 */ O, O, O, O, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, GB, O, O, O, O, O, #define use_offset_0x1df8u 3040 @@ -969,7 +967,7 @@ /* 16F20 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 16F30 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 16F40 */ B, B, B, B, B, B, B, B, B, B, B, O, O, O, O, CMBlw, - /* 16F50 */ IND, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, + /* 16F50 */ O, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, /* 16F60 */ VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, /* 16F70 */ VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, /* 16F80 */ VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, O, O, O, O, O, O, O, VMBlw, @@ -1167,12 +1165,10 @@ #undef H #undef HN #undef HVM -#undef IND #undef J #undef N #undef O #undef R -#undef Rsv #undef S #undef SB #undef SE
diff --git a/src/hb-ot-shape-complex-use.hh b/src/hb-ot-shape-complex-use.hh index 3410c99..788fb6b 100644 --- a/src/hb-ot-shape-complex-use.hh +++ b/src/hb-ot-shape-complex-use.hh
@@ -46,7 +46,6 @@ USE_O = 0, /* OTHER */ USE_B = 1, /* BASE */ - USE_IND = 3, /* BASE_IND */ USE_N = 4, /* BASE_NUM */ USE_GB = 5, /* BASE_OTHER */ USE_SUB = 11, /* CONS_SUB */ @@ -54,7 +53,6 @@ USE_HN = 13, /* HALANT_NUM */ USE_ZWNJ = 14, /* Zero width non-joiner */ - USE_Rsv = 17, /* Reserved characters */ USE_R = 18, /* REPHA */ USE_S = 19, /* SYM */ USE_CS = 43, /* CONS_WITH_STACKER */