blob: ffbaea3b1698a17ce776d166d61c7c2f798811be [file] [log] [blame]
rsce86ebdc2006-06-25 23:49:25 +00001AUTOLIB(acme)
rscf3b8bf72006-05-25 06:25:28 +00002
3typedef struct Event Event;
4typedef struct Win Win;
5
6#define EVENTSIZE 256
7struct Event
8{
9 int c1;
10 int c2;
rscf3b8bf72006-05-25 06:25:28 +000011 int q0;
12 int q1;
rsce86ebdc2006-06-25 23:49:25 +000013 int oq0;
14 int oq1;
rscf3b8bf72006-05-25 06:25:28 +000015 int flag;
16 int nb;
17 int nr;
18 char text[EVENTSIZE*UTFmax+1];
19 char arg[EVENTSIZE*UTFmax+1];
20 char loc[EVENTSIZE*UTFmax+1];
21};
22
23struct Win
24{
25 int id;
26 CFid *ctl;
27 CFid *tag;
28 CFid *body;
29 CFid *addr;
30 CFid *event;
31 CFid *data;
32 CFid *xdata;
33 Channel *c; /* chan(Event) */
34 Win *next;
35 Win *prev;
36
37 /* events */
38 int nbuf;
39 char buf[1024];
40 char *bufp;
41 jmp_buf jmp;
42 Event e2;
43 Event e3;
44 Event e4;
45};
46
47Win *newwin(void);
48Win *openwin(int, CFid*);
49
50int eventfmt(Fmt*);
51int pipewinto(Win *w, char *name, int, char *fmt, ...);
52int pipetowin(Win *w, char *name, int, char *fmt, ...);
53char *sysrun(char*, ...);
54int winaddr(Win *w, char *fmt, ...);
55int winctl(Win *w, char *fmt, ...);
56int windel(Win *w, int sure);
57int winfd(Win *w, char *name, int);
58char *winmread(Win *w, char *file);
59int winname(Win *w, char *fmt, ...);
60int winprint(Win *w, char *name, char *fmt, ...);
61int winread(Win *w, char *file, void *a, int n);
62int winseek(Win *w, char *file, int n, int off);
63int winreadaddr(Win *w, uint*);
64int winreadevent(Win *w, Event *e);
65int winwrite(Win *w, char *file, void *a, int n);
66int winwriteevent(Win *w, Event *e);
67int winopenfd(Win *w, char *name, int mode);
68void windeleteall(void);
69void winfree(Win *w);
70void winclosefiles(Win *w);
71Channel *wineventchan(Win *w);
72
73void *erealloc(void*, uint);
74void *emalloc(uint);
75char *estrdup(char*);
76char *evsmprint(char*, va_list);