added "more" command
[unix-history] / usr / src / usr.bin / window / wwunframe.c
CommitLineData
f50078e9 1#ifndef lint
60de5df9 2static char sccsid[] = "@(#)wwunframe.c 3.14 %G%";
f50078e9
EW
3#endif
4
60de5df9
EW
5/*
6 * Copyright (c) 1983 Regents of the University of California,
7 * All rights reserved. Redistribution permitted subject to
8 * the terms of the Berkeley Software License Agreement.
9 */
10
f50078e9
EW
11#include "ww.h"
12
f50078e9
EW
13wwunframe(w)
14register struct ww *w;
15{
c05972b9 16 int i;
f50078e9 17
f2a77fe1 18 for (i = w->ww_i.t; i < w->ww_i.b; i++) {
c05972b9
EW
19 register j;
20 register char *win = w->ww_win[i];
21 register char *fmap = w->ww_fmap ? w->ww_fmap[i] : 0;
22 register char *smap = wwsmap[i];
23 register struct ww_char *ns = wwns[i];
04d70db4 24 int nchanged = 0;
9f722fc9 25
c05972b9
EW
26 for (j = w->ww_i.l; j < w->ww_i.r; j++) {
27 if (win[j] & WWM_GLS)
f50078e9 28 continue;
c05972b9
EW
29 win[j] |= WWM_GLS;
30 if (fmap != 0)
31 fmap[j] = 0;
32 if (smap[j] == w->ww_index) {
33 smap[j] = WWX_NOBODY;
34 ns[j].c_w = ' ';
04d70db4 35 nchanged++;
f50078e9 36 }
f50078e9 37 }
04d70db4
EW
38 if (nchanged > 4)
39 wwtouched[i] |= WWU_MAJOR|WWU_TOUCHED;
40 else if (nchanged > 0)
41 wwtouched[i] |= WWU_TOUCHED;
f50078e9
EW
42 w->ww_nvis[i] = 0;
43 }
84ad208b 44
c05972b9
EW
45 if (w->ww_forw != &wwhead)
46 wwdelete1(w->ww_forw,
47 w->ww_i.t, w->ww_i.b, w->ww_i.l, w->ww_i.r);
f50078e9 48}