30#define FT_COMPONENT trace_otvgsub
56 OTV_TRACE((
" (format %d)\n", SubstFormat ));
58 switch ( SubstFormat )
92 OTV_TRACE((
" (GlyphCount = %d)\n", GlyphCount ));
101 for ( ; GlyphCount > 0; GlyphCount-- )
138 OTV_TRACE((
" (format %d)\n", SubstFormat ));
140 switch ( SubstFormat )
143 otvalid->extra1 = otvalid->glyph_count;
144 OTV_NEST2( MultipleSubstFormat1, Sequence );
179 OTV_TRACE((
" (format %d)\n", SubstFormat ));
181 switch ( SubstFormat )
184 otvalid->extra1 = otvalid->glyph_count;
185 OTV_NEST2( AlternateSubstFormat1, AlternateSet );
205#define LigatureFunc otv_Ligature_validate
226 OTV_TRACE((
" (CompCount = %d)\n", CompCount ));
228 if ( CompCount == 0 )
254 OTV_TRACE((
" (format %d)\n", SubstFormat ));
256 switch ( SubstFormat )
294 OTV_TRACE((
" (format %d)\n", SubstFormat ));
296 switch ( SubstFormat )
303 otvalid->extra1 = otvalid->lookup_count;
304 OTV_NEST3( ContextSubstFormat1, SubRuleSet, SubRule );
313 OTV_NEST3( ContextSubstFormat2, SubClassSet, SubClassRule );
353 OTV_TRACE((
" (format %d)\n", SubstFormat ));
355 switch ( SubstFormat )
362 otvalid->extra1 = otvalid->lookup_count;
364 ChainSubRuleSet, ChainSubRule );
374 ChainSubClassSet, ChainSubClassRule );
414 OTV_TRACE((
" (format %d)\n", SubstFormat ));
416 switch ( SubstFormat )
429 if ( ExtensionLookupType == 0 ||
430 ExtensionLookupType == 7 ||
431 ExtensionLookupType > 8 )
434 validate = otvalid->type_funcs[ExtensionLookupType - 1];
463 FT_UInt BacktrackGlyphCount, LookaheadGlyphCount, GlyphCount;
471 OTV_TRACE((
" (format %d)\n", SubstFormat ));
473 switch ( SubstFormat )
480 OTV_TRACE((
" (BacktrackGlyphCount = %d)\n", BacktrackGlyphCount ));
486 for ( ; BacktrackGlyphCount > 0; BacktrackGlyphCount-- )
491 OTV_TRACE((
" (LookaheadGlyphCount = %d)\n", LookaheadGlyphCount ));
495 for ( ; LookaheadGlyphCount > 0; LookaheadGlyphCount-- )
500 OTV_TRACE((
" (GlyphCount = %d)\n", GlyphCount ));
508 for ( ; GlyphCount > 0; GlyphCount-- )
562 otvalid->root = ftvalid;
564 FT_TRACE3((
"validating GSUB table\n" ));
594 otvalid->type_count = 8;
596 otvalid->glyph_count = glyph_count;
609 if ( featureVariations )
610 OTV_TRACE((
" [omitting featureVariations validation]\n" ));
static const WCHAR version[]
static FRESULT validate(void *obj)
#define FT_TRACE3(varformat)
#define FT_TRACE4(varformat)
#define FT_NEXT_USHORT(buffer)
#define FT_NEXT_SHORT(buffer)
#define FT_NEXT_ULONG(buffer)
#define FT_INVALID_FORMAT
typedefFT_BEGIN_HEADER struct FT_ValidatorRec_ volatile * FT_Validator
#define FT_INVALID_GLYPH_ID
ROSDATA LIGATURE2 Ligature[]
struct tagFeatureList FeatureList
otv_ScriptList_validate(FT_Bytes table, FT_Bytes features, OTV_Validator otvalid)
otv_Coverage_get_last(FT_Bytes table)
otv_Coverage_validate(FT_Bytes table, OTV_Validator otvalid, FT_Int expected_count)
otv_Coverage_get_count(FT_Bytes table)
otv_FeatureList_validate(FT_Bytes table, FT_Bytes lookups, OTV_Validator otvalid)
otv_Coverage_get_first(FT_Bytes table)
otv_LookupList_validate(FT_Bytes table, OTV_Validator otvalid)
typedefFT_BEGIN_HEADER struct OTV_ValidatorRec_ * OTV_Validator
void(* OTV_Validate_Func)(FT_Bytes table, OTV_Validator otvalid)
#define OTV_SIZE_CHECK32(_size)
#define OTV_OPTIONAL_TABLE32(_table)
#define OTV_NAME_ENTER(name)
#define OTV_OPTIONAL_OFFSET32(_offset)
#define OTV_LIMIT_CHECK(_count)
#define OTV_NEST3(x, y, z)
static void otv_AlternateSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_ExtensionSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_ContextSubst_validate(FT_Bytes table, OTV_Validator otvalid)
otv_GSUB_validate(FT_Bytes table, FT_UInt glyph_count, FT_Validator ftvalid)
static void otv_ReverseChainSingleSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static const OTV_Validate_Func otv_gsub_validate_funcs[8]
static void otv_MultipleSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_Ligature_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_SingleSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_ChainContextSubst_validate(FT_Bytes table, OTV_Validator otvalid)
static void otv_LigatureSubst_validate(FT_Bytes table, OTV_Validator otvalid)