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