Commit | Line | Data |
---|---|---|
bd9fa46d | 1 | #ifndef lint |
04d70db4 | 2 | static char *sccsid = "@(#)wwredrawwin.c 3.8 83/12/02"; |
bd9fa46d EW |
3 | #endif |
4 | ||
5 | #include "ww.h" | |
6 | ||
f2a77fe1 | 7 | wwredrawwin1(w, row1, row2, offset) |
bd9fa46d | 8 | register struct ww *w; |
f2a77fe1 | 9 | int row1, row2, offset; |
bd9fa46d | 10 | { |
d069a508 EW |
11 | int row; |
12 | register col; | |
bd9fa46d EW |
13 | register char *smap; |
14 | register union ww_char *buf; | |
15 | register char *win; | |
16 | register union ww_char *ns; | |
04d70db4 | 17 | int nchanged; |
bd9fa46d | 18 | |
04d70db4 | 19 | for (row = row1; row < row2; row++) { |
d069a508 EW |
20 | col = w->ww_i.l; |
21 | ns = wwns[row]; | |
22 | smap = &wwsmap[row][col]; | |
23 | buf = w->ww_buf[row + offset]; | |
24 | win = w->ww_win[row]; | |
04d70db4 | 25 | nchanged = 0; |
d069a508 EW |
26 | for (; col < w->ww_i.r; col++) |
27 | if (*smap++ == w->ww_index) { | |
04d70db4 | 28 | nchanged++; |
d069a508 EW |
29 | ns[col].c_w = |
30 | buf[col].c_w ^ win[col] << WWC_MSHIFT; | |
861cd1ed | 31 | } |
04d70db4 EW |
32 | if (nchanged > 4) |
33 | wwtouched[row] |= WWU_MAJOR|WWU_TOUCHED; | |
34 | else if (nchanged > 0) | |
35 | wwtouched[row] |= WWU_TOUCHED; | |
bd9fa46d EW |
36 | } |
37 | } |