Minor matra renumbering

Should have no visible effect.
This commit is contained in:
Behdad Esfahbod 2012-04-19 22:28:25 -04:00
parent 36608941f3
commit a06411ecf9
1 changed files with 17 additions and 13 deletions

View File

@ -58,10 +58,10 @@ enum indic_category_t {
/* Visual positions in a syllable from left to right. */ /* Visual positions in a syllable from left to right. */
enum indic_position_t { enum indic_position_t {
POS_PRE = 1, POS_PRE = 1,
POS_BASE = 3, POS_BASE = 2,
POS_ABOVE = 5, POS_ABOVE = 3,
POS_BELOW = 7, POS_BELOW = 4,
POS_POST = 9 POS_POST = 5
}; };
/* Categories used in IndicSyllabicCategory.txt from UCD */ /* Categories used in IndicSyllabicCategory.txt from UCD */
@ -104,14 +104,18 @@ enum indic_matra_category_t {
* in the generic pre-shaping layer. They will only be used if * in the generic pre-shaping layer. They will only be used if
* the font does not cover the decomposition. In which case, we * the font does not cover the decomposition. In which case, we
* define these as aliases to the place we want the split-matra * define these as aliases to the place we want the split-matra
* glyph to show up. Quite arbitrary. */ * glyph to show up. Quite arbitrary.
INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT = INDIC_MATRA_CATEGORY_BOTTOM, *
INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT = INDIC_MATRA_CATEGORY_LEFT, * TODO: There are some split matras without Unicode decompositions.
INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM = INDIC_MATRA_CATEGORY_BOTTOM, * We have to figure out what to do with them.
INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = INDIC_MATRA_CATEGORY_BOTTOM, */
INDIC_MATRA_CATEGORY_TOP_AND_LEFT = INDIC_MATRA_CATEGORY_LEFT, INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT = 8 | INDIC_MATRA_CATEGORY_BOTTOM,
INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = INDIC_MATRA_CATEGORY_LEFT, INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT = 8 | INDIC_MATRA_CATEGORY_LEFT,
INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = INDIC_MATRA_CATEGORY_RIGHT, INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM = 8 | INDIC_MATRA_CATEGORY_BOTTOM,
INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = 8 | INDIC_MATRA_CATEGORY_BOTTOM,
INDIC_MATRA_CATEGORY_TOP_AND_LEFT = 8 | INDIC_MATRA_CATEGORY_LEFT,
INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = 8 | INDIC_MATRA_CATEGORY_LEFT,
INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = 8 | INDIC_MATRA_CATEGORY_RIGHT,
INDIC_MATRA_CATEGORY_INVISIBLE = INDIC_MATRA_CATEGORY_NOT_APPLICABLE, INDIC_MATRA_CATEGORY_INVISIBLE = INDIC_MATRA_CATEGORY_NOT_APPLICABLE,
INDIC_MATRA_CATEGORY_OVERSTRUCK = INDIC_MATRA_CATEGORY_NOT_APPLICABLE, INDIC_MATRA_CATEGORY_OVERSTRUCK = INDIC_MATRA_CATEGORY_NOT_APPLICABLE,
@ -392,7 +396,7 @@ _hb_ot_shape_complex_setup_masks_indic (hb_ot_map_t *map, hb_buffer_t *buffer, h
unsigned int type = get_indic_categories (buffer->info[i].codepoint); unsigned int type = get_indic_categories (buffer->info[i].codepoint);
buffer->info[i].indic_category() = type & 0x0F; buffer->info[i].indic_category() = type & 0x0F;
buffer->info[i].indic_position() = type >> 4; buffer->info[i].indic_position() = (type >> 4) & 7;
if (buffer->info[i].indic_category() == OT_C) { if (buffer->info[i].indic_category() == OT_C) {
buffer->info[i].indic_position() = consonant_position (buffer->info[i].codepoint); buffer->info[i].indic_position() = consonant_position (buffer->info[i].codepoint);