AUTOLIB(acme) typedef struct Event Event; typedef struct Win Win; #define EVENTSIZE 256 struct Event { int c1; int c2; int q0; int q1; int oq0; int oq1; int flag; int nb; int nr; char text[EVENTSIZE*UTFmax+1]; char arg[EVENTSIZE*UTFmax+1]; char loc[EVENTSIZE*UTFmax+1]; }; struct Win { int id; CFid *ctl; CFid *tag; CFid *body; CFid *addr; CFid *event; CFid *data; CFid *xdata; Channel *c; /* chan(Event) */ Win *next; Win *prev; /* events */ int nbuf; char buf[1024]; char *bufp; jmp_buf jmp; Event e2; Event e3; Event e4; }; Win *newwin(void); Win *openwin(int, CFid*); int eventfmt(Fmt*); int pipewinto(Win *w, char *name, int, char *fmt, ...); int pipetowin(Win *w, char *name, int, char *fmt, ...); char *sysrun(char*, ...); int winaddr(Win *w, char *fmt, ...); int winctl(Win *w, char *fmt, ...); int windel(Win *w, int sure); int winfd(Win *w, char *name, int); char *winmread(Win *w, char *file); int winname(Win *w, char *fmt, ...); int winprint(Win *w, char *name, char *fmt, ...); int winread(Win *w, char *file, void *a, int n); int winseek(Win *w, char *file, int n, int off); int winreadaddr(Win *w, uint*); int winreadevent(Win *w, Event *e); int winwrite(Win *w, char *file, void *a, int n); int winwriteevent(Win *w, Event *e); int winopenfd(Win *w, char *name, int mode); void windeleteall(void); void winfree(Win *w); void winclosefiles(Win *w); Channel *wineventchan(Win *w); void *erealloc(void*, uint); void *emalloc(uint); char *estrdup(char*); char *evsmprint(char*, va_list);