[indic] Support more extended Devanagari tone marks

Also adjust U+0953,0954 handling.
This commit is contained in:
Behdad Esfahbod 2014-05-22 18:41:49 -04:00
parent 26c836e53d
commit c11fc68339
1 changed files with 12 additions and 6 deletions

View File

@ -188,18 +188,24 @@ set_indic_properties (hb_glyph_info_t &info)
/* The spec says U+0952 is OT_A. However, testing shows that Uniscribe
* treats U+0951..U+0954 all behave similarly.
* TESTS:
* treats a whole bunch of characters similarly.
* TESTS: For example, for U+0951:
* U+092E,U+0947,U+0952
* U+092E,U+0952,U+0947
* U+092E,U+0947,U+0951
* U+092E,U+0951,U+0947
* U+092E,U+0951,U+0952
* U+092E,U+0952,U+0951
*/
if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x0951, 0x0954)))
cat = OT_A;
/* Same for the following... */
if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xA8E0, 0xA8F1)))
if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0x0951, 0x0952,
0xA8E0, 0xA8F1) &&
hb_in_ranges<hb_codepoint_t> (u, 0x1CD0, 0x1CD2,
0x1CD4, 0x1CE0,
0x1CF4, 0x1CF4)))
cat = OT_A;
/* The following act more like the Bindus. */
else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x0953, 0x0954)))
cat = OT_SM;
if (unlikely (u == 0x17D1))
cat = OT_X;