Blame


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