/* * Copyright (c) 1980 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #if !defined(lint) && !defined(NOSCCS) static char sccsid[] = "@(#)touchwin.c 5.1 (Berkeley) 6/7/85"; #endif # include "curses.ext" /* * make it look like the whole window has been changed. * */ touchwin(win) register WINDOW *win; { register int y, maxy; # ifdef DEBUG fprintf(outf, "TOUCHWIN(%0.2o)\n", win); # endif maxy = win->_maxy; for (y = 0; y < maxy; y++) touchline(win, y, 0, win->_maxx - 1); } /* * touch a given line */ touchline(win, y, sx, ex) register WINDOW *win; register int y, sx, ex; { # ifdef DEBUG fprintf(outf, "TOUCHLINE(%0.2o, %d, %d, %d)\n", win, y, sx, ex); fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); # endif sx += win->_ch_off; ex += win->_ch_off; if (win->_firstch[y] == _NOCHANGE) { win->_firstch[y] = sx; win->_lastch[y] = ex; } else { if (win->_firstch[y] > sx) win->_firstch[y] = sx; if (win->_lastch[y] < ex) win->_lastch[y] = ex; } # ifdef DEBUG fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); # endif }