SCCS-vsn: usr.bin/window/wwdelete.c 3.9
SCCS-vsn: usr.bin/window/wwunframe.c 3.11
-static char *sccsid = "@(#)wwdelete.c 3.8 83/11/28";
+static char *sccsid = "@(#)wwdelete.c 3.9 83/11/28";
wwdelete(w)
register struct ww *w;
{
wwdelete(w)
register struct ww *w;
{
- register struct ww *wp;
- register i, j;
+ register i;
+
+ for (i = w->ww_i.t; i < w->ww_i.b; i++) {
+ register j;
+ register char *smap = wwsmap[i];
+ register struct ww_char *ns = wwns[i];
+ register char *touched = &wwtouched[i];
- for (i = w->ww_i.t; i < w->ww_i.b; i++)
for (j = w->ww_i.l; j < w->ww_i.r; j++)
for (j = w->ww_i.l; j < w->ww_i.r; j++)
- if (wwsmap[i][j] == w->ww_index) {
- wwsmap[i][j] = WWX_NOBODY;
- wwns[i][j].c_w = ' ';
- wwtouched[i] = 1;
+ if (smap[j] == w->ww_index) {
+ smap[j] = WWX_NOBODY;
+ ns[j].c_w = ' ';
+ *touched = 1;
- for (wp = w->ww_forw; wp != &wwhead; wp = wp->ww_forw)
- w->ww_order--;
+ {
+ register struct ww *wp;
- if ((wp = w->ww_forw) != &wwhead)
- wwdelete1(wp, w->ww_i.t, w->ww_i.b, w->ww_i.l, w->ww_i.r);
+ for (wp = w->ww_forw; wp != &wwhead; wp = wp->ww_forw)
+ wp->ww_order--;
+ }
+
+ 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);
w->ww_back->ww_forw = w->ww_forw;
w->ww_forw->ww_back = w->ww_back;
w->ww_back->ww_forw = w->ww_forw;
w->ww_forw->ww_back = w->ww_back;
ll = MAX(l, w->ww_i.l);
rr = MIN(r, w->ww_i.r);
for (i = tt; i < bb; i++) {
ll = MAX(l, w->ww_i.l);
rr = MIN(r, w->ww_i.r);
for (i = tt; i < bb; i++) {
register char *smap = wwsmap[i];
register union ww_char *ns = wwns[i];
register char *win = w->ww_win[i];
register char *smap = wwsmap[i];
register union ww_char *ns = wwns[i];
register char *win = w->ww_win[i];
char touched = wwtouched[i];
for (j = ll; j < rr; j++) {
char touched = wwtouched[i];
for (j = ll; j < rr; j++) {
- if (smap[j] != WWX_NOBODY)
+ if (smap[j] != WWX_NOBODY || win[j] & WWM_GLS)
- if ((win[j] & WWM_GLS) == 0) {
- smap[j] = w->ww_index;
- ns[j].c_w = buf[j].c_w ^ win[j] << WWC_MSHIFT;
- touched = 1;
- if (win[j] == 0)
- nvis++;
- }
+ smap[j] = w->ww_index;
+ ns[j].c_w = buf[j].c_w ^ win[j] << WWC_MSHIFT;
+ touched = 1;
+ if (win[j] == 0)
+ nvis++;
}
wwtouched[i] = touched;
w->ww_nvis[i] = nvis;
}
wwtouched[i] = touched;
w->ww_nvis[i] = nvis;
-static char *sccsid = "@(#)wwunframe.c 3.10 83/11/23";
+static char *sccsid = "@(#)wwunframe.c 3.11 83/11/28";
wwunframe(w)
register struct ww *w;
{
wwunframe(w)
register struct ww *w;
{
for (i = w->ww_i.t; i < w->ww_i.b; i++) {
for (i = w->ww_i.t; i < w->ww_i.b; i++) {
- register j = w->ww_i.l;
- register char *win = &w->ww_win[i][j];
- register char *fmap = w->ww_fmap ? &w->ww_fmap[i][j] : 0;
- register char *smap = &wwsmap[i][j];
+ 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];
+ char touched = wwtouched[i];
- for (; j < w->ww_i.r; j++) {
- if (*win & WWM_GLS) {
- win++;
- fmap++;
- smap++;
+ for (j = w->ww_i.l; j < w->ww_i.r; j++) {
+ if (win[j] & WWM_GLS)
+ win[j] |= WWM_GLS;
+ if (fmap != 0)
+ fmap[j] = 0;
+ if (smap[j] == w->ww_index) {
+ smap[j] = WWX_NOBODY;
+ ns[j].c_w = ' ';
+ touched = 1;
- *win++ |= WWM_GLS;
- if (w->ww_fmap != 0)
- *fmap++ = 0;
- if (*smap == w->ww_index) {
- *smap = WWX_NOBODY;
- wwns[i][j].c_w = ' ';
- wwtouched[i] = 1;
- }
- smap++;
+ wwtouched[i] = touched;
- {
- register struct ww *wp;
- 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);