[Indic] Port 'pref' logic to look into font tables

...instead of using a hardcoded list of Ra characters.
pull/1/merge
Behdad Esfahbod 12 years ago
parent f2c0f59043
commit 56be677781
  1. 7
      src/hb-ot-shape-complex-indic.cc

@ -734,9 +734,9 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
if (indic_plan->mask_array[PREF] && base + 2 < end) if (indic_plan->mask_array[PREF] && base + 2 < end)
{ {
/* Find a Halant,Ra sequence and mark it for pre-base reordering processing. */ /* Find a Halant,Ra sequence and mark it for pre-base reordering processing. */
for (unsigned int i = base + 1; i + 1 < end; i++) for (unsigned int i = base + 1; i + 1 < end; i++) {
if (is_halant_or_coeng (info[i + (indic_plan->is_old_spec ? 1 : 0)]) && hb_codepoint_t glyphs[2] = {info[i].codepoint, info[i + 1].codepoint};
info[i + (indic_plan->is_old_spec ? 0 : 1)].indic_category() == OT_Ra) if (indic_plan->pref.would_substitute (glyphs, ARRAY_LENGTH (glyphs), true, face))
{ {
info[i++].mask |= indic_plan->mask_array[PREF]; info[i++].mask |= indic_plan->mask_array[PREF];
info[i++].mask |= indic_plan->mask_array[PREF]; info[i++].mask |= indic_plan->mask_array[PREF];
@ -752,6 +752,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
break; break;
} }
}
} }
/* Apply ZWJ/ZWNJ effects */ /* Apply ZWJ/ZWNJ effects */

Loading…
Cancel
Save