| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2011,2012 Google, Inc. | 2 * Copyright © 2011,2012 Google, Inc. |
| 3 * | 3 * |
| 4 * This is part of HarfBuzz, a text shaping library. | 4 * This is part of HarfBuzz, a text shaping library. |
| 5 * | 5 * |
| 6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
| 7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
| 8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
| 9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
| 10 * all copies of this software. | 10 * all copies of this software. |
| (...skipping 1695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1706 | 1706 |
| 1707 static bool | 1707 static bool |
| 1708 decompose_indic (const hb_ot_shape_normalize_context_t *c, | 1708 decompose_indic (const hb_ot_shape_normalize_context_t *c, |
| 1709 hb_codepoint_t ab, | 1709 hb_codepoint_t ab, |
| 1710 hb_codepoint_t *a, | 1710 hb_codepoint_t *a, |
| 1711 hb_codepoint_t *b) | 1711 hb_codepoint_t *b) |
| 1712 { | 1712 { |
| 1713 switch (ab) | 1713 switch (ab) |
| 1714 { | 1714 { |
| 1715 /* Don't decompose these. */ | 1715 /* Don't decompose these. */ |
| 1716 case 0x0931u : return false; | 1716 case 0x0931u : return false; /* DEVANAGARI LETTER RRA */ |
| 1717 case 0x0B94u : return false; | 1717 case 0x0B94u : return false; /* TAMIL LETTER AU */ |
| 1718 | 1718 |
| 1719 | 1719 |
| 1720 /* | 1720 /* |
| 1721 * Decompose split matras that don't have Unicode decompositions. | 1721 * Decompose split matras that don't have Unicode decompositions. |
| 1722 */ | 1722 */ |
| 1723 | 1723 |
| 1724 case 0x0F77u : *a = 0x0FB2u; *b= 0x0F81u; return true; | 1724 /* Khmer */ |
| 1725 case 0x0F79u : *a = 0x0FB3u; *b= 0x0F81u; return true; | |
| 1726 case 0x17BEu : *a = 0x17C1u; *b= 0x17BEu; return true; | 1725 case 0x17BEu : *a = 0x17C1u; *b= 0x17BEu; return true; |
| 1727 case 0x17BFu : *a = 0x17C1u; *b= 0x17BFu; return true; | 1726 case 0x17BFu : *a = 0x17C1u; *b= 0x17BFu; return true; |
| 1728 case 0x17C0u : *a = 0x17C1u; *b= 0x17C0u; return true; | 1727 case 0x17C0u : *a = 0x17C1u; *b= 0x17C0u; return true; |
| 1729 case 0x17C4u : *a = 0x17C1u; *b= 0x17C4u; return true; | 1728 case 0x17C4u : *a = 0x17C1u; *b= 0x17C4u; return true; |
| 1730 case 0x17C5u : *a = 0x17C1u; *b= 0x17C5u; return true; | 1729 case 0x17C5u : *a = 0x17C1u; *b= 0x17C5u; return true; |
| 1731 case 0x1925u : *a = 0x1920u; *b= 0x1923u; return true; | 1730 |
| 1732 case 0x1926u : *a = 0x1920u; *b= 0x1924u; return true; | |
| 1733 case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true; | |
| 1734 case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true; | |
| 1735 case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true; | |
| 1736 #if 0 | 1731 #if 0 |
| 1732 /* Gujarati */ |
| 1737 /* This one has no decomposition in Unicode, but needs no decomposition eith
er. */ | 1733 /* This one has no decomposition in Unicode, but needs no decomposition eith
er. */ |
| 1738 /* case 0x0AC9u : return false; */ | 1734 /* case 0x0AC9u : return false; */ |
| 1735 |
| 1736 /* Oriya */ |
| 1739 case 0x0B57u : *a = no decomp, -> RIGHT; return true; | 1737 case 0x0B57u : *a = no decomp, -> RIGHT; return true; |
| 1740 case 0x1C29u : *a = no decomp, -> LEFT; return true; | |
| 1741 case 0xA9C0u : *a = no decomp, -> RIGHT; return true; | |
| 1742 case 0x111BuF : *a = no decomp, -> ABOVE; return true; | |
| 1743 #endif | 1738 #endif |
| 1744 } | 1739 } |
| 1745 | 1740 |
| 1746 if ((ab == 0x0DDAu || hb_in_range (ab, 0x0DDCu, 0x0DDEu))) | 1741 if ((ab == 0x0DDAu || hb_in_range (ab, 0x0DDCu, 0x0DDEu))) |
| 1747 { | 1742 { |
| 1748 /* | 1743 /* |
| 1749 * Sinhala split matras... Let the fun begin. | 1744 * Sinhala split matras... Let the fun begin. |
| 1750 * | 1745 * |
| 1751 * These four characters have Unicode decompositions. However, Uniscribe | 1746 * These four characters have Unicode decompositions. However, Uniscribe |
| 1752 * decomposes them "Khmer-style", that is, it uses the character itself to | 1747 * decomposes them "Khmer-style", that is, it uses the character itself to |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1812 collect_features_indic, | 1807 collect_features_indic, |
| 1813 override_features_indic, | 1808 override_features_indic, |
| 1814 data_create_indic, | 1809 data_create_indic, |
| 1815 data_destroy_indic, | 1810 data_destroy_indic, |
| 1816 NULL, /* preprocess_text */ | 1811 NULL, /* preprocess_text */ |
| 1817 NULL, /* postprocess_glyphs */ | 1812 NULL, /* postprocess_glyphs */ |
| 1818 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, | 1813 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
| 1819 decompose_indic, | 1814 decompose_indic, |
| 1820 compose_indic, | 1815 compose_indic, |
| 1821 setup_masks_indic, | 1816 setup_masks_indic, |
| 1817 NULL, /* disable_otl */ |
| 1822 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, | 1818 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, |
| 1823 false, /* fallback_position */ | 1819 false, /* fallback_position */ |
| 1824 }; | 1820 }; |
| OLD | NEW |