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