w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ttf.h
Go to the documentation of this file.
1 /* Copyright (C) 2001-2012 by George Williams */
2 /*
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are met:
5 
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer.
8 
9  * Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12 
13  * The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15 
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #include "psfont.h" /* for struct fddata */
29 
30 #define MAC_DELETED_GLYPH_NAME "<Delete>"
31 
32 struct taxis {
34  real min, def, max; /* in user design space */
35  int nameid;
36  int paircount;
37  real *mapfrom; /* after conversion from [-1,1] */
38  real *mapto; /* secondary conversiont to [-1,1] */
39 };
40 
41 struct tinstance {
42  int nameid;
43  real *coords; /* Location along axes array[axis_count] */
44 };
45 
46 struct tuples {
47  real *coords; /* Location along axes array[axis_count] */
48  SplineChar **chars; /* Varied glyphs, array parallels one in info */
49  struct ttf_table *cvt;
50  KernClass *khead, *klast, *vkhead, *vklast; /* Varied kern classes */
51 };
52 
53 struct variations {
55  struct taxis *axes; /* Array of axis_count entries */
56  int instance_count; /* Not master designs, but named interpolations in design space */
59  struct tuples *tuples;
60 };
61 
63 
64 struct macidname {
65  int id;
66  struct macname *head, *last;
67  struct macidname *next;
68 };
69 
70 struct savetab {
73  int len;
74 };
75 
76 struct ttfinfo {
77  int emsize; /* ascent + descent? from the head table */
78  int ascent, descent; /* from the hhea table */
79  /* not the usWinAscent from the OS/2 table */
80  int vertical_origin; /* if vmetrics are present */
81  int width_cnt; /* from the hhea table, in the hmtx table */
82  int glyph_cnt; /* from maxp table (or cff table) */
83  unsigned int index_to_loc_is_long:1; /* in head table */
84  unsigned int is_ttc:1; /* Is it a font collection? */
85  unsigned int is_onebyte:1; /* Is it a one byte encoding? */
86  unsigned int twobytesymbol:1; /* it had a symbol encoding which we converted to unicode */
87  unsigned int complainedbeyondglyfend:1; /* Don't complain about this more than once */
88  unsigned int extensionrequested:1; /* Only ask once for a copy of a font containing extension subtables */
89  unsigned int to_order2:1; /* We are to leave the font as truetype (order2) splines, else convert to ps */
90  unsigned int complainedmultname:1; /* Don't complain about this more than once */
91  unsigned int strokedfont: 1; /* painttype==2 for otf */
92  unsigned int use_typo_metrics: 1;
93  unsigned int weight_width_slope_only: 1;
94  unsigned int optimized_for_cleartype: 1;
95  unsigned int apply_lsb: 1;
97  enum openflags openflags;
98  /* Mac fonts platform=0/1, platform specific enc id, roman=0, english is lang code 0 */
99  /* iso platform=2, platform specific enc id, latin1=0/2, no language */
100  /* microsoft platform=3, platform specific enc id, 1, english is lang code 0x??09 */
101  char *copyright; /* from the name table, nameid=0 */
102  char *familyname; /* nameid=1 */
103  char *fullname; /* nameid=4 */
104  char *weight;
105  char *version; /* nameid=5 */
106  char *fontname; /* postscript font name, nameid=6 */
107  char *xuid; /* Only for open type cff fonts */
108  int uniqueid;
109  real italicAngle; /* from post table */
110  int upos, uwidth; /* underline pos, width from post table */
112  int fstype;
113  struct psdict *private; /* Only for open type cff fonts */
115  enum uni_interp uni_interp;
116  struct pfminfo pfminfo;
117  short os2_version;
122  char **cvt_names;
123  SplineChar **chars; /* from all over, glyf table for contours */
124  /* cmap table for encodings */
125  /* hmtx table for widths */
126  /* post table for names */
127  /* Or from CFF table for everything in opentype */
136  char *inuse; /* What glyphs are used by this font in the ttc */
137 
139  /* BASE */
140  uint32 base_start; /* Offset from sof to start of 'BASE' table */
141  /* CFF */
142  uint32 cff_start; /* Offset from sof to start of postscript compact font format */
144  /* cmap */
145  uint32 encoding_start; /* Offset from sof to start of encoding table */
146  uint32 vs_start; /* Offset within 'cmap' to variant selector table */
147  /* gasp */
149  /* glyf */
150  uint32 glyph_start; /* Offset from sof to start of glyph table */
152  /* GDEF */
153  uint32 gdef_start; /* Offset from sof to start of GDEF table (glyph class defn, ligature carets) */
155  /* GPOS */
156  uint32 gpos_start; /* Offset from sof to start of GPOS table */
158  /* GSUB */
159  uint32 gsub_start; /* Offset from sof to start of GSUB table */
161  uint32 g_bounds; /* Filled in with g???_start+g???_length */
162  /* EBDT, bdat */
163  uint32 bitmapdata_start; /* Offset to start of bitmap data */
165  /* EBLT, bloc */
166  uint32 bitmaploc_start; /* Offset to start of bitmap locator data */
168  /* gvar, etc. */
173  /* head */
175  /* hhea */
177  /* hmtx */
179  /* JSTF */
182  /* kern */
184  /* loca */
185  uint32 glyphlocations_start;/* there are glyph_cnt of these, from maxp tab */
186  uint32 loca_length; /* actually glypn_cnt is wrong. Use the table length (divided by size) instead */
187  /* maxp */
188  uint32 maxp_start; /* maximum number of glyphs */
190  /* name */
191  uint32 copyright_start; /* copyright and fontname */
192  /* post */
193  uint32 postscript_start; /* names for the glyphs, italic angle, etc. */
194  /* OS/2 */
196  /* TYP1 */
197  uint32 typ1_start; /* For Adobe's? Apple's? attempt to stuff a type1 font into an sfnt wrapper */
199  /* vhea */
201  /* vmtx */
203  /* VORG */
205 
206  /* PfEd -- FontForge/PfaEdit specific info */
208  /* TeX -- TeX table, also non-standard */
210  /* BDF -- BDF properties, also non-standard */
212  /* FFTM -- FontForge timestamps */
214 
215  /* Apple Advanced Typography Tables */
224 
225  /* MATH Table */
228 
229  /* Info for instructions */
233 
234  unsigned int one_of_many: 1; /* A TTCF file, or a opentype font with multiple fonts */
235  unsigned int obscomplain: 1; /* We've complained about obsolete format 3 in EBDT table */
236  unsigned int cmpcomplain: 1; /* We've complained about compressed format 4 in EBDT */
237  unsigned int unkcomplain: 1; /* We've complained about unknown formats in EBDT */
238  unsigned int comcomplain: 1; /* We've complained about composit formats in EBDT */
239  unsigned int onlystrikes: 1; /* Only read in the bitmaps, not the outlines */
240  unsigned int onlyonestrike: 1; /* Only read in one bitmap (strike) */
241  unsigned int barecff: 1; /* pay attention to the encoding in the cff file, we won't have a cmap */
242  unsigned int wdthcomplain: 1; /* We've complained about advance widths exceding the max */
243  unsigned int bbcomplain: 1; /* We've complained about glyphs being outside the bounding box */
244  unsigned int gbbcomplain: 1; /* We've complained about points being outside the bounding box */
245 
246  int platform, specific; /* values of the encoding we chose to use */
247 
248  int anchor_class_cnt; /* For GPOS */
251 
253 
255 
260 
261  int mort_max;
262 
263  struct ttf_table *tabs;
265  ASM *sm;
267  char *chosenname;
268  int macstyle;
269  int lookup_cnt; /* Max lookup in current GPOS/GSUB table */
270  int feature_cnt; /* Max feature in current GPOS/GSUB table */
273  struct fontdict *fd; /* For reading in Type42 fonts. Glyph names in postscript section must be associated with glyphs in TTF section */
274  int savecnt;
275  struct savetab *savetab;
281  struct texdata texdata;
283  char **mark_classes; /* glyph name list */
284  char **mark_class_names; /* used within ff (utf8) */
286  char **mark_sets; /* glyph name list */
287  char **mark_set_names; /* used within ff (utf8) */
289  int badgid_cnt, badgid_max; /* Used when parsing apple morx tables*/
290  SplineChar **badgids; /* which use out of range glyph IDs as temporary flags */
291  long long creationtime; /* seconds since 1970 */
292  long long modificationtime;
293  int gasp_cnt;
294  struct gasp *gasp;
295  struct MATH *math;
296  /* Set of errors we found when loading the font */
297  unsigned int bad_ps_fontname: 1;
298  unsigned int bad_glyph_data: 1;
299  unsigned int bad_cff: 1;
300  unsigned int bad_metrics: 1;
301  unsigned int bad_cmap: 1;
302  unsigned int bad_embedded_bitmap: 1;
303  unsigned int bad_gx: 1;
304  unsigned int bad_ot: 1;
305  unsigned int bad_os2_version: 1;
306  unsigned int bad_sfnt_header: 1;
310 
312  int fbb[4]; /* x,yMin x,yMax*/
314 
321 };
322 
323 struct taboff {
324  uint32 tag; /* Table name */
325  uint32 checksum;/* for table */
326  uint32 offset; /* to start of table in file */
331 };
332 
333 #define MAX_TAB 48
334 struct tabdir {
335  int32 version; /* 0x00010000 */
337  uint16 searchRange; /* (Max power of 2 <= numtab) *16 */
338  uint16 entrySel; /* Log2(Max power of 2 <= numtab ) */
339  uint16 rangeShift; /* numtab*16 - searchRange */
340  struct taboff tabs[MAX_TAB];/* room for all the tables */
341  /* Not in any particular order. */
342  struct taboff *ordered[MAX_TAB]; /* Ordered the way the tables should be output in file */
343  struct taboff *alpha[MAX_TAB]; /* Ordered alphabetically by tag for the ttf header */
344 };
345 
346 struct glyphhead {
352 };
353 
354 struct head {
355  int32 version; /* 0x00010000 */
356  int32 revision; /* 0 */
357  uint32 checksumAdj; /* set to 0, sum entire font, store 0xb1b0afba-sum */
358  uint32 magicNum; /* 0x5f0f3cf5 */
359  uint16 flags; /* 1 */
360  uint16 emunits; /* sf->ascent+sf->descent */
361  int32 createtime[2];/* number of seconds since 1904 */
363  int16 xmin; /* min for entire font */
367  uint16 macstyle; /* 1=>Bold, 2=>Italic */
368  uint16 lowestreadable; /* size in pixels. Say about 10? */
369  int16 dirhint; /* 0=>mixed directional characters, */
370  int16 locais32; /* is the location table 32bits or 16, 0=>16, 1=>32 */
372  uint16 mbz; /* padding */
373 };
374 
375 struct hhead {
376  int32 version; /* 0x00010000 */
377  int16 ascender; /* sf->ascender */
378  int16 descender; /* -sf->descender */
379  int16 linegap; /* 0 */
380  int16 maxwidth; /* of all characters */
381  int16 minlsb; /* How is this different from xmin above? */
383  int16 maxextent; /* How is this different from xmax above? */
384  int16 caretSlopeRise;/* Uh... let's say 1? */
385  int16 caretSlopeRun;/* Uh... let's say 0 */
386  /* not exactly specified, but FontValidator wants this to match italicangle */
387  int16 mbz[5];
389  uint16 numMetrics; /* just set to glyph count */
390 };
391 
392 struct kp {
393  uint16 left; /* left glyph num */
394  uint16 right; /* right glyph num */
395  /* table is ordered by these two above treated as uint32 */
396  int16 offset; /* kern amount */
397 };
398 
399 struct kern {
400  uint16 version; /* 0 */
401  uint16 ntab; /* 1, number of subtables */
402  /* first (and only) subtable */
403  uint16 stversion; /* 0 */
404  uint16 length; /* length of subtable beginning at &stversion */
405  uint16 coverage; /* 1, (set of flags&format) */
406  uint16 nPairs; /* number of kern pairs */
407  uint16 searchRange; /* (Max power of 2 <= nPairs) *6 */
408  uint16 entrySel; /* Log2(Max power of 2 <= nPairs ) */
409  uint16 rangeShift; /* numtab*6 - searchRange */
410  struct kp *kerns; /* Array should be nPairs big */
411 };
412 
413 struct maxp {
414  int32 version; /* 0x00010000 */
416  uint16 maxPoints; /* max number of points in a simple glyph */
417  uint16 maxContours; /* max number of paths in a simple glyph */
420  uint16 maxZones; /* 1 */
423  uint16 maxFDEFs; /* 0 */
424  uint16 maxIDEFs; /* 0 */
425  uint16 maxStack; /* 0 */
427  uint16 maxnumcomponents; /* Maximum number of refs in any composit */
429  /* Apple docs say: 0 (if no composits), maximum value 1 (one level of composit) */
430  /* OpenType docs say: 1 (if no composits), any depth allowed */
431 };
432 
433 struct namerec {
434  uint16 platform; /* 3 => MS */
435  uint16 specific; /* 1 */
436  uint16 language; /* 0x0409 */
437  uint16 nameid; /* 0=>copyright, 1=>family, 2=>weight, 4=>fullname */
438  /* 5=>version, 6=>postscript name */
441 };
442 
443 struct os2 {
444  uint16 version; /* 1 */
445  int16 avgCharWid; /* average all chars (v3) see v2 definition below */
446  uint16 weightClass; /* 100=>thin, 200=>extra-light, 300=>light, 400=>normal, */
447  /* 500=>Medium, 600=>semi-bold, 700=>bold, 800=>extra-bold, */
448  /* 900=>black */
449  uint16 widthClass; /* 75=>condensed, 100, 125=>expanded */
450  int16 fstype; /* 0x0008 => allow embedded editing */
451  int16 ysubXSize; /* emsize/5 */
452  int16 ysubYSize; /* emsize/5 */
453  int16 ysubXOff; /* 0 */
454  int16 ysubYOff; /* emsize/5 */
455  int16 ysupXSize; /* emsize/5 */
456  int16 ysupYSize; /* emsize/5 */
457  int16 ysupXOff; /* 0 */
458  int16 ysupYOff; /* emsize/5 */
459  int16 yStrikeoutSize; /* 102/2048 *emsize */
460  int16 yStrikeoutPos; /* 530/2048 *emsize */
461  int16 sFamilyClass; /* ??? 0 */
462  /* high order byte is the "class", low order byte the sub class */
463  /* class = 0 => no classification */
464  /* class = 1 => old style serifs */
465  /* subclass 0, no class; 1 ibm rounded; 2 garalde; 3 venetian; 4 mod venitian; 5 dutch modern; 6 dutch trad; 7 contemporary; 8 caligraphic; 15 misc */
466  /* class = 2 => transitional serifs */
467  /* subclass 0, no class; 1 drect line; 2 script; 15 misc */
468  /* class = 3 => modern serifs */
469  /* subclass: 1, italian; 2, script */
470  /* class = 4 => clarendon serifs */
471  /* subclass: 1, clarendon; 2, modern; 3 trad; 4 newspaper; 5 stub; 6 monotone; 7 typewriter */
472  /* class = 5 => slab serifs */
473  /* subclass: 1, monotone; 2, humanist; 3 geometric; 4 swiss; 5 typewriter */
474  /* class = 7 => freeform serifs */
475  /* subclass: 1, modern */
476  /* class = 8 => sans serif */
477  /* subclass: 1, ibm neogrotesque; 2 humanist; 3 low-x rounded; 4 high-x rounded; 5 neo-grotesque; 6 mod neo-grot; 9 typewriter; 10 matrix */
478  /* class = 9 => ornamentals */
479  /* subclass: 1, engraver; 2 black letter; 3 decorative; 4 3D */
480  /* class = 10 => scripts */
481  /* subclass: 1, uncial; 2 brush joined; 3 formal joined; 4 monotone joined; 5 calligraphic; 6 brush unjoined; 7 formal unjoined; 8 monotone unjoined */
482  /* class = 12 => symbolic */
483  /* subclass: 3 mixed serif; 6 old style serif; 7 neo-grotesque sans; */
484  char panose[10]; /* can be set to zero */
486  /* 1<<0=>ascii, 1<<1 => latin1, 2=>100-17f, 3=>180-24f, 4=>250-2af */
487  /* 5=> 2b0-2ff, 6=>300-36f, ... */
488  char achVendID[4]; /* can be zero */
489  uint16 fsSel; /* 1=> italic, 32=>bold, 64 => regular */
490  /* 2=>underscore, 4=>negative, 8->outlined, 16=>strikeout */
491  /* version 4 of OS/2 */
492  /* 128->don't use win_ascent/descent for line spacing */
493  /* 256=>family varies on weight width slope only */
494  /* 512=>oblique (as opposed to italic) */
495  uint16 firstcharindex; /* minimum unicode encoding */
496  uint16 lastcharindex; /* maximum unicode encoding */
497  uint16 ascender; /* font ascender height (not ascent) */
498  uint16 descender; /* font descender height */
499  uint16 linegap; /* 0 */
500  uint16 winascent; /* ymax */
501  uint16 windescent; /* ymin */
503  /* 1<<0 => latin1, 1<<1=>latin2, cyrillic, greek, turkish, hebrew, arabic */
504  /* 1<<30 => mac, 1<<31 => symbol */
505  /* OTF stuff (version 2 of OS/2) */
506  short xHeight;
507  short capHeight;
508  short defChar;
509  short breakChar;
510  short maxContext;
511  /* V3 of OS/2 has no additional data */
512  /* V4 of OS/2 has no additional data */
513 
514  int v1_avgCharWid; /* 1&2 Weighted average of the lower case letters and space */
515  int v3_avgCharWid; /* 3&4 average over all non-zero width glyphs */
516 };
517 
518 struct glyphinfo {
519  struct maxp *maxp; /* this one is given to dumpglyphs, rest blank */
523  int hmtxlen;
525  int vmtxlen;
528  int xmin, ymin, xmax, ymax;
530  int strikecnt; /* number of bitmaps to dump */
531  int lasthwidth, lastvwidth; /* encoding of last glyph for which we generate a full metrics entry */
533  int flags;
536  unsigned int dovariations: 1;
537  unsigned int onlybitmaps: 1;
538  unsigned int has_instrs: 1;
539  unsigned int is_ttf: 1;
540  unsigned int ttc_composite_font: 1;
541  SplineFont *sf;
543  int *bygid; /* glyph list */
544  int gcnt;
545  int layer;
546 };
547 
548 struct vorg {
551  short defaultVertOriginY; /* Y coord of default vertical origin in the design coordinate system */
552  uint16 numVertOriginYMetrics; /* exceptions to the above, elements in following array */
553 };
554 
555 struct feat_name {
556  int strid;
557  struct macname *mn, *smn;
558 };
559 
560 struct other_names {
561  int strid;
562  struct macname *mn;
563  struct other_names *next;
564 };
565 
566 struct alltabs {
567  struct tabdir tabdir;
568  struct head head;
569  struct hhead hhead;
570  struct hhead vhead;
571  struct maxp maxp;
572  struct os2 os2;
573  struct vorg vorg;
575  int localen;
577  int namelen;
579  int postlen;
580  FILE *gpos; /* Used instead of kern for opentype (and other glyph positioning) */
581  int gposlen;
582  FILE *gsub; /* Used for ligatures and other substitutions */
583  int gsublen;
584  FILE *gdef; /* If we use mark to base we need this to tell the text processor what things are marks (the opentype docs say it is optional. They are wrong) */
585  int gdeflen;
587  int kernlen;
589  int cmaplen;
591  int headlen;
593  int hheadlen;
595  int maxplen;
597  int os2len;
599  int mathlen;
601  int baselen;
603  int jstflen;
605  int cvtlen;
606  FILE *fpgmf; /* Copied from an original ttf file and dumped out. Never generated */
607  int fpgmlen;
608  FILE *prepf; /* Copied from an original ttf file and dumped out. Never generated */
609  int preplen;
611  int vheadlen;
613  int vorglen;
615  int gasplen;
617  int cfflen;
623  FILE *private;
627  FILE *bdat; /* might be EBDT */
628  int bdatlen;
629  FILE *bloc; /* might be EBLC */
630  int bloclen;
632  int ebsclen;
634  int proplen;
636  int opbdlen;
638  int acntlen;
640  int lcarlen;
642  int featlen;
644  int morxlen;
646  int bslnlen;
648  int pfedlen;
650  int texlen;
652  int bdflen;
654  int gvarlen;
656  int fvarlen;
658  int cvarlen;
660  int avarlen;
662  int fftmlen;
664  int dsiglen;
666  int hdmxlen;
668  int sidcnt;
669  int lenpos;
671  unsigned int sidlongoffset: 1;
672  unsigned int cfflongoffset: 1;
673  unsigned int applemode: 1; /* Where apple & ms differ do things apple's way (bitmaps, name table PostScript) */
674  unsigned int opentypemode: 1; /* Where apple & ms differ do things opentype's way (bitmaps, name table PostScript) */
675  /* If both are set then try to generate both types of tables. Some things can't be fudged though (name table postscript) */
676  unsigned int msbitmaps: 1;
677  unsigned int applebitmaps: 1;
678  unsigned int otbbitmaps: 1;
679  unsigned int isotf: 1;
680  unsigned int dovariations: 1; /* Output Apple *var tables (for mm fonts) */
681  unsigned int error: 1;
682  struct glyphinfo gi;
683  int isfixed;
684  struct fd2data *fds;
686 
689  struct macname2 *ordered_feat;
690 
691  int next_lookup; /* for doing nested lookups in contextual features */
692  short *gn_sid;
693  enum fontformat format;
694  int fontstyle_name_strid; /* For GPOS 'size' */
697  struct ttf_table *oldcvt;
698  unsigned oldcvtlen;
699 };
700 
701 struct subhead { uint16 first, cnt, delta, rangeoff; }; /* a sub header in 8/16 cmap table */
702 
703 enum touchflags { tf_x=1, tf_y=2, tf_d=4, tf_endcontour=0x80, tf_startcontour=0x40 };
704 
705 struct ct_branch {
708 };
709 
710 struct ct_subs {
711  struct fpst_rule *rule;
712  struct contexttree *branch;/* if the rule ends here this will be null */
714 };
715 
716 struct contexttree {
717  int depth;
718  int branch_cnt; /* count of subbranches of this node */
721  int rule_cnt; /* count of rules which are active here */
722  struct ct_subs *rules;
730 };
731 
732  /* TrueType Composite glyph flags */
733 #define _ARGS_ARE_WORDS 1
734 #define _ARGS_ARE_XY 2
735 #define _ROUND 4 /* round offsets so componant is on grid */
736 #define _SCALE 8
737 /* 0x10 is reserved */
738 #define _MORE 0x20
739 #define _XY_SCALE 0x40
740 #define _MATRIX 0x80
741 #define _INSTR 0x100
742 #define _USE_MY_METRICS 0x200
743 #define _OVERLAP_COMPOUND 0x400 /* Used in Apple GX fonts */
744  /* Means the components overlap (which? this one and what other?) */
745 /* Described in OpenType specs, not by Apple */
746 /* amusingly, Apple supports but MS does not */
747 /* MS says they support this after Win 2000 */
748 #define _SCALED_OFFSETS 0x800 /* Use Apple definition of offset interpretation */
749 #define _UNSCALED_OFFSETS 0x1000 /* Use MS definition */
750 
751 extern int ttfFixupRef(SplineChar **chars,int i);
752 extern const char *cffnames[];
753 extern const int nStdStrings;
754 
755  /* Open type Advanced Typography Tables */
756 extern void otf_dumpgpos(struct alltabs *at, SplineFont *sf);
757 extern void otf_dumpgsub(struct alltabs *at, SplineFont *sf);
758 extern void otf_dumpgdef(struct alltabs *at, SplineFont *sf);
759 extern void otf_dumpbase(struct alltabs *at, SplineFont *sf);
760 extern void otf_dumpjstf(struct alltabs *at, SplineFont *sf);
761 extern void otf_dump_dummydsig(struct alltabs *at, SplineFont *sf);
762 extern int gdefclass(SplineChar *sc);
763 
764 extern void ttf_dumpkerns(struct alltabs *at, SplineFont *sf);
765 extern void aat_dumplcar(struct alltabs *at, SplineFont *sf);
766 extern void aat_dumpmorx(struct alltabs *at, SplineFont *sf);
767 extern void aat_dumpopbd(struct alltabs *at, SplineFont *sf);
768 extern void aat_dumpprop(struct alltabs *at, SplineFont *sf);
769 extern void aat_dumpbsln(struct alltabs *at, SplineFont *sf);
770 extern int LookupHasDefault(OTLookup *otl);
771 extern int scriptsHaveDefault(struct scriptlanglist *sl);
772 extern int FPSTisMacable(SplineFont *sf, FPST *fpst);
773 
774 extern int OTTagToMacFeature(uint32 tag, int *featureType,int *featureSetting);
775 extern uint16 *props_array(SplineFont *sf,struct glyphinfo *gi);
776 extern int haslrbounds(SplineChar *sc, PST **left, PST **right);
777 extern int16 *PerGlyphDefBaseline(SplineFont *sf,int *def_baseline);
778 extern void FigureBaseOffsets(SplineFont *sf,int def_bsln,int offsets[32]);
779 
780  /* Apple variation tables */
781 extern int ContourPtNumMatch(MMSet *mm, int gid);
782 extern int16 **SCFindDeltas(MMSet *mm, int gid, int *_ptcnt);
783 extern int16 **CvtFindDeltas(MMSet *mm, int *_ptcnt);
784 extern void ttf_dumpvariations(struct alltabs *at, SplineFont *sf);
785 
786 extern struct macsettingname {
791 
792  /* TrueType instructions */
793 extern struct ttf_table *SFFindTable(SplineFont *sf,uint32 tag);
794 
795 extern int memushort(uint8 *data,int table_len, int offset);
796 extern void memputshort(uint8 *data,int offset,uint16 val);
797 extern int TTF__getcvtval(SplineFont *sf,int val);
798 extern int TTF_getcvtval(SplineFont *sf,int val);
799 
800 extern int SSAddPoints(SplineSet *ss,int ptcnt,BasePoint *bp, char *flags);
801 extern int Macable(SplineFont *sf, OTLookup *otl);
802 
803  /* Used by both otf and apple */
804 extern int LigCaretCnt(SplineChar *sc);
805 extern uint16 *ClassesFromNames(SplineFont *sf,char **classnames,int class_cnt,
806  int numGlyphs, SplineChar ***glyphs, int apple_kc);
808 
809 
811  struct glyphinfo *gi);
812 extern void AnchorClassDecompose(SplineFont *sf,AnchorClass *_ac, int classcnt, int *subcnts,
813  SplineChar ***marks,SplineChar ***base,
814  SplineChar ***lig,SplineChar ***mkmk,
815  struct glyphinfo *gi);
816 
817 extern void cvt_unix_to_1904( long long time, int32 result[2]);
818 
819 
820  /* Non-standard tables */
821  /* My PfEd table for FontForge/PfaEdit specific info */
822 extern void pfed_dump(struct alltabs *at, SplineFont *sf);
823 extern void pfed_read(FILE *ttf,struct ttfinfo *info);
824  /* The TeX table, to contain stuff the TeX people want */
825 extern void tex_dump(struct alltabs *at, SplineFont *sf);
826 extern void tex_read(FILE *ttf,struct ttfinfo *info);
827 
828 extern void ttf_bdf_read(FILE *ttf,struct ttfinfo *info);
829  /* The FFTM table, to some timestamps I'd like */
830 extern int ttf_fftm_dump(SplineFont *sf,struct alltabs *at);
831 
832  /* The MATH table */
833 extern void otf_dump_math(struct alltabs *at, SplineFont *sf);
834 
835 /* Known font parameters for 'TeX ' table (fontdims, spacing params, whatever you want to call them) */
836  /* Used by all fonts */
837 #define TeX_Slant CHR('S','l','n','t')
838 #define TeX_Space CHR('S','p','a','c')
839 #define TeX_Stretch CHR('S','t','r','e')
840 #define TeX_Shrink CHR('S','h','n','k')
841 #define TeX_XHeight CHR('X','H','g','t')
842 #define TeX_Quad CHR('Q','u','a','d')
843  /* Used by text fonts */
844 #define TeX_ExtraSp CHR('E','x','S','p')
845  /* Used by all math fonts */
846 #define TeX_MathSp CHR('M','t','S','p')
847  /* Used by math fonts */
848 #define TeX_Num1 CHR('N','u','m','1')
849 #define TeX_Num2 CHR('N','u','m','2')
850 #define TeX_Num3 CHR('N','u','m','3')
851 #define TeX_Denom1 CHR('D','n','m','1')
852 #define TeX_Denom2 CHR('D','n','m','2')
853 #define TeX_Sup1 CHR('S','u','p','1')
854 #define TeX_Sup2 CHR('S','u','p','2')
855 #define TeX_Sup3 CHR('S','u','p','3')
856 #define TeX_Sub1 CHR('S','u','b','1')
857 #define TeX_Sub2 CHR('S','u','b','2')
858 #define TeX_SupDrop CHR('S','p','D','p')
859 #define TeX_SubDrop CHR('S','b','D','p')
860 #define TeX_Delim1 CHR('D','l','m','1')
861 #define TeX_Delim2 CHR('D','l','m','2')
862 #define TeX_AxisHeight CHR('A','x','H','t')
863  /* Used by math extension fonts */
864 #define TeX_DefRuleThick CHR('R','l','T','k')
865 #define TeX_BigOpSpace1 CHR('B','O','S','1')
866 #define TeX_BigOpSpace2 CHR('B','O','S','2')
867 #define TeX_BigOpSpace3 CHR('B','O','S','3')
868 #define TeX_BigOpSpace4 CHR('B','O','S','4')
869 #define TeX_BigOpSpace5 CHR('B','O','S','5')
870 
871 extern void SFDummyUpCIDs(struct glyphinfo *gi,SplineFont *sf);
bp
Definition: action.c:1035
#define sc
Definition: aptex-macros.h:57
void glyphs(int opcode)
Definition: disdvi.c:775
double real
Definition: dvips.h:66
#define info
Definition: dviinfo.c:42
struct rect data
Definition: dvipdfm.c:64
int base
Definition: gsftopk.c:1502
small capitals from c petite p scientific i
Definition: afcover.h:80
@ right
Definition: annotate.c:15
unsigned short uint16
Definition: tiff.h:62
short int16
Definition: tiff.h:61
unsigned long uint32
Definition: tiff.h:68
long int32
Definition: tiff.h:67
unsigned char uint8
Definition: tiff.h:60
list names
Definition: fc-lang.py:151
static int offset
Definition: ppmtogif.c:642
time_t time()
#define flags
fontformat
Definition: splinefont.h:1953
openflags
Definition: splinefont.h:1914
uni_interp
Definition: splinefont.h:893
void otf_dumpgpos(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:3142
int16 * PerGlyphDefBaseline(SplineFont *sf, int *def_baseline)
Definition: tottfaat.c:2249
int scriptsHaveDefault(struct scriptlanglist *sl)
Definition: tottfaat.c:2497
int OTTagToMacFeature(uint32 tag, int *featureType, int *featureSetting)
Definition: tottfaat.c:2425
uint16 * ClassesFromNames(SplineFont *sf, char **classnames, int class_cnt, int numGlyphs, SplineChar ***glyphs, int apple_kc)
Definition: tottfgpos.c:1210
int SSAddPoints(SplineSet *ss, int ptcnt, BasePoint *bp, char *flags)
Definition: tottf.c:772
SplineChar ** EntryExitDecompose(SplineFont *sf, AnchorClass *ac, struct glyphinfo *gi)
Definition: tottfgpos.c:411
int ttf_fftm_dump(SplineFont *sf, struct alltabs *at)
Definition: ttfspecial.c:2069
void tex_dump(struct alltabs *at, SplineFont *sf)
Definition: ttfspecial.c:1776
void pfed_read(FILE *ttf, struct ttfinfo *info)
Definition: ttfspecial.c:1536
void otf_dump_dummydsig(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:4591
void pfed_dump(struct alltabs *at, SplineFont *sf)
Definition: ttfspecial.c:817
const char * cffnames[]
Definition: parsettf.c:97
int LookupHasDefault(OTLookup *otl)
Definition: tottfaat.c:2511
void aat_dumplcar(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:429
int haslrbounds(SplineChar *sc, PST **left, PST **right)
Definition: tottfaat.c:1969
int TTF_getcvtval(SplineFont *sf, int val)
void otf_dumpgsub(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:3159
int ttfFixupRef(SplineChar **chars, int i)
Definition: parsettf.c:5290
touchflags
Definition: ttf.h:703
@ tf_d
Definition: ttf.h:703
@ tf_startcontour
Definition: ttf.h:703
@ tf_y
Definition: ttf.h:703
@ tf_endcontour
Definition: ttf.h:703
@ tf_x
Definition: ttf.h:703
void tex_read(FILE *ttf, struct ttfinfo *info)
Definition: ttfspecial.c:1881
uint16 * props_array(SplineFont *sf, struct glyphinfo *gi)
Definition: tottfaat.c:2075
void SFDummyUpCIDs(struct glyphinfo *gi, SplineFont *sf)
Definition: tottf.c:1303
void FigureBaseOffsets(SplineFont *sf, int def_bsln, int offsets[32])
Definition: tottfaat.c:2310
SplineChar ** SFGlyphsFromNames(SplineFont *sf, char *names)
Definition: tottfgpos.c:544
struct macsettingname macfeat_otftag[]
struct ttf_table * SFFindTable(SplineFont *sf, uint32 tag)
#define MAX_TAB
Definition: ttf.h:333
void otf_dumpjstf(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:4451
void otf_dumpbase(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:4143
void otf_dumpgdef(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:3321
void AnchorClassDecompose(SplineFont *sf, AnchorClass *_ac, int classcnt, int *subcnts, SplineChar ***marks, SplineChar ***base, SplineChar ***lig, SplineChar ***mkmk, struct glyphinfo *gi)
Definition: tottfgpos.c:334
void memputshort(uint8 *data, int offset, uint16 val)
Definition: parsettfatt.c:39
void cvt_unix_to_1904(long long time, int32 result[2])
Definition: tottf.c:2629
int FPSTisMacable(SplineFont *sf, FPST *fpst)
Definition: asmfpst.c:386
void aat_dumpopbd(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:1989
int TTF__getcvtval(SplineFont *sf, int val)
void aat_dumpbsln(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:2346
const int nStdStrings
Definition: parsettf.c:491
gsub_inusetype
Definition: ttf.h:62
@ git_normal
Definition: ttf.h:62
@ git_justinuse
Definition: ttf.h:62
@ git_findnames
Definition: ttf.h:62
void aat_dumpprop(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:2175
void ttf_bdf_read(FILE *ttf, struct ttfinfo *info)
Definition: ttfspecial.c:2000
int16 ** CvtFindDeltas(MMSet *mm, int *_ptcnt)
Definition: tottfvar.c:425
int gdefclass(SplineChar *sc)
Definition: tottfgpos.c:3284
void ttf_dumpvariations(struct alltabs *at, SplineFont *sf)
Definition: tottfvar.c:807
int memushort(uint8 *data, int table_len, int offset)
Definition: parsettfatt.c:29
int16 ** SCFindDeltas(MMSet *mm, int gid, int *_ptcnt)
Definition: tottfvar.c:323
void aat_dumpmorx(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:1887
int ContourPtNumMatch(MMSet *mm, int gid)
Definition: tottfvar.c:243
struct macsettingname * user_macfeat_otftag[]
void otf_dump_math(struct alltabs *at, SplineFont *sf)
Definition: tottfgpos.c:3923
int LigCaretCnt(SplineChar *sc)
Definition: tottfgpos.c:3172
int Macable(SplineFont *sf, OTLookup *otl)
Definition: tottfaat.c:1411
void ttf_dumpkerns(struct alltabs *at, SplineFont *sf)
Definition: tottfaat.c:348
Definition: ttf.h:566
int hdmxlen
Definition: ttf.h:666
unsigned int msbitmaps
Definition: ttf.h:676
FILE * hheadf
Definition: ttf.h:592
int hheadlen
Definition: ttf.h:593
unsigned int otbbitmaps
Definition: ttf.h:678
struct hhead vhead
Definition: ttf.h:570
SplineFont * sf
Definition: ttf.h:695
FILE * prop
Definition: ttf.h:633
FILE * fpgmf
Definition: ttf.h:606
FILE * loca
Definition: ttf.h:574
FILE * cmap
Definition: ttf.h:588
int gsublen
Definition: ttf.h:583
unsigned int error
Definition: ttf.h:681
FILE * vorgf
Definition: ttf.h:612
unsigned int opentypemode
Definition: ttf.h:674
int vorglen
Definition: ttf.h:613
FILE * base
Definition: ttf.h:600
int os2len
Definition: ttf.h:597
FILE * charstrings
Definition: ttf.h:624
EncMap * map
Definition: ttf.h:696
int jstflen
Definition: ttf.h:603
int isfixed
Definition: ttf.h:683
FILE * dsigf
Definition: ttf.h:663
FILE * vheadf
Definition: ttf.h:610
FILE * cfff
Definition: ttf.h:616
int bdatlen
Definition: ttf.h:628
FILE * math
Definition: ttf.h:598
int nomwid
Definition: ttf.h:667
int fftmlen
Definition: ttf.h:662
unsigned int applemode
Definition: ttf.h:673
FILE * fdselect
Definition: ttf.h:625
FILE * opbd
Definition: ttf.h:635
int defwid
Definition: ttf.h:667
int cmaplen
Definition: ttf.h:589
FILE * bsln
Definition: ttf.h:645
FILE * fftmf
Definition: ttf.h:661
int namelen
Definition: ttf.h:577
int dsiglen
Definition: ttf.h:664
unsigned oldcvtlen
Definition: ttf.h:698
int bloclen
Definition: ttf.h:630
struct glyphinfo gi
Definition: ttf.h:682
int texlen
Definition: ttf.h:650
FILE * cvar
Definition: ttf.h:657
int headlen
Definition: ttf.h:591
int maxplen
Definition: ttf.h:595
struct feat_name * feat_name
Definition: ttf.h:687
FILE * tex
Definition: ttf.h:649
FILE * acnt
Definition: ttf.h:637
int bdflen
Definition: ttf.h:652
FILE * cvtf
Definition: ttf.h:604
unsigned int isotf
Definition: ttf.h:679
int baselen
Definition: ttf.h:601
int sidcnt
Definition: ttf.h:668
int opbdlen
Definition: ttf.h:636
int cvtlen
Definition: ttf.h:605
int postlen
Definition: ttf.h:579
FILE * bdat
Definition: ttf.h:627
FILE * charset
Definition: ttf.h:620
FILE * hdmxf
Definition: ttf.h:665
FILE * gsub
Definition: ttf.h:582
int gasplen
Definition: ttf.h:615
int cvarlen
Definition: ttf.h:658
int bslnlen
Definition: ttf.h:646
FILE * post
Definition: ttf.h:578
FILE * morx
Definition: ttf.h:643
FILE * maxpf
Definition: ttf.h:594
int next_lookup
Definition: ttf.h:691
int privatelen
Definition: ttf.h:670
FILE * kern
Definition: ttf.h:586
struct fd2data * fds
Definition: ttf.h:684
unsigned int cfflongoffset
Definition: ttf.h:672
int fvarlen
Definition: ttf.h:656
int lcarlen
Definition: ttf.h:640
int preplen
Definition: ttf.h:609
int fontstyle_name_strid
Definition: ttf.h:694
FILE * gaspf
Definition: ttf.h:614
int vheadlen
Definition: ttf.h:611
int kernlen
Definition: ttf.h:587
unsigned int applebitmaps
Definition: ttf.h:677
FILE * name
Definition: ttf.h:576
int gdeflen
Definition: ttf.h:585
int gvarlen
Definition: ttf.h:654
FILE * jstf
Definition: ttf.h:602
int acntlen
Definition: ttf.h:638
FILE * bloc
Definition: ttf.h:629
int ebsclen
Definition: ttf.h:632
struct macname2 * ordered_feat
Definition: ttf.h:689
FILE * sidf
Definition: ttf.h:618
int gposlen
Definition: ttf.h:581
int mathlen
Definition: ttf.h:599
int featlen
Definition: ttf.h:642
FILE * sidh
Definition: ttf.h:619
int proplen
Definition: ttf.h:634
FILE * pfed
Definition: ttf.h:647
FILE * headf
Definition: ttf.h:590
unsigned int dovariations
Definition: ttf.h:680
struct ttf_table * oldcvt
Definition: ttf.h:697
FILE * gvar
Definition: ttf.h:653
short * gn_sid
Definition: ttf.h:692
FILE * lcar
Definition: ttf.h:639
struct other_names * other_names
Definition: ttf.h:688
int fpgmlen
Definition: ttf.h:607
int morxlen
Definition: ttf.h:644
FILE * avar
Definition: ttf.h:659
FILE * globalsubrs
Definition: ttf.h:622
FILE * encoding
Definition: ttf.h:621
FILE * feat
Definition: ttf.h:641
FILE * gdef
Definition: ttf.h:584
enum fontformat format
Definition: ttf.h:693
unsigned int sidlongoffset
Definition: ttf.h:671
FILE * fdarray
Definition: ttf.h:626
FILE * fvar
Definition: ttf.h:655
int pfedlen
Definition: ttf.h:648
int cfflen
Definition: ttf.h:617
int avarlen
Definition: ttf.h:660
int lenpos
Definition: ttf.h:669
int localen
Definition: ttf.h:575
FILE * bdf
Definition: ttf.h:651
FILE * os2f
Definition: ttf.h:596
FILE * ebsc
Definition: ttf.h:631
FILE * gpos
Definition: ttf.h:580
FILE * prepf
Definition: ttf.h:608
int next_strid
Definition: ttf.h:685
int state
Definition: ttf.h:728
int rule_cnt
Definition: ttf.h:721
OTLookup * applycursubs
Definition: ttf.h:725
OTLookup * applymarkedsubs
Definition: ttf.h:724
uint8 markme
Definition: ttf.h:727
int depth
Definition: ttf.h:717
int pending_pos
Definition: ttf.h:723
int next_state
Definition: ttf.h:728
struct ct_branch * branches
Definition: ttf.h:719
struct fpst_rule * ends_here
Definition: ttf.h:720
uint16 marked_index
Definition: ttf.h:726
struct ct_subs * rules
Definition: ttf.h:722
uint16 cur_index
Definition: ttf.h:726
struct contexttree * parent
Definition: ttf.h:729
int branch_cnt
Definition: ttf.h:718
Definition: ttf.h:705
struct contexttree * branch
Definition: ttf.h:707
uint16 classnum
Definition: ttf.h:706
Definition: ttf.h:710
struct fpst_rule * rule
Definition: ttf.h:711
uint16 thisclassnum
Definition: ttf.h:713
struct contexttree * branch
Definition: ttf.h:712
Definition: ttf.h:555
int strid
Definition: ttf.h:556
struct macname * mn
Definition: ttf.h:557
struct macname * smn
Definition: ttf.h:557
Definition: ttf.h:346
int16 ymin
Definition: ttf.h:349
int16 numContours
Definition: ttf.h:347
int16 ymax
Definition: ttf.h:351
int16 xmin
Definition: ttf.h:348
int16 xmax
Definition: ttf.h:350
int vfullcnt
Definition: ttf.h:532
FILE * glyphs
Definition: ttf.h:521
int gcnt
Definition: ttf.h:544
int lastvwidth
Definition: ttf.h:531
int ymin
Definition: ttf.h:528
int fixed_width
Definition: ttf.h:534
BlueData bd
Definition: ttf.h:529
int strikecnt
Definition: ttf.h:530
int lasthwidth
Definition: ttf.h:531
int flags
Definition: ttf.h:533
int32 * bsizes
Definition: ttf.h:535
unsigned int is_ttf
Definition: ttf.h:539
uint32 * loca
Definition: ttf.h:520
FILE * hmtx
Definition: ttf.h:522
int hmtxlen
Definition: ttf.h:523
int * bygid
Definition: ttf.h:543
unsigned int dovariations
Definition: ttf.h:536
int next_glyph
Definition: ttf.h:526
SplineFont * sf
Definition: splinesave.c:122
struct maxp * maxp
Definition: ttf.h:519
unsigned int has_instrs
Definition: ttf.h:538
unsigned int onlybitmaps
Definition: ttf.h:537
int xmin
Definition: ttf.h:528
int vmtxlen
Definition: ttf.h:525
unsigned int ttc_composite_font
Definition: ttf.h:540
int ymax
Definition: ttf.h:528
int xmax
Definition: ttf.h:528
int32 * pointcounts
Definition: ttf.h:542
int hfullcnt
Definition: ttf.h:532
FILE * vmtx
Definition: ttf.h:524
int glyph_len
Definition: ttf.h:527
Definition: ttf.h:354
uint16 lowestreadable
Definition: ttf.h:368
int16 locais32
Definition: ttf.h:370
int32 createtime[2]
Definition: ttf.h:361
int16 glyphformat
Definition: ttf.h:371
uint16 emunits
Definition: ttf.h:360
int16 xmax
Definition: ttf.h:365
int32 modtime[2]
Definition: ttf.h:362
int32 revision
Definition: ttf.h:356
uint32 checksumAdj
Definition: ttf.h:357
uint16 macstyle
Definition: ttf.h:367
uint16 flags
Definition: ttf.h:359
uint16 mbz
Definition: ttf.h:372
int32 version
Definition: ttf.h:355
int16 dirhint
Definition: ttf.h:369
int16 ymin
Definition: ttf.h:364
uint32 magicNum
Definition: ttf.h:358
int16 ymax
Definition: ttf.h:366
int16 xmin
Definition: ttf.h:363
Definition: ttf.h:375
uint16 numMetrics
Definition: ttf.h:389
int16 descender
Definition: ttf.h:378
int16 metricformat
Definition: ttf.h:388
int16 linegap
Definition: ttf.h:379
int16 caretSlopeRun
Definition: ttf.h:385
int16 maxwidth
Definition: ttf.h:380
int16 ascender
Definition: ttf.h:377
int16 minrsb
Definition: ttf.h:382
int32 version
Definition: ttf.h:376
int16 mbz[5]
Definition: ttf.h:387
int16 maxextent
Definition: ttf.h:383
int16 caretSlopeRise
Definition: ttf.h:384
int16 minlsb
Definition: ttf.h:381
Definition: ttf.h:331
Definition: afm2pl.c:145
uint16 stversion
Definition: ttf.h:403
uint16 entrySel
Definition: ttf.h:408
uint16 coverage
Definition: ttf.h:405
uint16 rangeShift
Definition: ttf.h:409
uint16 version
Definition: ttf.h:400
struct kp * kerns
Definition: ttf.h:410
uint16 nPairs
Definition: ttf.h:406
uint16 length
Definition: ttf.h:404
uint16 searchRange
Definition: ttf.h:407
uint16 ntab
Definition: ttf.h:401
Definition: ttf.h:392
int16 offset
Definition: ttf.h:396
uint16 left
Definition: ttf.h:393
uint16 right
Definition: ttf.h:394
Definition: afm2pl.c:139
Definition: ttf.h:64
struct macname * head
Definition: ttf.h:66
struct macname * last
Definition: ttf.h:66
int id
Definition: ttf.h:65
struct macidname * next
Definition: ttf.h:67
uint32 otf_tag
Definition: ttf.h:789
int mac_feature_setting
Definition: ttf.h:788
int mac_feature_type
Definition: ttf.h:787
Definition: ttf.h:413
uint16 maxZones
Definition: ttf.h:420
uint16 maxStack
Definition: ttf.h:425
uint16 maxFDEFs
Definition: ttf.h:423
uint16 maxCompositPts
Definition: ttf.h:418
int32 version
Definition: ttf.h:414
uint16 maxStorage
Definition: ttf.h:422
uint16 maxTwilightPts
Definition: ttf.h:421
uint16 maxPoints
Definition: ttf.h:416
uint16 maxnumcomponents
Definition: ttf.h:427
uint16 maxCompositCtrs
Definition: ttf.h:419
uint16 maxcomponentdepth
Definition: ttf.h:428
uint16 numGlyphs
Definition: ttf.h:415
uint16 maxglyphInstr
Definition: ttf.h:426
uint16 maxContours
Definition: ttf.h:417
uint16 maxIDEFs
Definition: ttf.h:424
Definition: ttf.h:433
uint16 language
Definition: ttf.h:436
uint16 strlen
Definition: ttf.h:439
uint16 specific
Definition: ttf.h:435
uint16 nameid
Definition: ttf.h:437
uint16 platform
Definition: ttf.h:434
uint16 stroff
Definition: ttf.h:440
Definition: ttf.h:443
uint16 version
Definition: ttf.h:444
uint16 fsSel
Definition: ttf.h:489
int v3_avgCharWid
Definition: ttf.h:515
short breakChar
Definition: ttf.h:509
int16 ysupXOff
Definition: ttf.h:457
int16 fstype
Definition: ttf.h:450
int16 ysubXSize
Definition: ttf.h:451
uint16 widthClass
Definition: ttf.h:449
int16 yStrikeoutPos
Definition: ttf.h:460
short xHeight
Definition: ttf.h:506
uint16 lastcharindex
Definition: ttf.h:496
int16 ysupXSize
Definition: ttf.h:455
short capHeight
Definition: ttf.h:507
int16 ysubXOff
Definition: ttf.h:453
int16 sFamilyClass
Definition: ttf.h:461
int v1_avgCharWid
Definition: ttf.h:514
uint16 descender
Definition: ttf.h:498
int16 yStrikeoutSize
Definition: ttf.h:459
int16 ysubYOff
Definition: ttf.h:454
uint16 firstcharindex
Definition: ttf.h:495
uint16 weightClass
Definition: ttf.h:446
short defChar
Definition: ttf.h:508
char panose[10]
Definition: ttf.h:484
int16 ysubYSize
Definition: ttf.h:452
uint32 ulCodePage[2]
Definition: ttf.h:502
int16 ysupYOff
Definition: ttf.h:458
short maxContext
Definition: ttf.h:510
uint16 windescent
Definition: ttf.h:501
int16 ysupYSize
Definition: ttf.h:456
uint16 linegap
Definition: ttf.h:499
char achVendID[4]
Definition: ttf.h:488
int16 avgCharWid
Definition: ttf.h:445
uint16 winascent
Definition: ttf.h:500
uint16 ascender
Definition: ttf.h:497
int strid
Definition: ttf.h:561
struct other_names * next
Definition: ttf.h:563
struct macname * mn
Definition: ttf.h:562
Definition: ttf.h:70
uint32 offset
Definition: ttf.h:72
uint32 tag
Definition: ttf.h:71
int len
Definition: ttf.h:73
Definition: tfmaux.c:31
Definition: ttf.h:701
uint16 rangeoff
Definition: ttf.h:701
uint16 cnt
Definition: ttf.h:701
uint16 delta
Definition: ttf.h:701
uint16 first
Definition: ttf.h:701
Definition: ttf.h:334
uint16 rangeShift
Definition: ttf.h:339
uint16 searchRange
Definition: ttf.h:337
uint16 numtab
Definition: ttf.h:336
struct taboff * alpha[48]
Definition: ttf.h:343
int32 version
Definition: ttf.h:335
uint16 entrySel
Definition: ttf.h:338
struct taboff * ordered[48]
Definition: ttf.h:342
struct taboff tabs[48]
Definition: ttf.h:340
Definition: ttf.h:323
uint32 offset
Definition: ttf.h:326
FILE * data
Definition: ttf.h:328
uint16 orderingval
Definition: ttf.h:330
uint32 checksum
Definition: ttf.h:325
uint32 tag
Definition: ttf.h:324
uint16 dup_of
Definition: ttf.h:329
uint32 length
Definition: ttf.h:327
Definition: xmlparse.c:179
Definition: ttf.h:32
float min
Definition: ttf.h:34
float * mapfrom
Definition: ttf.h:37
float max
Definition: ttf.h:34
float def
Definition: ttf.h:34
int paircount
Definition: ttf.h:36
int nameid
Definition: ttf.h:35
float * mapto
Definition: ttf.h:38
uint32 tag
Definition: ttf.h:33
Definition: ttf.h:41
int nameid
Definition: ttf.h:42
float * coords
Definition: ttf.h:43
Definition: ttf.h:76
uint32 gpos_start
Definition: ttf.h:156
KernClass * vklast
Definition: ttf.h:252
uint32 morx_start
Definition: ttf.h:222
uint32 gpos_length
Definition: ttf.h:157
BDFFont * bitmaps
Definition: ttf.h:130
char * fontlog
Definition: ttf.h:121
int glyph_cnt
Definition: ttf.h:82
char * weight
Definition: ttf.h:104
int fstype
Definition: ttf.h:112
uint32 fvar_len
Definition: ttf.h:170
unsigned int use_typo_metrics
Definition: ttf.h:92
int badgid_cnt
Definition: ttf.h:289
unsigned int weight_width_slope_only
Definition: ttf.h:93
KernClass * vkhead
Definition: ttf.h:252
uint32 gdef_length
Definition: ttf.h:154
int advanceWidthMax
Definition: ttf.h:311
struct variations * variations
Definition: ttf.h:271
char * inuse
Definition: ttf.h:136
struct gasp * gasp
Definition: ttf.h:294
uint32 fpgm_start
Definition: ttf.h:232
uint32 jstf_start
Definition: ttf.h:180
char * cidregistry
Definition: ttf.h:131
int badgid_max
Definition: ttf.h:289
uint32 cff_start
Definition: ttf.h:142
unsigned int unkcomplain
Definition: ttf.h:237
uint32 mort_start
Definition: ttf.h:221
uint32 gsub_length
Definition: ttf.h:160
long long modificationtime
Definition: ttf.h:292
unsigned int barecff
Definition: ttf.h:241
AnchorClass * alast
Definition: ttf.h:250
uint32 glyphlocations_start
Definition: ttf.h:185
uint32 cff_length
Definition: ttf.h:143
uint32 acnt_start
Definition: ttf.h:219
uint32 maxp_len
Definition: ttf.h:189
unsigned int is_ttc
Definition: ttf.h:84
uint32 encoding_start
Definition: ttf.h:145
uint32 glyph_start
Definition: ttf.h:150
enum gsub_inusetype justinuse
Definition: ttf.h:319
unsigned int one_of_many
Definition: ttf.h:234
unsigned int index_to_loc_is_long
Definition: ttf.h:83
char * chosenname
Definition: ttf.h:267
float strokewidth
Definition: ttf.h:111
uint32 fpgm_len
Definition: ttf.h:232
uint16 fontstyle_id
Definition: ttf.h:278
uint16 * bsln_values
Definition: ttf.h:259
uint16 design_range_bottom
Definition: ttf.h:280
uint32 gasp_start
Definition: ttf.h:148
unsigned int to_order2
Definition: ttf.h:89
unsigned int onlystrikes
Definition: ttf.h:239
long long creationtime
Definition: ttf.h:291
int ascent
Definition: ttf.h:78
uint32 feat_start
Definition: ttf.h:220
uint32 gvar_len
Definition: ttf.h:169
unsigned int wdthcomplain
Definition: ttf.h:242
unsigned int bbcomplain
Definition: ttf.h:243
uint32 gdef_start
Definition: ttf.h:153
int vertical_origin
Definition: ttf.h:80
unsigned int bad_cmap
Definition: ttf.h:301
SplineChar ** chars
Definition: ttf.h:123
uint32 os2_start
Definition: ttf.h:195
int mort_r2l
Definition: ttf.h:257
uint32 avar_len
Definition: ttf.h:171
uint32 gsub_start
Definition: ttf.h:159
uint32 bdf_start
Definition: ttf.h:211
int mark_class_cnt
Definition: ttf.h:282
uint32 prep_start
Definition: ttf.h:231
struct macidname * macstrids
Definition: ttf.h:272
uint32 bsln_start
Definition: ttf.h:223
struct otfname * fontstyle_name
Definition: ttf.h:279
uint32 hhea_start
Definition: ttf.h:176
uint32 base_start
Definition: ttf.h:140
unsigned int bad_ps_fontname
Definition: ttf.h:297
uint32 vhea_start
Definition: ttf.h:200
uint32 copyright_start
Definition: ttf.h:191
int layer_cnt
Definition: ttf.h:129
int descent
Definition: ttf.h:78
int mort_is_nested
Definition: ttf.h:257
char * ordering
Definition: ttf.h:131
uint32 bitmapdata_length
Definition: ttf.h:164
SplineChar ** badgids
Definition: ttf.h:290
uint32 postscript_start
Definition: ttf.h:193
int16 jstf_prio
Definition: ttf.h:317
unsigned int bad_embedded_bitmap
Definition: ttf.h:302
Justify * justify
Definition: ttf.h:309
int uwidth
Definition: ttf.h:110
uint32 tex_start
Definition: ttf.h:209
int anchor_merge_cnt
Definition: ttf.h:249
int lookup_cnt
Definition: ttf.h:269
int numtables
Definition: ttf.h:138
uint32 vs_start
Definition: ttf.h:146
unsigned int optimized_for_cleartype
Definition: ttf.h:94
unsigned int complainedbeyondglyfend
Definition: ttf.h:87
OTLookup * gsub_lookups
Definition: ttf.h:254
int16 jstf_lcnt
Definition: ttf.h:317
MacFeat * features
Definition: ttf.h:266
char * xuid
Definition: ttf.h:107
int mort_tag_mac
Definition: ttf.h:257
uint32 jstf_script
Definition: ttf.h:315
unsigned int bad_glyph_data
Definition: ttf.h:298
uint32 hmetrics_start
Definition: ttf.h:178
uint32 cvar_len
Definition: ttf.h:172
uint32 prop_start
Definition: ttf.h:216
int mort_setting
Definition: ttf.h:257
uint32 fvar_start
Definition: ttf.h:170
struct Base * vert_base
Definition: ttf.h:308
uint32 head_start
Definition: ttf.h:174
uint32 jstf_length
Definition: ttf.h:181
unsigned int bad_gx
Definition: ttf.h:303
SplineFont ** subfonts
Definition: ttf.h:135
uint32 glyph_length
Definition: ttf.h:151
uint32 maxp_start
Definition: ttf.h:188
int sfntRevision
Definition: ttf.h:96
uint32 kern_start
Definition: ttf.h:183
int upos
Definition: ttf.h:110
long ttfFileSize
Definition: ttf.h:320
char * fontname
Definition: ttf.h:106
int width_cnt
Definition: ttf.h:81
char ** mark_class_names
Definition: ttf.h:284
int feature_cnt
Definition: ttf.h:270
unsigned int onlyonestrike
Definition: ttf.h:240
OTLookup * cur_lookups
Definition: ttf.h:254
int gasp_cnt
Definition: ttf.h:293
OTLookup * gpos_lookups
Definition: ttf.h:254
ASM * sm
Definition: ttf.h:265
unsigned int comcomplain
Definition: ttf.h:238
int32 last_size_pos
Definition: ttf.h:276
short gasp_version
Definition: ttf.h:118
int supplement
Definition: ttf.h:132
OTLookup * mort_pos_lookup2
Definition: ttf.h:256
uint32 typ1_length
Definition: ttf.h:198
unsigned int bad_ot
Definition: ttf.h:304
uint32 prep_len
Definition: ttf.h:231
LayerInfo * layers
Definition: ttf.h:128
OTLookup * mort_subs_lookup
Definition: ttf.h:256
enum uni_interp uni_interp
Definition: ttf.h:115
uint32 bitmaploc_start
Definition: ttf.h:166
int uniqueid
Definition: ttf.h:108
char ** mark_sets
Definition: ttf.h:286
unsigned int cmpcomplain
Definition: ttf.h:236
unsigned int is_onebyte
Definition: ttf.h:85
int emsize
Definition: ttf.h:77
uint32 vorg_start
Definition: ttf.h:204
uint32 jstf_lang
Definition: ttf.h:316
float cidfontversion
Definition: ttf.h:133
struct ttflangname * names
Definition: ttf.h:120
int mort_feat
Definition: ttf.h:257
int savecnt
Definition: ttf.h:274
KernClass * khead
Definition: ttf.h:252
short os2_version
Definition: ttf.h:117
uint16 design_range_top
Definition: ttf.h:280
int mark_set_cnt
Definition: ttf.h:285
char * copyright
Definition: ttf.h:101
int fbb[4]
Definition: ttf.h:312
uint32 fftm_start
Definition: ttf.h:213
unsigned int bad_sfnt_header
Definition: ttf.h:306
uint32 cvar_start
Definition: ttf.h:172
int specific
Definition: ttf.h:246
uint32 cvt_len
Definition: ttf.h:230
char ** mark_classes
Definition: ttf.h:283
uint32 math_length
Definition: ttf.h:227
int mort_max
Definition: ttf.h:261
unsigned int bad_metrics
Definition: ttf.h:300
uint16 design_size
Definition: ttf.h:277
int dupnamestate
Definition: ttf.h:119
unsigned int twobytesymbol
Definition: ttf.h:86
int16 jstf_isShrink
Definition: ttf.h:317
uint32 pfed_start
Definition: ttf.h:207
uint32 math_start
Definition: ttf.h:226
int macstyle
Definition: ttf.h:268
char ** cvt_names
Definition: ttf.h:122
uint32 bitmaploc_length
Definition: ttf.h:167
struct otffeatname * feat_names
Definition: ttf.h:318
unsigned int bad_os2_version
Definition: ttf.h:305
struct ttf_table * tabs
Definition: ttf.h:263
uint32 gvar_start
Definition: ttf.h:169
unsigned int strokedfont
Definition: ttf.h:91
uint32 bitmapdata_start
Definition: ttf.h:163
unsigned int obscomplain
Definition: ttf.h:235
int isFixedPitch
Definition: ttf.h:313
Layer guidelines
Definition: ttf.h:307
uint32 opbd_start
Definition: ttf.h:218
struct fontdict * fd
Definition: ttf.h:273
struct Base * horiz_base
Definition: ttf.h:308
struct savetab * savetab
Definition: ttf.h:275
uint32 typ1_start
Definition: ttf.h:197
uint32 lcar_start
Definition: ttf.h:217
FPST * possub
Definition: ttf.h:264
uint32 g_bounds
Definition: ttf.h:161
unsigned int bad_cff
Definition: ttf.h:299
unsigned int gbbcomplain
Definition: ttf.h:244
unsigned int extensionrequested
Definition: ttf.h:88
char * familyname
Definition: ttf.h:102
int subfontcnt
Definition: ttf.h:134
char ** mark_set_names
Definition: ttf.h:287
EncMap * map
Definition: ttf.h:114
char * fontcomments
Definition: ttf.h:121
char * fullname
Definition: ttf.h:103
int anchor_class_cnt
Definition: ttf.h:248
int platform
Definition: ttf.h:246
KernClass * klast
Definition: ttf.h:252
enum openflags openflags
Definition: ttf.h:97
uint32 vmetrics_start
Definition: ttf.h:202
float italicAngle
Definition: ttf.h:109
unsigned int complainedmultname
Definition: ttf.h:90
uint8 warned_morx_out_of_bounds_glyph
Definition: ttf.h:288
uint32 loca_length
Definition: ttf.h:186
unsigned int apply_lsb
Definition: ttf.h:95
AnchorClass * ahead
Definition: ttf.h:250
uint32 cvt_start
Definition: ttf.h:230
char * version
Definition: ttf.h:105
uint16 * morx_classes
Definition: ttf.h:258
uint32 avar_start
Definition: ttf.h:171
struct MATH * math
Definition: ttf.h:295
Definition: ttf.h:46
KernClass * vkhead
Definition: ttf.h:50
KernClass * klast
Definition: ttf.h:50
float * coords
Definition: ttf.h:47
struct ttf_table * cvt
Definition: ttf.h:49
SplineChar ** chars
Definition: ttf.h:48
KernClass * vklast
Definition: ttf.h:50
KernClass * khead
Definition: ttf.h:50
Definition: strexpr.c:21
Definition: ttf.h:53
int axis_count
Definition: ttf.h:54
struct tuples * tuples
Definition: ttf.h:59
int tuple_count
Definition: ttf.h:58
int instance_count
Definition: ttf.h:56
struct taxis * axes
Definition: ttf.h:55
struct tinstance * instances
Definition: ttf.h:57
Definition: ttf.h:548
uint16 minorVersion
Definition: ttf.h:550
uint16 majorVersion
Definition: ttf.h:549
short defaultVertOriginY
Definition: ttf.h:551
uint16 numVertOriginYMetrics
Definition: ttf.h:552
#define FILE
Definition: t1stdio.h:34
#define chars