[Indic] Don't let ZWNJ at the end of syllable affect base search
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 20 Jul 2012 15:04:15 +0000 (11:04 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 20 Jul 2012 15:04:15 +0000 (11:04 -0400)
Fixes a few Devanagari, half of remaining Kannada failures, quarter for
Telugu, and others slightly improved or unchanged.

src/hb-ot-shape-complex-indic.cc

index a3f20b1..ffae430 100644 (file)
@@ -530,8 +530,12 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
          base = i;
        }
        else
-         if (is_joiner (info[i]))
+       {
+         /* A ZWJ at the end of syllable, or any ZWJ/ZWNJ in other places, stop the base
+          * search (to request explicit half or halant forms. */
+         if (is_joiner (info[i]) && (i + 1 < end || info[i].indic_category() == OT_ZWJ))
            break;
+       }
       } while (i > limit);
     }
     else