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