xref: /plan9/sys/src/cmd/postscript/tr2post/tr2post.h (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1 #define MAXSPECHARS 	512
2 #define MAXTOKENSIZE	128
3 #define CHARLIB	"/sys/lib/troff/font/devutf/charlib"
4 
5 extern int debug;
6 extern int fontsize;
7 extern int fontpos;
8 extern int resolution;	/* device resolution, goobies per inch */
9 extern int minx;		/* minimum x motion */
10 extern int miny;		/* minimum y motion */
11 extern char devname[];
12 extern int devres;
13 extern int unitwidth;
14 extern char *printdesclang;
15 extern char *encoding;
16 extern int fontmnt;
17 extern char **fontmtab;
18 
19 extern int curtrofffontid;	/* index into trofftab of current troff font */
20 extern int troffontcnt;
21 
22 extern BOOLEAN drawflag;
23 
24 struct specname {
25 	char *str;
26 	struct specname *next;
27 };
28 
29 /* character entries for special characters (those pointed
30  * to by multiple character names, e.g. \(mu for multiply.
31  */
32 struct charent {
33 	char postfontid;	/* index into pfnamtab */
34 	char postcharid;	/* e.g., 0x00 */
35 	short troffcharwidth;
36 	char *name;
37 	struct charent *next;
38 };
39 
40 extern struct charent **build_char_list;
41 extern int build_char_cnt;
42 
43 struct pfnament {
44 	char *str;
45 	int used;
46 };
47 
48 /* these entries map troff character code ranges to
49  * postscript font and character ranges.
50  */
51 struct psfent {
52 	int start;
53 	int end;
54 	int offset;
55 	int psftid;
56 };
57 
58 struct troffont {
59 	char *trfontid;		/* the common troff font name e.g., `R' */
60 	BOOLEAN special;	/* flag says this is a special font. */
61 	int spacewidth;
62 	int psfmapsize;
63 	struct psfent *psfmap;
64 	struct charent *charent[NUMOFONTS][FONTSIZE];
65 };
66 
67 extern struct troffont *troffontab;
68 extern struct charent spechars[];
69 
70 /** prototypes **/
71 void initialize(void);
72 void mountfont(int, char*);
73 int findtfn(char *, int);
74 void runeout(Rune);
75 void specialout(char *);
76 long nametorune(char *);
77 void conv(Biobufhdr *);
78 void hgoto(int);
79 void vgoto(int);
80 void hmot(int);
81 void vmot(int);
82 void draw(Biobufhdr *);
83 void devcntl(Biobufhdr *);
84 void notavail(char *);
85 void error(int, char *, ...);
86 void loadfont(int, char *);
87 void flushtext(void);
88 void t_charht(int);
89 void t_slant(int);
90 void startstring(void);
91 void endstring(void);
92 BOOLEAN pageon(void);
93 void setpsfont(int, int);
94 void settrfont(void);
95 int hash(char *, int);
96 BOOLEAN readDESC(void);
97 void finish(void);
98 void ps_include(Biobufhdr *, Biobufhdr *, int, int,
99 	int, int, double, double, double, double,
100 	double, double, double);
101 void picture(Biobufhdr *, char *);
102 void beginpath(char*, int);
103 void drawpath(char*, int);
104