[Indic] Fix ZWJ/ZWNJ application
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 31 Jul 2011 19:57:00 +0000 (15:57 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 31 Jul 2011 19:57:00 +0000 (15:57 -0400)
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

index 4500ef7..0888cba 100644 (file)
@@ -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]));
     }
 }