From 1555b3008197b77d142587322c0aec3fa83bc99f Mon Sep 17 00:00:00 2001 From: David Corbett Date: Fri, 24 Jun 2022 21:02:26 -0400 Subject: [PATCH] Add U+25CC to lone Robatic but not after U+17D9 --- src/gen-indic-table.py | 2 + src/hb-ot-shaper-indic-table.cc | 6 +- src/hb-ot-shaper-khmer-machine.hh | 266 ++++++++++-------- src/hb-ot-shaper-khmer-machine.rl | 2 +- ...6d83239e8f958391ff6cdd8fda9376a4bd3673.ttf | Bin 0 -> 1076 bytes .../data/in-house/tests/khmer-misc.tests | 2 + 6 files changed, 149 insertions(+), 129 deletions(-) create mode 100644 test/shape/data/in-house/fonts/086d83239e8f958391ff6cdd8fda9376a4bd3673.ttf diff --git a/src/gen-indic-table.py b/src/gen-indic-table.py index 40e6d4f73..f32f97106 100755 --- a/src/gen-indic-table.py +++ b/src/gen-indic-table.py @@ -320,6 +320,8 @@ category_overrides = { 0x17DD: 'Ygroup', 0x17D3: 'Ygroup', # Just guessing. Uniscribe doesn't categorize it. + 0x17D9: 'PLACEHOLDER', # https://github.com/harfbuzz/harfbuzz/issues/2384 + # Myanmar diff --git a/src/hb-ot-shaper-indic-table.cc b/src/hb-ot-shaper-indic-table.cc index 582c5c542..6734e7f89 100644 --- a/src/hb-ot-shaper-indic-table.cc +++ b/src/hb-ot-shaper-indic-table.cc @@ -87,7 +87,7 @@ static_assert (OT_VPst == M_Cat(VPst), ""); #define _OT_MW OT_MW /* 2 chars; MW */ #define _OT_MY OT_MY /* 3 chars; MY */ #define _OT_N OT_N /* 17 chars; N */ -#define _OT_GB OT_PLACEHOLDER /* 174 chars; PLACEHOLDER */ +#define _OT_GB OT_PLACEHOLDER /* 175 chars; PLACEHOLDER */ #define _OT_PT OT_PT /* 8 chars; PT */ #define _OT_R OT_Ra /* 15 chars; Ra */ #define _OT_Rf OT_Repha /* 1 chars; Repha */ @@ -110,7 +110,7 @@ static_assert (OT_VPst == M_Cat(VPst), ""); #define _POS_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */ #define _POS_AP POS_AFTER_POST /* 50 chars; AFTER_POST */ #define _POS_AS POS_AFTER_SUB /* 60 chars; AFTER_SUB */ -#define _POS_C POS_BASE_C /* 901 chars; BASE_C */ +#define _POS_C POS_BASE_C /* 902 chars; BASE_C */ #define _POS_BS POS_BEFORE_SUB /* 31 chars; BEFORE_SUB */ #define _POS_B POS_BELOW_C /* 13 chars; BELOW_C */ #define _POS_X POS_END /* 71 chars; END */ @@ -383,7 +383,7 @@ static const uint16_t indic_table[] = { /* 17C0 */ _(VR,R), _(VL,L), _(VL,L), _(VL,L), _(VR,R), _(VR,R), _(Xg,X), _(Yg,X), /* 17C8 */ _(Yg,X), _(Rt,X), _(Rt,X), _(Xg,X), _(Rt,X), _(Xg,X), _(Xg,X), _(Xg,X), /* 17D0 */ _(Xg,X), _(Xg,X), _(H,X), _(Yg,X), _(X,X), _(X,X), _(X,X), _(X,X), - /* 17D8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(S,SM), _(Yg,X), _(X,X), _(X,X), + /* 17D8 */ _(X,X), _(GB,C), _(X,X), _(X,X), _(S,SM), _(Yg,X), _(X,X), _(X,X), /* 17E0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), /* 17E8 */ _(GB,C), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), diff --git a/src/hb-ot-shaper-khmer-machine.hh b/src/hb-ot-shaper-khmer-machine.hh index 43594c2c6..e18bd75ef 100644 --- a/src/hb-ot-shaper-khmer-machine.hh +++ b/src/hb-ot-shaper-khmer-machine.hh @@ -69,27 +69,29 @@ enum khmer_syllable_type_t { #line 70 "hb-ot-shaper-khmer-machine.hh" static const unsigned char _khmer_syllable_machine_trans_keys[] = { 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, - 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, - 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 27u, 4u, 27u, 1u, 15u, 4u, 27u, - 27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 1u, 15u, 4u, 27u, - 4u, 27u, 27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 5u, 26u, - 0 + 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, + 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 27u, 4u, 27u, 1u, 15u, + 4u, 27u, 4u, 27u, 27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, + 4u, 27u, 1u, 15u, 4u, 27u, 4u, 27u, 27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, + 4u, 27u, 4u, 27u, 5u, 26u, 0 }; static const char _khmer_syllable_machine_key_spans[] = { 22, 22, 15, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 15, 22, 22, 22, - 22, 22, 22, 22, 27, 24, 15, 24, - 1, 24, 24, 24, 24, 24, 15, 24, - 24, 1, 24, 24, 24, 24, 24, 22 + 22, 22, 22, 22, 22, 15, 22, 22, + 22, 22, 22, 22, 22, 27, 24, 15, + 24, 24, 1, 24, 24, 24, 24, 24, + 24, 15, 24, 24, 1, 24, 24, 24, + 24, 24, 22 }; static const short _khmer_syllable_machine_index_offsets[] = { 0, 23, 46, 62, 85, 108, 131, 154, - 177, 200, 223, 246, 269, 285, 308, 331, - 354, 377, 400, 423, 446, 474, 499, 515, - 540, 542, 567, 592, 617, 642, 667, 683, - 708, 733, 735, 760, 785, 810, 835, 860 + 177, 200, 223, 246, 269, 292, 308, 331, + 354, 377, 400, 423, 446, 469, 497, 522, + 538, 563, 588, 590, 615, 640, 665, 690, + 715, 740, 756, 781, 806, 808, 833, 858, + 883, 908, 933 }; static const char _khmer_syllable_machine_indicies[] = { @@ -120,139 +122,153 @@ static const char _khmer_syllable_machine_indicies[] = { 2, 0, 0, 0, 0, 0, 12, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 14, - 14, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 15, 13, - 13, 13, 13, 16, 17, 13, 14, 14, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 17, 18, 19, 19, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 19, 13, 14, 14, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 15, 13, 13, 13, - 13, 13, 17, 13, 20, 20, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 15, 13, 21, 21, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 22, 13, 23, 23, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 15, 13, 13, 13, 13, 13, 24, - 13, 23, 23, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 24, 13, - 25, 25, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 15, - 13, 13, 13, 13, 13, 26, 13, 25, - 25, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 26, 13, 28, 28, - 27, 29, 30, 30, 27, 27, 27, 3, - 3, 27, 27, 27, 28, 27, 27, 27, - 27, 15, 24, 26, 22, 27, 27, 17, - 19, 27, 32, 33, 33, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 2, 10, 12, 8, 31, 3, - 4, 5, 31, 28, 28, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 28, 31, 34, 35, 35, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 2, 10, 12, 8, 31, - 31, 4, 5, 31, 5, 31, 34, 6, - 6, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 8, 31, 31, 2, 5, 31, 34, - 7, 7, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 8, 5, 31, - 34, 36, 36, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 2, 31, 31, 8, 31, 31, 10, 5, - 31, 34, 37, 37, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 2, 10, 31, 8, 31, 31, 12, - 5, 31, 32, 35, 35, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 2, 10, 12, 8, 31, 31, - 4, 5, 31, 39, 39, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 39, 38, 29, 40, 40, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 15, 24, 26, 22, 38, - 16, 17, 19, 38, 41, 42, 42, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 15, 24, 26, 22, - 38, 38, 17, 19, 38, 19, 38, 41, - 20, 20, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 22, 38, 38, 15, 19, 38, - 41, 21, 21, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 22, 19, - 38, 41, 43, 43, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 15, 38, 38, 22, 38, 38, 24, - 19, 38, 41, 44, 44, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 15, 24, 38, 22, 38, 38, - 26, 19, 38, 29, 42, 42, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 15, 24, 26, 22, 38, - 38, 17, 19, 38, 14, 14, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 15, 45, 45, 45, 45, - 45, 17, 45, 0 + 0, 0, 0, 0, 0, 12, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 13, 4, 0, 15, 15, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 16, 14, 14, + 14, 14, 17, 18, 14, 15, 15, 19, + 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 18, 19, 20, 20, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 20, 14, 15, 15, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 16, 14, 14, 14, 14, + 14, 18, 14, 21, 21, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 16, 14, 22, 22, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 23, + 14, 24, 24, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 16, 14, 14, 14, 14, 14, 25, 14, + 24, 24, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 25, 14, 26, + 26, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 16, 14, + 14, 14, 14, 14, 27, 14, 26, 26, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 27, 14, 29, 29, 28, + 30, 31, 31, 28, 28, 28, 13, 13, + 28, 28, 28, 29, 28, 28, 28, 28, + 16, 25, 27, 23, 28, 17, 18, 20, + 28, 33, 34, 34, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 2, 10, 12, 8, 32, 13, 4, + 5, 32, 35, 35, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 35, 32, 33, 36, 36, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 10, 12, 8, 32, 3, + 4, 5, 32, 37, 38, 38, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 10, 12, 8, 32, + 32, 4, 5, 32, 5, 32, 37, 6, + 6, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 8, 32, 32, 2, 5, 32, 37, + 7, 7, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 8, 5, 32, + 37, 39, 39, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 2, 32, 32, 8, 32, 32, 10, 5, + 32, 37, 40, 40, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 2, 10, 32, 8, 32, 32, 12, + 5, 32, 33, 38, 38, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 2, 10, 12, 8, 32, 32, + 4, 5, 32, 33, 38, 38, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 2, 10, 12, 8, 32, + 3, 4, 5, 32, 42, 42, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 42, 41, 30, 43, 43, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 16, 25, 27, 23, + 41, 17, 18, 20, 41, 44, 45, 45, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 16, 25, 27, + 23, 41, 41, 18, 20, 41, 20, 41, + 44, 21, 21, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 23, 41, 41, 16, 20, + 41, 44, 22, 22, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 23, + 20, 41, 44, 46, 46, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 16, 41, 41, 23, 41, 41, + 25, 20, 41, 44, 47, 47, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 16, 25, 41, 23, 41, + 41, 27, 20, 41, 30, 45, 45, 41, + 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 16, 25, 27, 23, + 41, 41, 18, 20, 41, 15, 15, 48, + 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 16, 48, 48, 48, + 48, 48, 18, 48, 0 }; static const char _khmer_syllable_machine_trans_targs[] = { - 20, 1, 25, 29, 23, 24, 4, 5, - 26, 7, 27, 9, 28, 20, 11, 34, - 38, 32, 20, 33, 14, 15, 35, 17, - 36, 19, 37, 20, 21, 30, 39, 20, - 22, 0, 2, 3, 6, 8, 20, 31, - 10, 12, 13, 16, 18, 20 + 21, 1, 27, 31, 25, 26, 4, 5, + 28, 7, 29, 9, 30, 32, 21, 12, + 37, 41, 35, 21, 36, 15, 16, 38, + 18, 39, 20, 40, 21, 22, 33, 42, + 21, 23, 10, 24, 0, 2, 3, 6, + 8, 21, 34, 11, 13, 14, 17, 19, + 21 }; static const char _khmer_syllable_machine_trans_actions[] = { 1, 0, 2, 2, 2, 0, 0, 0, - 2, 0, 2, 0, 2, 3, 0, 2, - 4, 4, 5, 0, 0, 0, 2, 0, - 2, 0, 2, 8, 2, 0, 9, 10, - 0, 0, 0, 0, 0, 0, 11, 4, - 0, 0, 0, 0, 0, 12 + 2, 0, 2, 0, 2, 2, 3, 0, + 2, 4, 4, 5, 0, 0, 0, 2, + 0, 2, 0, 2, 8, 2, 0, 9, + 10, 0, 0, 2, 0, 0, 0, 0, + 0, 11, 4, 0, 0, 0, 0, 0, + 12 }; static const char _khmer_syllable_machine_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 }; static const char _khmer_syllable_machine_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 }; -static const unsigned char _khmer_syllable_machine_eof_trans[] = { +static const short _khmer_syllable_machine_eof_trans[] = { 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 14, 19, 14, 14, 14, 14, - 14, 14, 14, 14, 0, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 46 + 1, 1, 1, 15, 20, 15, 15, 15, + 15, 15, 15, 15, 15, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, + 33, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 49 }; -static const int khmer_syllable_machine_start = 20; -static const int khmer_syllable_machine_first_final = 20; +static const int khmer_syllable_machine_start = 21; +static const int khmer_syllable_machine_first_final = 21; static const int khmer_syllable_machine_error = -1; -static const int khmer_syllable_machine_en_main = 20; +static const int khmer_syllable_machine_en_main = 21; #line 53 "hb-ot-shaper-khmer-machine.rl" @@ -278,7 +294,7 @@ find_syllables_khmer (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 282 "hb-ot-shaper-khmer-machine.hh" +#line 298 "hb-ot-shaper-khmer-machine.hh" { cs = khmer_syllable_machine_start; ts = 0; @@ -294,7 +310,7 @@ find_syllables_khmer (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 298 "hb-ot-shaper-khmer-machine.hh" +#line 314 "hb-ot-shaper-khmer-machine.hh" { int _slen; int _trans; @@ -308,7 +324,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 312 "hb-ot-shaper-khmer-machine.hh" +#line 328 "hb-ot-shaper-khmer-machine.hh" } _keys = _khmer_syllable_machine_trans_keys + (cs<<1); @@ -378,7 +394,7 @@ _eof_trans: #line 98 "hb-ot-shaper-khmer-machine.rl" {act = 3;} break; -#line 382 "hb-ot-shaper-khmer-machine.hh" +#line 398 "hb-ot-shaper-khmer-machine.hh" } _again: @@ -387,7 +403,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 391 "hb-ot-shaper-khmer-machine.hh" +#line 407 "hb-ot-shaper-khmer-machine.hh" } if ( ++p != pe ) diff --git a/src/hb-ot-shaper-khmer-machine.rl b/src/hb-ot-shaper-khmer-machine.rl index 2018be58c..f180471bb 100644 --- a/src/hb-ot-shaper-khmer-machine.rl +++ b/src/hb-ot-shaper-khmer-machine.rl @@ -88,7 +88,7 @@ matra_group = VPre? xgroup VBlw? xgroup (joiner?.VAbv)? xgroup VPst?; syllable_tail = xgroup matra_group xgroup (H.c)? ygroup; -broken_cluster = (H.cn)* (H | syllable_tail); +broken_cluster = Robatic? (H.cn)* (H | syllable_tail); consonant_syllable = (cn|PLACEHOLDER|DOTTEDCIRCLE) broken_cluster; other = any; diff --git a/test/shape/data/in-house/fonts/086d83239e8f958391ff6cdd8fda9376a4bd3673.ttf b/test/shape/data/in-house/fonts/086d83239e8f958391ff6cdd8fda9376a4bd3673.ttf new file mode 100644 index 0000000000000000000000000000000000000000..134e7dd4176a5d5075bfa58f0115a5a735cc1024 GIT binary patch literal 1076 zcmY*WUuaWT9RAL|H~q7@xJmEoLkxE{f@MtGJFIp%5N?}?y;M5qhA=etW=&>pk|y_N z)~CV7)VZzO9>xY064RooZ^3~N6Z+tTf-jSSC`I;I7=t}HZpuxUedjig?jC;U_x--} zoiD%N$<&DxQ|QO1Q1P;rOd2nUTXjIW2Z)cS-aTl3ee4U3*adKA#z_?i|9rc{dW7{v zCY`eP=*icJTa2*`3ALj9K>Qmck#XGf+UKPU?IS+HpcGGJ5hUC;ig*!yf&l z{#mh5c00FW65nDN0JZYhpRvMbTUo$3q?;;hp!0L6-72>4f)lJ!bxK*-Y!h1`^S@6G z8M1rd&wqD%=h46MqPi{>PuJjVW$_p9s)|J?pbv^MDb1+t9-}ZU94@>M99in zrB6@DpF|oZl#xXNc{VnR1DxGJGOXP&moQ6}fwvgb-E8uIdjn$(lX{bDnwnX7$RS0? zX;^e9VxBllJ_DCG_hSab%+K!_n4r2sg-ur8DB&!9T(|<71|ftpEq5~}E+Qr_i5T8g z7-~#>uC;&sruAr}7}>*_KHDkxi?75WOOf7%h!9%hb#r|5z=%~S&X=;Y8Q0i9Gi;b6 zrfE#1Dp}jG3Z=7Y*Y)z*(Zkkwm?mU04_Ovn#AOAV5W5e)_o#L0&a16NtIUW>Ou5ZKiV6tUe<#hkNq9J(YyXndNAbo2Yr5mtKaYQhy0;{IY@Ak z4~F8=)`)*vcUH>H=1RTM$klB-S9ap7{)f7KEqCL_wUuVmUCHO&oE;Cwf`|ItRj*dN zT3cS8uX*0QHy00%{-Ku^E7j^^b!q8BwNklIDaFVAq<*eG*J#w2Z{92~J5G7-T->+) ZU3#fjxqiJysaGu&JW8V*dk3!Qz`ykq0SEv9 literal 0 HcmV?d00001 diff --git a/test/shape/data/in-house/tests/khmer-misc.tests b/test/shape/data/in-house/tests/khmer-misc.tests index dff4fc115..4a7a580c8 100644 --- a/test/shape/data/in-house/tests/khmer-misc.tests +++ b/test/shape/data/in-house/tests/khmer-misc.tests @@ -88,3 +88,5 @@ ../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf;;U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+1784,U+17D2,U+1780;[uni17D2179A=0+287|uni17A0=0+928|uni17D2179C=0@20,-26+0|uni1784=5+635|uni17D21780=5@0,-26+0] ../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf;;U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+17B6,U+17C6,U+1784;[uni17D2179A=0+287|uni17A017B6=0+1216|uni17D2179C=0@-268,-26+0|uni17C6=0@47,-29+0|uni1784=7+635] ../fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf;;U+17D2,U+17D2;[uni25CC=0+635|uni17D2=0+0|uni25CC=0+635|uni17D2=0+0] +../fonts/086d83239e8f958391ff6cdd8fda9376a4bd3673.ttf;;U+17C9;[uni25CC=0+655|uni17C9=0+0] +../fonts/086d83239e8f958391ff6cdd8fda9376a4bd3673.ttf;;U+17D9,U+17C9;[uni17D9=0+655|uni17C9=0+0]