Mark non-initial left matras as unsafe to break

This commit is contained in:
David Corbett 2017-11-08 13:15:27 -05:00 committed by Behdad Esfahbod
parent a615030683
commit 5a9cba9744
4 changed files with 11 additions and 5 deletions

View File

@ -1686,11 +1686,15 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
/* Apply 'init' to the Left Matra if it's a word start. */
if (info[start].indic_position () == POS_PRE_M &&
(!start ||
!(FLAG_UNSAFE (_hb_glyph_info_get_general_category (&info[start - 1])) &
FLAG_RANGE (HB_UNICODE_GENERAL_CATEGORY_FORMAT, HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))))
info[start].mask |= indic_plan->mask_array[INIT];
if (info[start].indic_position () == POS_PRE_M)
{
if (!start ||
!(FLAG_UNSAFE (_hb_glyph_info_get_general_category (&info[start - 1])) &
FLAG_RANGE (HB_UNICODE_GENERAL_CATEGORY_FORMAT, HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)))
info[start].mask |= indic_plan->mask_array[INIT];
else
buffer->unsafe_to_break (start - 1, start + 1);
}
/*

View File

@ -58,6 +58,7 @@ TESTS = \
tests/hangul-jamo.tests \
tests/hyphens.tests \
tests/indic-consonant-with-stacker.tests \
tests/indic-init.tests \
tests/indic-joiner-candrabindu.tests \
tests/indic-joiners.tests \
tests/indic-old-spec.tests \

View File

@ -0,0 +1 @@
fonts/sha1sum/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf:--no-glyph-names:U+09AC,U+09C7,U+09AC,U+09C7:[3=0+273|1=0+460|2=2+307|1=2+460]