/**************************************************************************** * * gxvmort.c * * TrueTypeGX/AAT mort table validation (body). * * Copyright (C) 2005-2023 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ /**************************************************************************** * * gxvalid is derived from both gxlayout module and otvalid module. * Development of gxlayout is supported by the Information-technology * Promotion Agency(IPA), Japan. * */ #include "gxvmort.h" #include "gxvfeat.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log * messages during execution. */ #undef FT_COMPONENT #define FT_COMPONENT … static void gxv_mort_feature_validate( GXV_mort_feature f, GXV_Validator gxvalid ) { … } /* * nFeatureFlags is typed to FT_ULong to accept that in * mort (typed FT_UShort) and morx (typed FT_ULong). */ FT_LOCAL_DEF( void ) gxv_mort_featurearray_validate( FT_Bytes table, FT_Bytes limit, FT_ULong nFeatureFlags, GXV_Validator gxvalid ) { … } FT_LOCAL_DEF( void ) gxv_mort_coverage_validate( FT_UShort coverage, GXV_Validator gxvalid ) { … } static void gxv_mort_subtables_validate( FT_Bytes table, FT_Bytes limit, FT_UShort nSubtables, GXV_Validator gxvalid ) { … } static void gxv_mort_chain_validate( FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid ) { … } FT_LOCAL_DEF( void ) gxv_mort_validate( FT_Bytes table, FT_Face face, FT_Validator ftvalid ) { … } /* END */