| #define MAXSPECHARS 512 |
| #define MAXTOKENSIZE 128 |
| #define CHARLIB "#9/troff/font/devutf/charlib" |
| |
| /* devname clashes with libc on *BSD */ |
| #define devname troff_devname |
| |
| extern int debug; |
| extern int fontsize; |
| extern int fontpos; |
| extern int resolution; /* device resolution, goobies per inch */ |
| extern int minx; /* minimum x motion */ |
| extern int miny; /* minimum y motion */ |
| extern char devname[]; |
| extern int devres; |
| extern int unitwidth; |
| extern char *printdesclang; |
| extern char *encoding; |
| extern int fontmnt; |
| extern char **fontmtab; |
| |
| extern int curtrofffontid; /* index into trofftab of current troff font */ |
| extern int troffontcnt; |
| |
| extern BOOLEAN drawflag; |
| |
| struct specname { |
| char *str; |
| struct specname *next; |
| }; |
| |
| /* character entries for special characters (those pointed |
| * to by multiple character names, e.g. \(mu for multiply. |
| */ |
| struct charent { |
| char postfontid; /* index into pfnamtab */ |
| char postcharid; /* e.g., 0x00 */ |
| short troffcharwidth; |
| char *name; |
| struct charent *next; |
| }; |
| |
| extern struct charent **build_char_list; |
| extern int build_char_cnt; |
| |
| struct pfnament { |
| char *str; |
| int used; |
| }; |
| |
| /* these entries map troff character code ranges to |
| * postscript font and character ranges. |
| */ |
| struct psfent { |
| int start; |
| int end; |
| int offset; |
| int psftid; |
| }; |
| |
| struct troffont { |
| char *trfontid; /* the common troff font name e.g., `R' */ |
| BOOLEAN special; /* flag says this is a special font. */ |
| int spacewidth; |
| int psfmapsize; |
| struct psfent *psfmap; |
| struct charent *charent[NUMOFONTS][FONTSIZE]; |
| }; |
| |
| extern struct troffont *troffontab; |
| extern struct charent spechars[]; |
| |
| /** prototypes **/ |
| void initialize(void); |
| void mountfont(int, char*); |
| int findtfn(char *, int); |
| void runeout(Rune); |
| void specialout(char *); |
| long nametorune(char *); |
| void conv(Biobuf *); |
| void hgoto(int); |
| void vgoto(int); |
| void hmot(int); |
| void vmot(int); |
| void draw(Biobuf *); |
| void devcntl(Biobuf *); |
| void notavail(char *); |
| void error(int, char *, ...); |
| void loadfont(int, char *); |
| void flushtext(void); |
| void t_charht(int); |
| void t_slant(int); |
| void startstring(void); |
| void endstring(void); |
| BOOLEAN pageon(void); |
| void setpsfont(int, int); |
| void settrfont(void); |
| int hash(char *, int); |
| BOOLEAN readDESC(void); |
| void finish(void); |
| void ps_include(Biobuf *, Biobuf *, int, int, |
| int, int, double, double, double, double, |
| double, double, double); |
| void picture(Biobuf *, char *); |
| void beginpath(char*, int); |
| void drawpath(char*, int); |