1 #ifndef lint 2 static char sccsid[] = "@(#)wwredrawwin.c 3.9 05/23/84"; 3 #endif 4 5 #include "ww.h" 6 7 wwredrawwin1(w, row1, row2, offset) 8 register struct ww *w; 9 int row1, row2, offset; 10 { 11 int row; 12 register col; 13 register char *smap; 14 register union ww_char *buf; 15 register char *win; 16 register union ww_char *ns; 17 int nchanged; 18 19 for (row = row1; row < row2; row++) { 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]; 25 nchanged = 0; 26 for (; col < w->ww_i.r; col++) 27 if (*smap++ == w->ww_index) { 28 nchanged++; 29 ns[col].c_w = 30 buf[col].c_w ^ win[col] << WWC_MSHIFT; 31 } 32 if (nchanged > 4) 33 wwtouched[row] |= WWU_MAJOR|WWU_TOUCHED; 34 else if (nchanged > 0) 35 wwtouched[row] |= WWU_TOUCHED; 36 } 37 } 38