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