-c flag, incmd, setcmd(), setterse() added
[unix-history] / usr / src / usr.bin / window / cmd4.c
CommitLineData
ce28727e 1#ifndef lint
ffa20db4 2static char *sccsid = "@(#)cmd4.c 3.9 84/04/05";
ce28727e
EW
3#endif
4
5#include "defs.h"
6
85af59e4 7c_show()
ce28727e
EW
8{
9 register i;
10 register struct ww *w = 0;
11 char done_it = 0;
12
85af59e4
EW
13 for (i = 0; i < NWINDOW; i++) {
14 if ((w = window[i]) == 0)
ce28727e
EW
15 continue;
16 done_it++;
85af59e4
EW
17 if (!terse && cmdwin->ww_order < framewin->ww_order) {
18 wwdelete(cmdwin);
19 wwadd(cmdwin, framewin);
20 }
a200c620 21 front(w, 0);
54277872 22 wwsetcursor(w->ww_w.t - 1, w->ww_w.l + 1);
ce28727e 23 for (;;) {
8fa6d94c 24 switch (wwgetc()) {
ce28727e
EW
25 case '\r':
26 case '\n':
27 break;
28 case CTRL([):
29 setselwin(w);
8c4fb896 30 goto out;
ce28727e 31 case -1:
8fa6d94c 32 wwiomux();
ce28727e
EW
33 continue;
34 default:
b1189050 35 wwputc(CTRL(g), cmdwin);
85af59e4 36 if (!terse) {
b1189050 37 wwputs("\rType return to continue, escape to select.", cmdwin);
85af59e4
EW
38 wwdelete(cmdwin);
39 wwadd(cmdwin, &wwhead);
40 }
ce28727e
EW
41 continue;
42 }
43 break;
44 }
45 }
8c4fb896 46out:
101acab4 47 if (!done_it) {
85af59e4 48 error("No windows.");
101acab4 49 } else {
85af59e4
EW
50 if (!terse) {
51 wwdelete(cmdwin);
52 wwadd(cmdwin, &wwhead);
b1189050 53 wwputs("\r\n", cmdwin);
85af59e4 54 }
ce28727e
EW
55 }
56}
101acab4 57
85af59e4 58c_colon()
101acab4 59{
ffa20db4 60 char oldterse = terse;
101acab4
EW
61 char buf[512];
62
ffa20db4 63 setterse(0);
b1189050 64 wwputc(':', cmdwin);
8fa6d94c 65 wwgets(buf, wwncol - 3, cmdwin);
b1189050 66 wwputs("\r\n", cmdwin);
ffa20db4
EW
67 wwcurtowin(cmdwin);
68 setterse(oldterse);
25a495d2
EW
69 if (dolongcmd(buf) < 0)
70 error("Out of memory.");
101acab4 71}