plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

tr2post.h (2421B)


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