new user settable buffer size and explanation about SHELL.
[unix-history] / usr / src / usr.bin / window / wwdelete.c
CommitLineData
07662491 1#ifndef lint
861cd1ed 2static char *sccsid = "@(#)wwdelete.c 3.3 83/08/16";
07662491
EW
3#endif
4
5#include "ww.h"
6
7/*
8 * Pull w free from the cover list.
9 */
10wwdelete(w)
11register struct ww *w;
12{
861cd1ed
EW
13 {
14 register i = w->ww_w.t;
15 register char *touched = &wwtouched[i];
16
17 for (; i < w->ww_w.b; i++, touched++) {
18 register int j = w->ww_w.l;
19 register char *smap = &wwsmap[i][j];
20 register union ww_char *ns = &wwns[i][j];
07662491 21
861cd1ed
EW
22 for (j = w->ww_w.nc; --j >= 0;) {
23 if (*smap == w->ww_index) {
24 *touched = 1;
25 *smap++ = WWX_NOBODY;
26 ns++->c_w = ' ';
27 } else {
28 smap++;
29 ns++;
30 }
07662491
EW
31 }
32 }
33 }
34 {
35 register struct ww *wp;
861cd1ed 36
07662491
EW
37 for (wp = w->ww_forw; wp != &wwhead; wp = wp->ww_forw) {
38 wp->ww_order--;
39 wwuncover(w, wp);
40 }
41 }
861cd1ed
EW
42 {
43 register i;
44
45 for (i = 0; i < w->ww_w.nr; i++) {
46 register j;
47 register char *win = w->ww_win[i];
48 register char *cov = w->ww_cov[i];
49 for (j = w->ww_w.nc; --j >= 0;) {
50 if (*win != 0) {
51 if ((*win++ &= ~WWM_COV) == 0)
52 w->ww_nvis[i]++;
53 } else
54 win++;
55 *cov++ = WWX_NOBODY;
56 }
07662491
EW
57 }
58 }
59 w->ww_back->ww_forw = w->ww_forw;
60 w->ww_forw->ww_back = w->ww_back;
61 w->ww_forw = w->ww_back = 0;
62}