[Indic] Recategorize Telugu length marks

Fixes 8 more Telugu tests.  Failures at 15 (0.00154548%).
pull/1/head
Behdad Esfahbod 12 years ago
parent 70b3dc3272
commit 7afb14407e
  1. 8
      src/hb-unicode.cc
  2. 11
      src/indic.cc

@ -369,6 +369,14 @@ _hb_unicode_modified_combining_class (hb_unicode_funcs_t *ufuncs,
* Uniscribe does this. */
c = 104;
}
else if (unlikely (hb_in_range<hb_codepoint_t> (unicode, 0x0C55, 0x0C56)))
{
/* Telugu length marks.
* These are the only matras in the main Indic script range that have
* a non-zero ccc. That makes them reorder with the Halant that is
* ccc=9. Just zero them, we don't need them in our Indic shaper. */
c = 0;
}
return c;
}

@ -39,8 +39,13 @@ main (void)
unsigned int category = type & 0x0F;
unsigned int position = type >> 4;
hb_codepoint_t a, b;
if (!hb_unicode_decompose (funcs, u, &a, &b))
printf ("U+%04X %x %x\n", u, category, position);
hb_unicode_general_category_t cat = hb_unicode_general_category (funcs, u);
unsigned int ccc = hb_unicode_combining_class (funcs, u);
if (category == OT_M && ccc)
printf ("U+%04X %d\n", u, ccc);
// hb_codepoint_t a, b;
// if (!hb_unicode_decompose (funcs, u, &a, &b))
// printf ("U+%04X %x %x\n", u, category, position);
}
}

Loading…
Cancel
Save