text: /*
   * Copyright (c) 1983, 1993
   *	The Regents of the University of California.  All rights reserved.
   *
   * This code is derived from software contributed to Berkeley by
   * Edward Wang at The University of California, Berkeley.
   *
   * %sccs.include.redist.c%
   */
  
  #ifndef lint
  static char sccsid[] = "@(#)wwredrawwin.c	8.1 (Berkeley) 06/06/93";
  #endif /* not lint */
  
  #include "ww.h"
  
  wwredrawwin1(w, row1, row2, offset)
  register struct ww *w;
  int row1, row2, offset;
  {
  	int row;
  	register col;
  	register char *smap;
  	register union ww_char *buf;
  	register char *win;
  	register union ww_char *ns;
  	int x;
  	int nchanged;
  
  	for (row = row1; row < row2; row++) {
  		col = w->ww_i.l;
  		ns = wwns[row];
  		smap = &wwsmap[row][col];
  		buf = w->ww_buf[row + offset];
  		win = w->ww_win[row];
  		nchanged = 0;
  		for (; col < w->ww_i.r; col++)
  			if (*smap++ == w->ww_index &&
  			    ns[col].c_w !=
  			    (x = buf[col].c_w ^ win[col] << WWC_MSHIFT)) {
  				nchanged++;
  				ns[col].c_w = x;
  			}
  		if (nchanged > 0)
  			wwtouched[row] |= WWU_TOUCHED;
  	}
  }
  