1 typedef struct Document Document; 2 3 struct Document { 4 char *docname; 5 int npage; 6 int fwdonly; 7 char* (*pagename)(Document*, int); 8 Image* (*drawpage)(Document*, int); 9 int (*addpage)(Document*, char*); 10 int (*rmpage)(Document*, int); 11 Biobuf *b; 12 void *extra; 13 }; 14 15 void *emalloc(int); 16 void *erealloc(void*, int); 17 char *estrdup(char*); 18 int spawncmd(char*, char **, int, int, int); 19 20 int spooltodisk(uchar*, int, char**); 21 int stdinpipe(uchar*, int); 22 Document *initps(Biobuf*, int, char**, uchar*, int); 23 Document *initpdf(Biobuf*, int, char**, uchar*, int); 24 Document *initgfx(Biobuf*, int, char**, uchar*, int); 25 Document *inittroff(Biobuf*, int, char**, uchar*, int); 26 Document *initdvi(Biobuf*, int, char**, uchar*, int); 27 Document *initmsdoc(Biobuf*, int, char**, uchar*, int); 28 void setlabel(char *); 29 30 void viewer(Document*); 31 extern Cursor reading; 32 extern int chatty; 33 extern int goodps; 34 extern int textbits, gfxbits; 35 extern int reverse; 36 extern int clean; 37 extern int ppi; 38 extern int teegs; 39 extern int truetoboundingbox; 40 extern int wctlfd; 41 extern int resizing; 42 extern int mknewwindow; 43 44 void rot180(Image*); 45 Image *rot90(Image*); 46 Image *rot270(Image*); 47 Image *resample(Image*, Image*); 48 49 /* ghostscript interface shared by ps, pdf */ 50 typedef struct GSInfo GSInfo; 51 struct GSInfo { 52 int gsfd; 53 Biobuf gsrd; 54 int gspid; 55 int gsdfd; 56 int ppi; 57 }; 58 void waitgs(GSInfo*); 59 int gscmd(GSInfo*, char*, ...); 60 int spawngs(GSInfo*, char*); 61 void setdim(GSInfo*, Rectangle, int, int); 62 int spawnwriter(GSInfo*, Biobuf*); 63 Rectangle screenrect(void); 64 void newwin(void); 65 void zerox(void); 66 Rectangle winrect(void); 67 void resize(int, int); 68 int max(int, int); 69 int min(int, int); 70 void wexits(char*); 71 Image* xallocimage(Display*, Rectangle, ulong, int, ulong); 72 int bell(void*, char*); 73 int opentemp(char *template); 74 Image* cachedpage(Document*, int, int); 75 void cacheflush(void); 76 77 extern int stdinfd; 78 extern int truecolor; 79 80 /* BUG BUG BUG BUG BUG: cannot use new draw operations in drawterm, 81 * or in vncs, and there is a bug in the kernel for copying images 82 * from cpu memory -> video memory (memmove is not being used). 83 * until all that is settled, ignore the draw operators. 84 */ 85 #define drawop(a,b,c,d,e,f) draw(a,b,c,d,e) 86 #define gendrawop(a,b,c,d,e,f,g) gendraw(a,b,c,d,e,f) 87