提交 b5584ee4 编写于 作者: B Behdad Esfahbod

[Indic] For old-spec, match non-zero context

Fixes consonant-position with old-spec Malayalam.  Uniscribe seem to be
doing this.  Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf.
Doesn't regress new-spec or other scripts.
上级 d9b204d3
...@@ -254,10 +254,11 @@ struct would_substitute_feature_t ...@@ -254,10 +254,11 @@ struct would_substitute_feature_t
inline bool would_substitute (hb_codepoint_t *glyphs, inline bool would_substitute (hb_codepoint_t *glyphs,
unsigned int glyphs_count, unsigned int glyphs_count,
bool zero_context,
hb_face_t *face) const hb_face_t *face) const
{ {
for (unsigned int i = 0; i < count; i++) for (unsigned int i = 0; i < count; i++)
if (hb_ot_layout_would_substitute_lookup_fast (face, lookups[i].index, glyphs, glyphs_count, true)) if (hb_ot_layout_would_substitute_lookup_fast (face, lookups[i].index, glyphs, glyphs_count, zero_context))
return true; return true;
return false; return false;
} }
...@@ -340,9 +341,10 @@ consonant_position_from_face (const indic_shape_plan_t *indic_plan, ...@@ -340,9 +341,10 @@ consonant_position_from_face (const indic_shape_plan_t *indic_plan,
hb_codepoint_t *glyphs, unsigned int glyphs_len, hb_codepoint_t *glyphs, unsigned int glyphs_len,
hb_face_t *face) hb_face_t *face)
{ {
if (indic_plan->pref.would_substitute (glyphs, glyphs_len, face)) return POS_BELOW_C; bool zero_context = indic_plan->is_old_spec ? false : true;
if (indic_plan->blwf.would_substitute (glyphs, glyphs_len, face)) return POS_BELOW_C; if (indic_plan->pref.would_substitute (glyphs, glyphs_len, zero_context, face)) return POS_BELOW_C;
if (indic_plan->pstf.would_substitute (glyphs, glyphs_len, face)) return POS_POST_C; if (indic_plan->blwf.would_substitute (glyphs, glyphs_len, zero_context, face)) return POS_BELOW_C;
if (indic_plan->pstf.would_substitute (glyphs, glyphs_len, zero_context, face)) return POS_POST_C;
return POS_BASE_C; return POS_BASE_C;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册