22 text = display->black;
23 light = allocimagemix(display, DPalegreen, DWhite);
34 write(1, message, strlen(message));
35 last = utflen(message);
38 draw(screen, rtext, light, nil, ZP);
39 string(screen, rtext.min, text, ZP, display->defaultfont, message);
40 flushimage(display, 1);
46 if(new && getwindow(display, Refnone) < 0)
47 fprint(2,"can't reattach to window");
49 draw(screen, rtext, light, nil, ZP);
53 string(screen, rtext.min, text, ZP, display->defaultfont, title);
54 rtext.min.y += 8+display->defaultfont->height;
56 rtext.max.y = rtext.min.y + display->defaultfont->height;
65 int k, die, parent, child;
73 write(1, title, strlen(title));
77 switch(child = rfork(RFMEM|RFPROC)) {
80 while(!die && (k = eread(Ekeyboard|Emouse, &e))) {
81 if(nokill==0 && k == Ekeyboard && (e.kbdc == Kdel || e.kbdc == Ketx)) {
83 postnote(PNPROC, parent, "interrupt");
89 while(!die && (p = Brdline(b, '\n'))) {
90 snprint(message, sizeof(message), "%.*s", Blinelen(b)-1, p);
95 postnote(PNPROC, child, "kill");
102 fprint(2, "usage: %s [-kt] [-w minx,miny,maxx,maxy] [title]\n", argv0);
107 main(int argc, char **argv)
140 while(q = strchr(p, ','))
142 Binit(&b, lfd, OREAD);
143 if(textmode || newwin(p) < 0){
146 if(initdraw(0, 0, title) < 0)
149 einit(Emouse|Ekeyboard);
164 snprint(spec, sizeof(spec), "-r %s", win);
167 if(newwindow(win) < 0){
168 fprint(2, "%s: newwindow: %r", argv0);
171 if((cons = open("/dev/cons", OREAD)) < 0){
173 fprint(2, "%s: can't open /dev/cons: %r", argv0);
178 if((cons = open("/dev/cons", OWRITE)) < 0)