diff --git a/dlls/usp10/opentype.c b/dlls/usp10/opentype.c index dd9c8c42f8..e7f2dfdd93 100644 --- a/dlls/usp10/opentype.c +++ b/dlls/usp10/opentype.c @@ -937,12 +937,16 @@ static INT GSUB_apply_ChainContextSubst(const OT_LookupList* lookup, const OT_Lo ccsf1 = (const GSUB_ChainContextSubstFormat1*)((const BYTE*)look+offset); if (GET_BE_WORD(ccsf1->SubstFormat) == 1) { - FIXME(" TODO: subtype 1 (Simple context glyph substitution)\n"); + static int once; + if (!once++) + FIXME(" TODO: subtype 1 (Simple context glyph substitution)\n"); continue; } else if (GET_BE_WORD(ccsf1->SubstFormat) == 2) { - FIXME(" TODO: subtype 2 (Class-based Chaining Context Glyph Substitution)\n"); + static int once; + if (!once++) + FIXME(" TODO: subtype 2 (Class-based Chaining Context Glyph Substitution)\n"); continue; } else if (GET_BE_WORD(ccsf1->SubstFormat) == 3) @@ -1648,12 +1652,16 @@ static INT GPOS_apply_ChainContextPos(ScriptCache *psc, LPOUTLINETEXTMETRICW lpo if (GET_BE_WORD(ccpf3->PosFormat) == 1) { - FIXME(" TODO: subtype 1 (Simple Chaining Context Glyph Positioning)\n"); + static int once; + if (!once++) + FIXME(" TODO: subtype 1 (Simple Chaining Context Glyph Positioning)\n"); continue; } else if (GET_BE_WORD(ccpf3->PosFormat) == 2) { - FIXME(" TODO: subtype 2 (Class-based Chaining Context Glyph Positioning)\n"); + static int once; + if (!once++) + FIXME(" TODO: subtype 2 (Class-based Chaining Context Glyph Positioning)\n"); continue; } else if (GET_BE_WORD(ccpf3->PosFormat) == 3)