io statistics
[unix-history] / usr / src / usr.bin / window / cmd3.c
CommitLineData
57f965d5 1#ifndef lint
c417b691 2static char *sccsid = "@(#)cmd3.c 1.3 83/07/22";
57f965d5
EW
3#endif
4
5#include "defs.h"
6
7struct ww *getwin();
8struct ww *openwin();
9char *strtime();
10
c417b691
EW
11doclose(flag, w)
12register struct ww *w;
57f965d5 13{
c417b691 14 char didit = 0;
57f965d5 15
c417b691
EW
16 switch (flag) {
17 case CLOSE_ONE:
18 if (w == 0)
57f965d5
EW
19 break;
20 if (w == selwin)
21 setselwin(0);
22 wwclose(w);
c417b691 23 didit++;
57f965d5 24 break;
c417b691
EW
25 case CLOSE_DEAD:
26 case CLOSE_ALL:
57f965d5
EW
27 for (w = wwhead; w;) {
28 if (w != cmdwin
c417b691 29 && (w->ww_state == WW_DEAD || flag == CLOSE_ALL)) {
57f965d5
EW
30 struct ww *w1;
31 w = (w1 = w)->ww_next;
32 if (w1 == selwin)
33 setselwin(0);
b4be6cd6
EW
34 if (w->ww_state == WW_HASPROC && w->ww_pid == 0)
35 {
36 wwprintf(cmdwin, "%d: pid == 0. ",
37 w->ww_ident);
c417b691 38 } else {
b4be6cd6 39 wwclose(w1);
c417b691
EW
40 didit++;
41 }
57f965d5
EW
42 } else
43 w = w->ww_next;
44 }
45 break;
46 }
47 if (selwin == 0) {
c417b691 48 for (w = wwhead; w && w == cmdwin; w = w->ww_next)
57f965d5
EW
49 ;
50 setselwin(w);
51 }
c417b691
EW
52 if (didit)
53 reframe();
57f965d5 54}