/**************************************************************************** * * t1afm.c * * AFM support for Type 1 fonts (body). * * Copyright (C) 1996-2023 by * 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. * */ #include "t1afm.h" #include <freetype/internal/ftdebug.h> #include <freetype/internal/ftstream.h> #include <freetype/internal/psaux.h> #include "t1errors.h" #ifndef T1_CONFIG_OPTION_NO_AFM /************************************************************************** * * 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 … FT_LOCAL_DEF( void ) T1_Done_Metrics( FT_Memory memory, AFM_FontInfo fi ) { … } /* read a glyph name and return the equivalent glyph index */ static FT_Int t1_get_index( const char* name, FT_Offset len, void* user_data ) { … } #undef KERN_INDEX #define KERN_INDEX( g1, g2 ) … /* compare two kerning pairs */ FT_COMPARE_DEF( int ) compare_kern_pairs( const void* a, const void* b ) { … } /* parse a PFM file -- for now, only read the kerning pairs */ static FT_Error T1_Read_PFM( FT_Face t1_face, FT_Stream stream, AFM_FontInfo fi ) { … } /* parse a metrics file -- either AFM or PFM depending on what */ /* it turns out to be */ FT_LOCAL_DEF( FT_Error ) T1_Read_Metrics( FT_Face t1_face, FT_Stream stream ) { … } /* find the kerning for a given glyph pair */ FT_LOCAL_DEF( void ) T1_Get_Kerning( AFM_FontInfo fi, FT_UInt glyph1, FT_UInt glyph2, FT_Vector* kerning ) { … } FT_LOCAL_DEF( FT_Error ) T1_Get_Track_Kerning( FT_Face face, FT_Fixed ptsize, FT_Int degree, FT_Fixed* kerning ) { … } #else /* T1_CONFIG_OPTION_NO_AFM */ /* ANSI C doesn't like empty source files */ typedef int t1_afm_dummy_; #endif /* T1_CONFIG_OPTION_NO_AFM */ /* END */