| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2012 Google, Inc. | 2 * Copyright © 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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 | 102 |
| 103 POS_END | 103 POS_END |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 /* Categories used in IndicSyllabicCategory.txt from UCD. */ | 106 /* Categories used in IndicSyllabicCategory.txt from UCD. */ |
| 107 enum indic_syllabic_category_t { | 107 enum indic_syllabic_category_t { |
| 108 INDIC_SYLLABIC_CATEGORY_OTHER = OT_X, | 108 INDIC_SYLLABIC_CATEGORY_OTHER = OT_X, |
| 109 | 109 |
| 110 INDIC_SYLLABIC_CATEGORY_AVAGRAHA = OT_Symbol, | 110 INDIC_SYLLABIC_CATEGORY_AVAGRAHA = OT_Symbol, |
| 111 INDIC_SYLLABIC_CATEGORY_BINDU = OT_SM, | 111 INDIC_SYLLABIC_CATEGORY_BINDU = OT_SM, |
| 112 INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER»» = OT_PLACEHOLDER, /* TOD
O */ | 112 INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER»» = OT_PLACEHOLDER, /* Don
't care. */ |
| 113 INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK = OT_A, | 113 INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK = OT_A, |
| 114 INDIC_SYLLABIC_CATEGORY_CONSONANT = OT_C, | 114 INDIC_SYLLABIC_CATEGORY_CONSONANT = OT_C, |
| 115 INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD = OT_C, | 115 INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD = OT_C, |
| 116 INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL = OT_CM, | 116 INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL = OT_CM, |
| 117 INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER = OT_C, | 117 INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER = OT_C, |
| 118 INDIC_SYLLABIC_CATEGORY_CONSONANT_KILLER = OT_M, /* U+17CD only.
*/ |
| 118 INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL = OT_CM, | 119 INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL = OT_CM, |
| 119 INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER = OT_PLACEHOLDER, | 120 INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER = OT_PLACEHOLDER, |
| 120 INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA = OT_Repha, | 121 INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA = OT_Repha, |
| 122 INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED = OT_X, /* Don't care. *
/ |
| 121 INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED = OT_CM, | 123 INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED = OT_CM, |
| 122 INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA = OT_N, | 124 INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA = OT_N, |
| 125 INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER = OT_Repha, /* TODO */ |
| 123 INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK = OT_SM, | 126 INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK = OT_SM, |
| 124 INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER» » = OT_H, /* TODO */ | 127 INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER» » = OT_Coeng, |
| 125 INDIC_SYLLABIC_CATEGORY_JOINER = OT_ZWJ, | 128 INDIC_SYLLABIC_CATEGORY_JOINER = OT_ZWJ, |
| 126 INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER = OT_X, | 129 INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER = OT_X, |
| 127 INDIC_SYLLABIC_CATEGORY_NON_JOINER = OT_ZWNJ, | 130 INDIC_SYLLABIC_CATEGORY_NON_JOINER = OT_ZWNJ, |
| 128 INDIC_SYLLABIC_CATEGORY_NUKTA = OT_N, | 131 INDIC_SYLLABIC_CATEGORY_NUKTA = OT_N, |
| 129 INDIC_SYLLABIC_CATEGORY_NUMBER = OT_PLACEHOLDER, | 132 INDIC_SYLLABIC_CATEGORY_NUMBER = OT_PLACEHOLDER, |
| 130 INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER»» » = OT_PLACEHOLDER, /* TOD
O */ | 133 INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER»» » = OT_PLACEHOLDER, /* Don
't care. */ |
| 131 INDIC_SYLLABIC_CATEGORY_PURE_KILLER» » » = OT_H, /* TODO */ | 134 INDIC_SYLLABIC_CATEGORY_PURE_KILLER» » » = OT_M, /* Is like a vow
el matra. */ |
| 132 INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER = OT_RS, | 135 INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER = OT_RS, |
| 136 INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER = OT_M, /* Misc Khmer si
gns. */ |
| 133 INDIC_SYLLABIC_CATEGORY_TONE_LETTER = OT_X, | 137 INDIC_SYLLABIC_CATEGORY_TONE_LETTER = OT_X, |
| 134 INDIC_SYLLABIC_CATEGORY_TONE_MARK = OT_N, | 138 INDIC_SYLLABIC_CATEGORY_TONE_MARK = OT_N, |
| 135 INDIC_SYLLABIC_CATEGORY_VIRAMA = OT_H, | 139 INDIC_SYLLABIC_CATEGORY_VIRAMA = OT_H, |
| 136 INDIC_SYLLABIC_CATEGORY_VISARGA = OT_SM, | 140 INDIC_SYLLABIC_CATEGORY_VISARGA = OT_SM, |
| 137 INDIC_SYLLABIC_CATEGORY_VOWEL = OT_V, | 141 INDIC_SYLLABIC_CATEGORY_VOWEL = OT_V, |
| 138 INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT = OT_M, | 142 INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT = OT_M, |
| 139 INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT = OT_V | 143 INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT = OT_V |
| 140 }; | 144 }; |
| 141 | 145 |
| 142 /* Categories used in IndicSMatraCategory.txt from UCD */ | 146 /* Categories used in IndicSMatraCategory.txt from UCD */ |
| (...skipping 12 matching lines...) Expand all Loading... |
| 155 INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, | 159 INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, |
| 156 INDIC_MATRA_CATEGORY_TOP_AND_LEFT = INDIC_MATRA_CATEGORY_T
OP, | 160 INDIC_MATRA_CATEGORY_TOP_AND_LEFT = INDIC_MATRA_CATEGORY_T
OP, |
| 157 INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, | 161 INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, |
| 158 INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, | 162 INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = INDIC_MATRA_CATEGORY_R
IGHT, |
| 159 | 163 |
| 160 INDIC_MATRA_CATEGORY_OVERSTRUCK = POS_AFTER_MAIN, | 164 INDIC_MATRA_CATEGORY_OVERSTRUCK = POS_AFTER_MAIN, |
| 161 INDIC_MATRA_CATEGORY_VISUAL_ORDER_LEFT = POS_PRE_M | 165 INDIC_MATRA_CATEGORY_VISUAL_ORDER_LEFT = POS_PRE_M |
| 162 }; | 166 }; |
| 163 | 167 |
| 164 #define INDIC_COMBINE_CATEGORIES(S,M) \ | 168 #define INDIC_COMBINE_CATEGORIES(S,M) \ |
| 165 (ASSERT_STATIC_EXPR_ZERO (M == INDIC_MATRA_CATEGORY_NOT_APPLICABLE || \ | 169 ( \ |
| 166 » » » ( \ | 170 ASSERT_STATIC_EXPR_ZERO (S < 255 && M < 255) + \ |
| 167 » » » S == INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL || \ | 171 ( S | \ |
| 168 » » » S == INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK || \ | 172 ( \ |
| 169 » » » S == INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER || \ | 173 ( \ |
| 170 » » » S == INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_R
EPHA || \ | 174 S == INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL || \ |
| 171 » » » S == INDIC_SYLLABIC_CATEGORY_VIRAMA || \ | 175 S == INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK || \ |
| 172 » » » S == INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT || \ | 176 S == INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER || \ |
| 173 » » » false)) + \ | 177 S == INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA || \ |
| 174 ASSERT_STATIC_EXPR_ZERO (S < 255 && M < 255) + \ | 178 S == INDIC_SYLLABIC_CATEGORY_VIRAMA || \ |
| 175 ((M << 8) | S)) | 179 S == INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT || \ |
| 180 false \ |
| 181 ? M : INDIC_MATRA_CATEGORY_NOT_APPLICABLE \ |
| 182 ) << 8 \ |
| 183 ) \ |
| 184 ) \ |
| 185 ) |
| 176 | 186 |
| 177 HB_INTERNAL INDIC_TABLE_ELEMENT_TYPE | 187 HB_INTERNAL INDIC_TABLE_ELEMENT_TYPE |
| 178 hb_indic_get_categories (hb_codepoint_t u); | 188 hb_indic_get_categories (hb_codepoint_t u); |
| 179 | 189 |
| 180 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_PRIVATE_HH */ | 190 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_PRIVATE_HH */ |
| OLD | NEW |