Name Description Size
module.mk 664
pfr.c END 708
pfrcmap.c PFR_CMap 4519
pfrcmap.h PFRCMAP_H_ 920
pfrdrivr.c PFR_Face 5618
pfrdrivr.h PFRDRIVR_H_ 773
pfrerror.h This file is used to define the PFR error enumeration constants. 962
pfrgload.c for macro definitions 21886
pfrgload.h PFRGLOAD_H_ 1059
pfrload.c The overall structure of a PFR file is as follows. PFR header 58 bytes (contains nPhysFonts) Logical font directory (size at most 2^16 bytes) 2 bytes (nLogFonts) + nLogFonts * 5 bytes ==> nLogFonts <= 13106 Logical font section (size at most 2^24 bytes) nLogFonts * logFontRecord logFontRecord (size at most 2^16 bytes) 12 bytes (fontMatrix) + 1 byte (flags) + 0-5 bytes (depending on `flags') + 0-(1+255*(2+255)) = 0-65536 (depending on `flags') + 5 bytes (physical font info) + 0-1 bytes (depending on PFR header) ==> minimum size 18 bytes Physical font section (size at most 2^24 bytes) nPhysFonts * (physFontRecord + nBitmapSizes * nBmapChars * bmapCharRecord) physFontRecord (size at most 2^24 bytes) 14 bytes (font info) + 1 byte (flags) + 0-2 (depending on `flags') + 0-? (structure too complicated to be shown here; depending on `flags'; contains `nBitmapSizes' and `nBmapChars') + 3 bytes (nAuxBytes) + nAuxBytes + 1 byte (nBlueValues) + 2 * nBlueValues + 6 bytes (hinting data) + 2 bytes (nCharacters) + nCharacters * (4-10 bytes) (depending on `flags') ==> minimum size 27 bytes bmapCharRecord 4-7 bytes Glyph program strings (three possible types: simpleGps, compoundGps, and bitmapGps; size at most 2^24 bytes) simpleGps (size at most 2^16 bytes) 1 byte (flags) 1-2 bytes (n[XY]orus, depending on `flags') 0-(64+512*2) = 0-1088 bytes (depending on `n[XY]orus') 0-? (structure too complicated to be shown here; depending on `flags') 1-? glyph data (faintly resembling PS Type 1 charstrings) ==> minimum size 3 bytes compoundGps (size at most 2^16 bytes) 1 byte (nElements <= 63, flags) + 0-(1+255*(2+255)) = 0-65536 (depending on `flags') + nElements * (6-14 bytes) bitmapGps (size at most 2^16 bytes) 1 byte (flags) 3-13 bytes (position info, depending on `flags') 0-? bitmap data ==> minimum size 4 bytes PFR trailer 8 bytes ==> minimum size of a valid PFR: 58 (header) + 2 (nLogFonts) + 27 (1 physFontRecord) + 8 (trailer) ----- 95 bytes 28988
pfrload.h some size checks should be always done (mainly to prevent 3425
pfrobjs.c / /************************************************************************ 17487
pfrobjs.h PFR_Face 2135
pfrsbit.c / /************************************************************************ 21398
pfrsbit.h PFRSBIT_H_ 878
pfrtypes.h / /* the PFR Header structure 8090
rules.mk 1885