static char *sccsid
= "@(#)cmd2.c 3.10 83/08/26";
if ((w
= openiwin(wwnrow
- 3, "Help")) == 0) {
error("Can't open help window: %s.", wwerror());
(void) wwprintf(w
, "The escape character is %s, which gets you into command mode.\n\n",
(void) wwprintf(w
, "Short commands:\n\n");
(void) wwprintf(w
, "{1-9} Select window {1-9} and return to conversation mode.\n");
(void) wwprintf(w
, "%%{1-9} Select window {1-9} but stay in command mode.\n");
(void) wwprintf(w
, "escape Return to conversation mode and don't change the current window.\n");
(void) wwprintf(w
, "c{1-9} Close window {1-9}.\n");
(void) wwprintf(w
, "C Close all windows.\n");
(void) wwprintf(w
, "S Show all windows in sequence.\n");
(void) wwprintf(w
, "L List all windows with their labels.\n");
(void) wwprintf(w
, "w Open a new window.\n");
(void) wwprintf(w
, "{^Y^E} Scroll {up, down} one line\n");
(void) wwprintf(w
, "{^U^D} Scroll {up, down} half a window.\n");
(void) wwprintf(w
, "{^B^F} Scroll {up, down} a full window.\n");
(void) wwprintf(w
, "{hjkl} Move cursor {left, down, up, right}.\n");
(void) wwprintf(w
, "^L Redraw screen.\n");
(void) wwprintf(w
, "^Z Suspend.\n");
(void) wwprintf(w
, "q Quit.\n");
(void) wwprintf(w
, "Long commands:\n\n");
(void) wwprintf(w
, ":terse [off] Turn on (or off) terse mode.\n");
(void) wwprintf(w
, ":label {1-9} string Label window {1-9}.\n");
(void) wwprintf(w
, ":write {1-9} string Write ``strings'' to window {1-9}.\n");
(void) wwprintf(w
, ":escape C Set escape character to C.\n");
(void) wwprintf(w
, ":%%{1-9} Select window {1-9}.\n");
(void) wwprintf(w
, ":window r c nr nc [nl] Open a window at row r column c\n");
(void) wwprintf(w
, " with nr rows, nc colomns,\n");
(void) wwprintf(w
, " and nl lines in the buffer.\n");
(void) wwprintf(w
, ":buffer lines Set the default window buffer size.\n");
(void) wwprintf(w
, ":close {1-9} Close window.\n");
(void) wwprintf(w
, ":source filename Execute commands in ``filename''.\n");
struct timezone timezone
;
if ((w
= openiwin(6, "Timing and Resource Usage")) == 0) {
error("Can't open time window: %s.", wwerror());
(void) gettimeofday(&timeval
, &timezone
);
timeval
.tv_sec
-= starttime
.tv_sec
;
if ((timeval
.tv_usec
-= starttime
.tv_usec
) < 0) {
timeval
.tv_usec
+= 1000000;
(void) getrusage(flag
, &rusage
);
(void) wwprintf(w
, "time\t\tutime\t\tstime\t\tmaxrss\tixrss\tidrss\tisrss\n");
(void) wwprintf(w
, "%-16s", strtime(&timeval
));
(void) wwprintf(w
, "%-16s", strtime(&rusage
.ru_utime
));
(void) wwprintf(w
, "%-16s", strtime(&rusage
.ru_stime
));
(void) wwprintf(w
, "%D\t%D\t%D\t%D\n",
rusage
.ru_maxrss
, rusage
.ru_ixrss
,
rusage
.ru_idrss
, rusage
.ru_isrss
);
(void) wwprintf(w
, "minflt\tmajflt\tnswap\tinblk\toublk\tmsgsnd\tmsgrcv\tnsigs\tnvcsw\tnivcsw\n");
(void) wwprintf(w
, "%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\n",
rusage
.ru_minflt
, rusage
.ru_majflt
, rusage
.ru_nswap
,
rusage
.ru_inblock
, rusage
.ru_oublock
,
rusage
.ru_msgsnd
, rusage
.ru_msgrcv
, rusage
.ru_nsignals
,
rusage
.ru_nvcsw
, rusage
.ru_nivcsw
);
register struct timeval
*t
;
(void) sprintf(p
, "%D:", t
->tv_sec
/ (60*60));
(void) sprintf(p
, fill
? "%02D:" : "%D:", t
->tv_sec
/ 60);
(void) sprintf(p
, fill
? "%02D.%02d" : "%D.%02D",
t
->tv_sec
, t
->tv_usec
/ 10000);
if ((w
= openiwin(4, "IO Statics")) == 0) {
error("Can't open statistics window: %s.", wwerror());
(void) wwprintf(w
, "nread\tnreadz\tnreade\tnreadc\tnwrite\tnwritec\tnupdate\tntouchd\tnmiss\n");
(void) wwprintf(w
, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",
nread
, nreadz
, nreade
, nreadc
, wwnwrite
, wwnwritec
,
wwnupdate
, wwntouched
, wwnmiss
);
for (n
= 0, i
= 0; i
< NWINDOW
; i
++)
if ((w
= openiwin(MAX(n
, 1) + 2, "Active Windows")) == 0) {
error("Can't open listing window: %s.", wwerror());
(void) wwputs("No windows.\n", w
);
for (i
= 0; i
< NWINDOW
; i
++) {
(void) wwprintf(w
, "%c %c %s\n",
window
[i
] == selwin
? '*' : ' ',
window
[i
]->ww_label
? window
[i
]->ww_label
(void) wwputs("Really quit [yn]? ", cmdwin
);
(void) wwputs("Yes", cmdwin
);
(void) wwputs("\r\n", cmdwin
);
* Open an information window.
if ((w
= wwopen(0, nrow
, wwncol
, 2, 0, 0)) == 0)
(void) setlabel(w
, label
);
(void) wwputs("\nType return to continue: ", w
);
(void) wwputs("\033E", w
); /* clear and home cursor */