From 6b37bc80843e38ca7b62500f95fd70c08af68d62 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 31 Jul 2011 15:57:00 -0400 Subject: [PATCH] [Indic] Fix ZWJ/ZWNJ application Not quite working just yet. False alarm re 10 failures. It was crashing. Ouch! Back to 48 failures. --- src/hb-ot-shape-complex-indic.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 4500ef7..0888cba 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -578,13 +578,15 @@ found_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buffer, hb_mask_t for (i = start + 1; i < end; i++) if (is_joiner (info[i])) { bool non_joiner = info[i].indic_category() == OT_ZWNJ; - unsigned int j = i - 1; + unsigned int j = i; do { - info[j].mask &= !mask_array[HALF]; - if (non_joiner) - info[j].mask &= !mask_array[CJCT]; j--; + + info[j].mask &= !mask_array[CJCT]; + if (non_joiner) + info[j].mask &= !mask_array[HALF]; + } while (j > start && !is_consonant (info[j])); } } -- 2.7.4