1*9a747e4fSDavid du Colombier enum 2*9a747e4fSDavid du Colombier { 3*9a747e4fSDavid du Colombier False, 4*9a747e4fSDavid du Colombier True, 5*9a747e4fSDavid du Colombier EVENTSIZE=256, 6*9a747e4fSDavid du Colombier }; 7*9a747e4fSDavid du Colombier 8*9a747e4fSDavid du Colombier 9*9a747e4fSDavid du Colombier typedef struct Event Event; 10*9a747e4fSDavid du Colombier struct Event 11*9a747e4fSDavid du Colombier { 12*9a747e4fSDavid du Colombier int c1; 13*9a747e4fSDavid du Colombier int c2; 14*9a747e4fSDavid du Colombier int q0; 15*9a747e4fSDavid du Colombier int q1; 16*9a747e4fSDavid du Colombier int flag; 17*9a747e4fSDavid du Colombier int nb; 18*9a747e4fSDavid du Colombier int nr; 19*9a747e4fSDavid du Colombier char b[EVENTSIZE*UTFmax+1]; 20*9a747e4fSDavid du Colombier Rune r[EVENTSIZE+1]; 21*9a747e4fSDavid du Colombier }; 22*9a747e4fSDavid du Colombier 23*9a747e4fSDavid du Colombier 24*9a747e4fSDavid du Colombier typedef struct Win Win; 25*9a747e4fSDavid du Colombier struct Win 26*9a747e4fSDavid du Colombier { 27*9a747e4fSDavid du Colombier int winid; 28*9a747e4fSDavid du Colombier int addr; 29*9a747e4fSDavid du Colombier Biobuf *body; 30*9a747e4fSDavid du Colombier int ctl; 31*9a747e4fSDavid du Colombier int data; 32*9a747e4fSDavid du Colombier int event; 33*9a747e4fSDavid du Colombier char buf[512]; 34*9a747e4fSDavid du Colombier char *bufp; 35*9a747e4fSDavid du Colombier int nbuf; 36*9a747e4fSDavid du Colombier }; 37*9a747e4fSDavid du Colombier 38*9a747e4fSDavid du Colombier int dead(Win*); 39*9a747e4fSDavid du Colombier void wnew(Win*); 40*9a747e4fSDavid du Colombier void wwritebody(Win*, char *s, int n); 41*9a747e4fSDavid du Colombier void wread(Win*, uint, uint, char*); 42*9a747e4fSDavid du Colombier void wclean(Win*); 43*9a747e4fSDavid du Colombier void wname(Win*, char*); 44*9a747e4fSDavid du Colombier void wdormant(Win*); 45*9a747e4fSDavid du Colombier void wevent(Win*, Event*); 46*9a747e4fSDavid du Colombier void wtagwrite(Win*, char*, int); 47*9a747e4fSDavid du Colombier void wwriteevent(Win*, Event*); 48*9a747e4fSDavid du Colombier void wslave(Win*, Channel*); /* chan(Event) */ 49*9a747e4fSDavid du Colombier void wreplace(Win*, char*, char*, int); 50*9a747e4fSDavid du Colombier void wselect(Win*, char*); 51*9a747e4fSDavid du Colombier int wdel(Win*); 52*9a747e4fSDavid du Colombier int wreadall(Win*, char**); 53*9a747e4fSDavid du Colombier 54*9a747e4fSDavid du Colombier void ctlwrite(Win*, char*); 55*9a747e4fSDavid du Colombier int getec(Win*); 56*9a747e4fSDavid du Colombier int geten(Win*); 57*9a747e4fSDavid du Colombier int geter(Win*, char*, int*); 58*9a747e4fSDavid du Colombier int openfile(Win*, char*); 59*9a747e4fSDavid du Colombier void openbody(Win*, int); 60