xref: /plan9/sys/src/cmd/postscript/tr2post/tr2post.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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 	int postfontid;		/* index into pfnamtab */
34 	int postcharid;		/* e.g., 0x00 */
35 	int 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 	int size;
45 	char *str;
46 	int used;
47 };
48 
49 /* these entries map troff character code ranges to
50  * postscript font and character ranges.
51  */
52 struct psfent {
53 	int start;
54 	int end;
55 	int offset;
56 	int psftid;
57 };
58 
59 struct troffont {
60 	char *trfontid;		/* the common troff font name e.g., `R' */
61 	BOOLEAN special;	/* flag says this is a special font. */
62 	int spacewidth;
63 	int psfmapsize;
64 	struct psfent *psfmap;
65 	struct charent *charent[NUMOFONTS][FONTSIZE];
66 };
67 
68 extern struct troffont *troffontab;
69 extern struct charent spechars[];
70 
71 /** prototypes **/
72 void initialize(void);
73 void mountfont(int, char*);
74 int findtfn(char *, int);
75 void runeout(Rune);
76 void specialout(char *);
77 long nametorune(char *);
78 void conv(Biobufhdr *);
79 void hgoto(int);
80 void vgoto(int);
81 void hmot(int);
82 void vmot(int);
83 void draw(Biobufhdr *);
84 void devcntl(Biobufhdr *);
85 void notavail(char *);
86 void error(int, char *, ...);
87 void loadfont(int, char *);
88 void flushtext(void);
89 void charhgt(int);
90 void t_slant(int);
91 void startstring(void);
92 void endstring(void);
93 BOOLEAN pageon(void);
94 void setpsfont(int, int);
95 void settrfont(void);
96 int hash(char *, int);
97 BOOLEAN readDESC(void);
98 void finish(void);
99 void ps_include(Biobufhdr *, Biobufhdr *, int, int,
100 	int, int, double, double, double, double,
101 	double, double, double);
102 void picture(Biobufhdr *, char *);
103