- int gidx = gstring->used;
- MGlyph *g = MGLYPH (from), *gend = MGLYPH (to);
-
- for (; g < gend; g++)
- g->otf_cmd = otf_cmd;
-
- to = mfont__ft_drive_gsub (gstring, from, to);
- if (gidx < gstring->used)
- MGLYPH (gidx)->left_padding = ctx->left_padding;
+ int from_idx = gstring->used;
+
+ MDEBUG_PRINT4 ("\n [FLT] %*s(OTF %s,%s)", depth, "",
+ (otf_cmd->gsub_features == Mnil ? ""
+ : MSYMBOL_NAME (otf_cmd->gsub_features)),
+ (otf_cmd->gpos_features == Mnil ? ""
+ : MSYMBOL_NAME (otf_cmd->gpos_features)));
+ to = mfont__ft_drive_otf (gstring, from, to,
+ otf_cmd->script, otf_cmd->langsys,
+ otf_cmd->gsub_features, otf_cmd->gpos_features);
+ if (ctx->cluster_begin_idx)
+ for (; from_idx < gstring->used; from_idx++)
+ UPDATE_CLUSTER_RANGE (ctx, gstring->glyphs[from_idx]);