xref: /original-bsd/usr.bin/window/wwunframe.c (revision 8251a00e)
1 #ifndef lint
2 static	char *sccsid = "@(#)wwunframe.c	3.3 83/08/12";
3 #endif
4 
5 #include "ww.h"
6 
7 wwunframe(w)
8 register struct ww *w;
9 {
10 	register i, j;
11 	register char *win;
12 	register char *fmap;
13 	register struct ww *wp;
14 
15 	if (wwfmap == 0)
16 		return;
17 	for (i = w->ww_w.t; i < w->ww_w.b; i++) {
18 		win = w->ww_win[i - w->ww_w.t];
19 		fmap = wwfmap[i];
20 		for (j = w->ww_w.l; j < w->ww_w.r; j++) {
21 			if (*win & WWM_GLS) {
22 				win++;
23 				fmap++;
24 				continue;
25 			}
26 			*win++ |= WWM_GLS;
27 			*fmap++ = 0;
28 			if (wwsmap[i][j] == w->ww_index) {
29 				wwsmap[i][j] = WWX_NOBODY;
30 				wwns[i][j].c_w = ' ';
31 			}
32 		}
33 		w->ww_nvis[i] = 0;
34 	}
35 	for (wp = w->ww_forw; wp != &wwhead; wp = wp->ww_forw)
36 		wwuncover(w, wp);
37 }
38