[Indic] Apply 'cjct' globally

Fixes 5 Devanagari failures, and no regressions.
This commit is contained in:
Behdad Esfahbod 2012-07-20 10:47:46 -04:00
parent 51e764de44
commit 20b68e699f
1 changed files with 9 additions and 6 deletions

View File

@ -322,7 +322,7 @@ indic_basic_features[] =
{HB_TAG('a','b','v','f'), false},
{HB_TAG('p','s','t','f'), false},
{HB_TAG('c','f','a','r'), false},
{HB_TAG('c','j','c','t'), false},
{HB_TAG('c','j','c','t'), true},
{HB_TAG('v','a','t','u'), true},
};
@ -338,7 +338,7 @@ enum {
ABVF,
PSTF,
CFAR,
CJCT,
_CJCT,
VATU
};
@ -691,15 +691,15 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
info[i].mask |= basic_mask_array[RPHF];
/* Pre-base */
mask = basic_mask_array[HALF] | basic_mask_array[CJCT];
mask = basic_mask_array[HALF];
for (unsigned int i = start; i < base; i++)
info[i].mask |= mask;
/* Base */
mask = basic_mask_array[CJCT];
mask = 0;
if (base < end)
info[base].mask |= mask;
/* Post-base */
mask = basic_mask_array[BLWF] | basic_mask_array[ABVF] | basic_mask_array[PSTF] | basic_mask_array[CJCT];
mask = basic_mask_array[BLWF] | basic_mask_array[ABVF] | basic_mask_array[PSTF];
for (unsigned int i = base + 1; i < end; i++)
info[i].mask |= mask;
}
@ -737,7 +737,10 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
do {
j--;
info[j].mask &= ~basic_mask_array[CJCT];
/* A ZWJ disables CJCT, however, it's mere presence is enough
* to disable ligation. No explicit action needed. */
/* A ZWNJ disables HALF. */
if (non_joiner)
info[j].mask &= ~basic_mask_array[HALF];