Commit | Line | Data |
---|---|---|
bd9fa46d | 1 | #ifndef lint |
60de5df9 | 2 | static 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 | 13 | wwredrawwin1(w, row1, row2, offset) |
bd9fa46d | 14 | register struct ww *w; |
f2a77fe1 | 15 | int 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 | } |