/**************************************************************************** * * t1parse.c * * Type 1 parser (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. * */ /************************************************************************** * * The Type 1 parser is in charge of the following: * * - provide an implementation of a growing sequence of objects called * a `T1_Table' (used to build various tables needed by the loader). * * - opening .pfb and .pfa files to extract their top-level and private * dictionaries. * * - read numbers, arrays & strings from any dictionary. * * See `t1load.c' to see how data is loaded from the font file. * */ #include <freetype/internal/ftdebug.h> #include <freetype/internal/ftstream.h> #include <freetype/internal/psaux.h> #include "t1parse.h" #include "t1errors.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 … /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ /***** *****/ /***** INPUT STREAM PARSER *****/ /***** *****/ /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ /* see Adobe Technical Note 5040.Download_Fonts.pdf */ static FT_Error read_pfb_tag( FT_Stream stream, FT_UShort *atag, FT_ULong *asize ) { … } static FT_Error check_type1_format( FT_Stream stream, const char* header_string, size_t header_length ) { … } FT_LOCAL_DEF( FT_Error ) T1_New_Parser( T1_Parser parser, FT_Stream stream, FT_Memory memory, PSAux_Service psaux ) { … } FT_LOCAL_DEF( void ) T1_Finalize_Parser( T1_Parser parser ) { … } FT_LOCAL_DEF( FT_Error ) T1_Get_Private_Dict( T1_Parser parser, PSAux_Service psaux ) { … } /* END */