X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/f50078e988b414a908bccac6d3885ea024a725fa..53e3f77f9678ad9b8baf5369f83e890eb251261a:/usr/src/usr.bin/window/wwunframe.c diff --git a/usr/src/usr.bin/window/wwunframe.c b/usr/src/usr.bin/window/wwunframe.c index 5fbdaaf001..64a7aee949 100644 --- a/usr/src/usr.bin/window/wwunframe.c +++ b/usr/src/usr.bin/window/wwunframe.c @@ -1,39 +1,48 @@ #ifndef lint -static char *sccsid = "@(#)wwunframe.c 3.1 83/08/09"; +static char sccsid[] = "@(#)wwunframe.c 3.14 %G%"; #endif -#include "ww.h" +/* + * Copyright (c) 1983 Regents of the University of California, + * All rights reserved. Redistribution permitted subject to + * the terms of the Berkeley Software License Agreement. + */ -char **wwfmap; +#include "ww.h" wwunframe(w) register struct ww *w; { - register i, j; - register char *win; - register char *fmap; - register struct ww *wp; + int i; + + for (i = w->ww_i.t; i < w->ww_i.b; i++) { + register j; + register char *win = w->ww_win[i]; + register char *fmap = w->ww_fmap ? w->ww_fmap[i] : 0; + register char *smap = wwsmap[i]; + register struct ww_char *ns = wwns[i]; + int nchanged = 0; - if (wwfmap == 0) - return; - for (i = w->ww_w.t; i < w->ww_w.b; i++) { - win = w->ww_win[i - w->ww_w.t]; - fmap = wwfmap[i]; - for (j = w->ww_w.l; j < w->ww_w.r; j++) { - if (*win & WWM_GLS) { - win++; - fmap++; + for (j = w->ww_i.l; j < w->ww_i.r; j++) { + if (win[j] & WWM_GLS) continue; - } - *win++ |= WWM_GLS; - *fmap++ = 0; - if (wwsmap[i][j] == w->ww_index) { - wwsmap[i][j] = WWX_NOBODY; - wwns[i][j].c_w = ' '; + win[j] |= WWM_GLS; + if (fmap != 0) + fmap[j] = 0; + if (smap[j] == w->ww_index) { + smap[j] = WWX_NOBODY; + ns[j].c_w = ' '; + nchanged++; } } + if (nchanged > 4) + wwtouched[i] |= WWU_MAJOR|WWU_TOUCHED; + else if (nchanged > 0) + wwtouched[i] |= WWU_TOUCHED; w->ww_nvis[i] = 0; } - for (wp = w->ww_forw; wp != &wwhead; wp = wp->ww_forw) - wwuncover(w, wp); + + if (w->ww_forw != &wwhead) + wwdelete1(w->ww_forw, + w->ww_i.t, w->ww_i.b, w->ww_i.l, w->ww_i.r); }