Name Description Size
module.mk 677
rules.mk 1861
t1afm.c 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. 10667
t1afm.h T1AFM_H_ 1285
t1driver.c 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. 23912
t1driver.h T1DRIVER_H_ 769
t1errors.h This file is used to define the Type 1 error enumeration constants. 969
t1gload.c 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. 20367
t1gload.h T1GLOAD_H_ 1193
t1load.c This is the new and improved Type 1 data loader for FreeType 2. The old loader has several problems: it is slow, complex, difficult to maintain, and contains incredible hacks to make it accept some ill-formed Type 1 fonts without hiccup-ing. Moreover, about 5% of the Type 1 fonts on my machine still aren't loaded correctly by it. This version is much simpler, much faster and also easier to read and maintain by a great order of magnitude. The idea behind it is to _not_ try to read the Type 1 token stream with a state machine (i.e. a Postscript-like interpreter) but rather to perform simple pattern matching. Indeed, nearly all data definitions follow a simple pattern like ... /Field <data> ... where <data> can be a number, a boolean, a string, or an array of numbers. There are a few exceptions, namely the encoding, font name, charstrings, and subrs; they are handled with a special pattern matching routine. All other common cases are handled very simply. The matching rules are defined in the file `t1tokens.h' through the use of several macros calls PARSE_XXX. This file is included twice here; the first time to generate parsing callback functions, the second time to generate a table of keywords (with pointers to the associated callback functions). The function `parse_dict' simply scans *linearly* a given dictionary (either the top-level or private one) and calls the appropriate callback when it encounters an immediate keyword. This is by far the fastest way one can find to parse and read all data. This led to tremendous code size reduction. Note that later, the glyph loader will also be _greatly_ simplified, and the automatic hinter will replace the clumsy `t1hinter'. 82040
t1load.h parser used to read the stream 3285
t1objs.c 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. 17541
t1objs.h The following structures must be defined by the hinter 3452
t1parse.c 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. 14896
t1parse.h @Struct: T1_ParserRec @Description: A PS_ParserRec is an object used to parse a Type 1 fonts very quickly. @Fields: root :: The root parser. stream :: The current input stream. base_dict :: A pointer to the top-level dictionary. base_len :: The length in bytes of the top dictionary. private_dict :: A pointer to the private dictionary. private_len :: The length in bytes of the private dictionary. in_pfb :: A boolean. Indicates that we are handling a PFB file. in_memory :: A boolean. Indicates a memory-based stream. single_block :: A boolean. Indicates that the private dictionary is stored in lieu of the base dictionary. 3735
t1tokens.h we use pointers to detect modifications made by synthetic fonts 5083
type1.c END 720