Blob


1 #include <cursor.h>
3 typedef struct Document Document;
5 struct Document {
6 char *docname;
7 int npage;
8 int fwdonly;
9 char* (*pagename)(Document*, int);
10 Image* (*drawpage)(Document*, int);
11 int (*addpage)(Document*, char*);
12 int (*rmpage)(Document*, int);
13 Biobuf *b;
14 void *extra;
15 };
17 void *emalloc(int);
18 void *erealloc(void*, int);
19 char *estrdup(char*);
20 int spawncmd(char*, char **, int, int, int);
22 int spooltodisk(uchar*, int, char**);
23 int stdinpipe(uchar*, int);
24 Document *initps(Biobuf*, int, char**, uchar*, int);
25 Document *initpdf(Biobuf*, int, char**, uchar*, int);
26 Document *initgfx(Biobuf*, int, char**, uchar*, int);
27 Document *inittroff(Biobuf*, int, char**, uchar*, int);
28 Document *initdvi(Biobuf*, int, char**, uchar*, int);
29 Document *initmsdoc(Biobuf*, int, char**, uchar*, int);
31 void viewer(Document*);
32 extern Cursor reading;
33 extern int chatty;
34 extern int goodps;
35 extern int textbits, gfxbits;
36 extern int reverse;
37 extern int clean;
38 extern int ppi;
39 extern int teegs;
40 extern int truetoboundingbox;
41 extern int wctlfd;
42 extern int resizing;
43 extern int mknewwindow;
45 void rot180(Image*);
46 Image *rot90(Image*);
47 Image *resample(Image*, Image*);
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*);
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);
75 extern int stdinfd;
76 extern int truecolor;
78 /* BUG BUG BUG BUG BUG: cannot use new draw operations in drawterm,
79 * or in vncs, and there is a bug in the kernel for copying images
80 * from cpu memory -> video memory (memmove is not being used).
81 * until all that is settled, ignore the draw operators.
82 */
83 #define drawop(a,b,c,d,e,f) draw(a,b,c,d,e)
84 #define gendrawop(a,b,c,d,e,f,g) gendraw(a,b,c,d,e,f)