[indic] Rename avagraha cluster to symbol cluster

In anticipation of adding more characters to that class of clusters.
pull/43/merge
Behdad Esfahbod 11 years ago
parent a498565ced
commit 9f9bd9bf31
  1. 10
      src/hb-ot-shape-complex-indic-machine.rl
  2. 4
      src/hb-ot-shape-complex-indic-private.hh
  3. 14
      src/hb-ot-shape-complex-indic.cc

@ -56,7 +56,7 @@ Coeng = 14;
Repha = 15; Repha = 15;
Ra = 16; Ra = 16;
CM = 17; CM = 17;
Avag = 18; Symbol= 18;
CM2 = 31; CM2 = 31;
c = (C | Ra); # is_consonant c = (C | Ra); # is_consonant
@ -67,10 +67,10 @@ reph = (Ra H | Repha); # possible reph
cn = c.ZWJ?.n?; cn = c.ZWJ?.n?;
forced_rakar = ZWJ H ZWJ Ra; forced_rakar = ZWJ H ZWJ Ra;
avagraha = Avag.N?; symbol = Symbol.N?;
matra_group = z{0,3}.M.N?.(H | forced_rakar)?; matra_group = z{0,3}.M.N?.(H | forced_rakar)?;
syllable_tail2 = (SM.SM?.ZWNJ?)? A{0,3}? VD{0,2}; syllable_tail2 = (SM.SM?.ZWNJ?)? A{0,3}? VD{0,2};
syllable_tail = (Coeng (cn|V))? avagraha? syllable_tail2; syllable_tail = (Coeng (cn|V))? symbol? syllable_tail2;
place_holder = NBSP | DOTTEDCIRCLE; place_holder = NBSP | DOTTEDCIRCLE;
halant_group = (z?.h.(ZWJ.N?)?); halant_group = (z?.h.(ZWJ.N?)?);
final_halant_group = halant_group | h.ZWNJ; final_halant_group = halant_group | h.ZWNJ;
@ -81,7 +81,7 @@ halant_or_matra_group = (final_halant_group | (h.ZWJ)? matra_group{0,4});
consonant_syllable = Repha? (cn.halant_group){0,4} cn medial_group halant_or_matra_group syllable_tail; consonant_syllable = Repha? (cn.halant_group){0,4} cn medial_group halant_or_matra_group syllable_tail;
vowel_syllable = reph? V.n? (ZWJ | (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail); vowel_syllable = reph? V.n? (ZWJ | (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail);
standalone_cluster = reph? place_holder.n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail; standalone_cluster = reph? place_holder.n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail;
avagraha_cluster = avagraha syllable_tail2; symbol_cluster = symbol syllable_tail2;
broken_cluster = reph? n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail; broken_cluster = reph? n? (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail;
other = any; other = any;
@ -89,7 +89,7 @@ main := |*
consonant_syllable => { found_syllable (consonant_syllable); }; consonant_syllable => { found_syllable (consonant_syllable); };
vowel_syllable => { found_syllable (vowel_syllable); }; vowel_syllable => { found_syllable (vowel_syllable); };
standalone_cluster => { found_syllable (standalone_cluster); }; standalone_cluster => { found_syllable (standalone_cluster); };
avagraha_cluster => { found_syllable (avagraha_cluster); }; symbol_cluster => { found_syllable (symbol_cluster); };
broken_cluster => { found_syllable (broken_cluster); }; broken_cluster => { found_syllable (broken_cluster); };
other => { found_syllable (non_indic_cluster); }; other => { found_syllable (non_indic_cluster); };
*|; *|;

@ -60,7 +60,7 @@ enum indic_category_t {
OT_Repha = 15, /* Atomically-encoded logical or visual repha. */ OT_Repha = 15, /* Atomically-encoded logical or visual repha. */
OT_Ra = 16, OT_Ra = 16,
OT_CM = 17, /* Consonant-Medial. */ OT_CM = 17, /* Consonant-Medial. */
OT_Avag = 18, /* Avagraha. */ OT_Symbol = 18, /* Avagraha, etc that take marks (SM,A,VD). */
OT_CM2 = 31 /* Consonant-Medial, second slot. */ OT_CM2 = 31 /* Consonant-Medial, second slot. */
}; };
@ -95,7 +95,7 @@ enum indic_position_t {
enum indic_syllabic_category_t { enum indic_syllabic_category_t {
INDIC_SYLLABIC_CATEGORY_OTHER = OT_X, INDIC_SYLLABIC_CATEGORY_OTHER = OT_X,
INDIC_SYLLABIC_CATEGORY_AVAGRAHA = OT_Avag, INDIC_SYLLABIC_CATEGORY_AVAGRAHA = OT_Symbol,
INDIC_SYLLABIC_CATEGORY_BINDU = OT_SM, INDIC_SYLLABIC_CATEGORY_BINDU = OT_SM,
INDIC_SYLLABIC_CATEGORY_CONSONANT = OT_C, INDIC_SYLLABIC_CATEGORY_CONSONANT = OT_C,
INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD = OT_C, INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD = OT_C,

@ -271,7 +271,7 @@ set_indic_properties (hb_glyph_info_t &info)
{ {
pos = matra_position (u, pos); pos = matra_position (u, pos);
} }
else if ((FLAG (cat) & (FLAG (OT_SM) | FLAG (OT_VD) | FLAG (OT_A) | FLAG (OT_Avag)))) else if ((FLAG (cat) & (FLAG (OT_SM) | FLAG (OT_VD) | FLAG (OT_A) | FLAG (OT_Symbol))))
{ {
pos = POS_SMVD; pos = POS_SMVD;
} }
@ -639,7 +639,7 @@ enum syllable_type_t {
consonant_syllable, consonant_syllable,
vowel_syllable, vowel_syllable,
standalone_cluster, standalone_cluster,
avagraha_cluster, symbol_cluster,
broken_cluster, broken_cluster,
non_indic_cluster, non_indic_cluster,
}; };
@ -1207,10 +1207,10 @@ initial_reordering_broken_cluster (const hb_ot_shape_plan_t *plan,
} }
static void static void
initial_reordering_avagraha_cluster (const hb_ot_shape_plan_t *plan HB_UNUSED, initial_reordering_symbol_cluster (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_face_t *face HB_UNUSED, hb_face_t *face HB_UNUSED,
hb_buffer_t *buffer HB_UNUSED, hb_buffer_t *buffer HB_UNUSED,
unsigned int start HB_UNUSED, unsigned int end HB_UNUSED) unsigned int start HB_UNUSED, unsigned int end HB_UNUSED)
{ {
/* Nothing to do right now. If we ever switch to using the output /* Nothing to do right now. If we ever switch to using the output
* buffer in the reordering process, we'd need to next_glyph() here. */ * buffer in the reordering process, we'd need to next_glyph() here. */
@ -1238,7 +1238,7 @@ initial_reordering_syllable (const hb_ot_shape_plan_t *plan,
case consonant_syllable: initial_reordering_consonant_syllable (plan, face, buffer, start, end); return; case consonant_syllable: initial_reordering_consonant_syllable (plan, face, buffer, start, end); return;
case vowel_syllable: initial_reordering_vowel_syllable (plan, face, buffer, start, end); return; case vowel_syllable: initial_reordering_vowel_syllable (plan, face, buffer, start, end); return;
case standalone_cluster: initial_reordering_standalone_cluster (plan, face, buffer, start, end); return; case standalone_cluster: initial_reordering_standalone_cluster (plan, face, buffer, start, end); return;
case avagraha_cluster: initial_reordering_avagraha_cluster (plan, face, buffer, start, end); return; case symbol_cluster: initial_reordering_symbol_cluster (plan, face, buffer, start, end); return;
case broken_cluster: initial_reordering_broken_cluster (plan, face, buffer, start, end); return; case broken_cluster: initial_reordering_broken_cluster (plan, face, buffer, start, end); return;
case non_indic_cluster: initial_reordering_non_indic_cluster (plan, face, buffer, start, end); return; case non_indic_cluster: initial_reordering_non_indic_cluster (plan, face, buffer, start, end); return;
} }

Loading…
Cancel
Save