- 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);
+ int from_idx = gstring->used;
+
+ MDEBUG_PRINT4 ("\n [FLT] %*s(OTF %s,%s)", depth, "",
+ (! otf_cmd->features[MFONT_OTT_GSUB].str ? ""
+ : otf_cmd->features[MFONT_OTT_GSUB].str),
+ (! otf_cmd->features[MFONT_OTT_GPOS].str ? ""
+ : otf_cmd->features[MFONT_OTT_GPOS].str));
+ to = mfont__ft_drive_otf (gstring, from, to, otf_cmd);
+ if (ctx->cluster_begin_idx)
+ for (; from_idx < gstring->used; from_idx++)
+ UPDATE_CLUSTER_RANGE (ctx, gstring->glyphs[from_idx]);