|
|
1.1 root 1: /*
2: *
3: * Characteristics of a font - for postprocessors. Differs some from the troff
4: * version.
5: *
6: */
7:
8: #define ALPHABET 256 /* characters in basic alphabet */
9: #define MAXCH 512
10: #define MAXFONTS 99
11:
12: /*
13: *
14: * State of a table entry in fonts[].
15: *
16: */
17:
18: #define NEWFONT 0
19: #define RELEASED 1
20: #define INMEMORY 2
21:
22: /*
23: *
24: * Flags - for setting bits in a font's flag field.
25: *
26: */
27:
28: #define USED 1
29: #define NAMED 2
30:
31: #define skipline(f) while ( getc(f) != '\n' )
32:
33: /*
34: *
35: * Data about each character on a font. Omitted the ascender/descender field.
36: * An unsigned char is good enough for the code field on PostScript printers.
37: *
38: */
39:
40: typedef struct {
41: short num; /* 0 means not on this font */
42: unsigned char wid; /* width */
43: unsigned char code; /* code for actual device. */
44: } Chwid;
45:
46: /*
47: *
48: * Font header - one for each available position.
49: *
50: */
51:
52: typedef struct {
53: char *path; /* where it came from */
54: char *name; /* as known to troff */
55: char *fontname; /* real name (e.g. Times-Roman) */
56: char state; /* NEWFONT, RELEASED, or INMEMORY */
57: char flags; /* for now just USED and NAMED */
58: char mounted; /* mounted on this many positions */
59: char specfont; /* 1 == special font */
60: short nchars; /* number of width entries for this font */
61: Chwid *wp; /* widths, etc., of the real characters */
62: } Font;
63:
64: /*
65: *
66: * Non-integer functions.
67: *
68: */
69:
70: extern char *chname();
71: extern char *strsave();
72: extern char *allocate();
73:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.