use \n at bottom to scroll entire screen,
[unix-history] / usr / src / usr.bin / window / wwredrawwin.c
CommitLineData
bd9fa46d 1#ifndef lint
60de5df9 2static char sccsid[] = "@(#)wwredrawwin.c 3.10 %G%";
bd9fa46d
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
bd9fa46d
EW
11#include "ww.h"
12
f2a77fe1 13wwredrawwin1(w, row1, row2, offset)
bd9fa46d 14register struct ww *w;
f2a77fe1 15int row1, row2, offset;
bd9fa46d 16{
d069a508
EW
17 int row;
18 register col;
bd9fa46d
EW
19 register char *smap;
20 register union ww_char *buf;
21 register char *win;
22 register union ww_char *ns;
04d70db4 23 int nchanged;
bd9fa46d 24
04d70db4 25 for (row = row1; row < row2; row++) {
d069a508
EW
26 col = w->ww_i.l;
27 ns = wwns[row];
28 smap = &wwsmap[row][col];
29 buf = w->ww_buf[row + offset];
30 win = w->ww_win[row];
04d70db4 31 nchanged = 0;
d069a508
EW
32 for (; col < w->ww_i.r; col++)
33 if (*smap++ == w->ww_index) {
04d70db4 34 nchanged++;
d069a508
EW
35 ns[col].c_w =
36 buf[col].c_w ^ win[col] << WWC_MSHIFT;
861cd1ed 37 }
04d70db4
EW
38 if (nchanged > 4)
39 wwtouched[row] |= WWU_MAJOR|WWU_TOUCHED;
40 else if (nchanged > 0)
41 wwtouched[row] |= WWU_TOUCHED;
bd9fa46d
EW
42 }
43}