122685Sdist /* 234677Sbostic * Copyright (c) 1981 Regents of the University of California. 334677Sbostic * All rights reserved. 434677Sbostic * 5*42657Sbostic * %sccs.include.redist.c% 622685Sdist */ 722685Sdist 822685Sdist #ifndef lint 9*42657Sbostic static char sccsid[] = "@(#)touchwin.c 5.4 (Berkeley) 06/01/90"; 1034677Sbostic #endif /* not lint */ 1122685Sdist 122265Sarnold # include "curses.ext" 132265Sarnold 142265Sarnold /* 152265Sarnold * make it look like the whole window has been changed. 162265Sarnold * 172265Sarnold */ 182265Sarnold touchwin(win) 1919898Sbloom register WINDOW *win; 202265Sarnold { 2119898Sbloom register int y, maxy; 2212341Sarnold 2319898Sbloom # ifdef DEBUG 2419898Sbloom fprintf(outf, "TOUCHWIN(%0.2o)\n", win); 2519898Sbloom # endif 2619898Sbloom maxy = win->_maxy; 2719898Sbloom for (y = 0; y < maxy; y++) 2819898Sbloom touchline(win, y, 0, win->_maxx - 1); 2912341Sarnold } 3012341Sarnold 3112341Sarnold /* 3219898Sbloom * touch a given line 3312341Sarnold */ 3419898Sbloom touchline(win, y, sx, ex) 3519898Sbloom register WINDOW *win; 3619898Sbloom register int y, sx, ex; 3719898Sbloom { 3819898Sbloom # ifdef DEBUG 3919898Sbloom fprintf(outf, "TOUCHLINE(%0.2o, %d, %d, %d)\n", win, y, sx, ex); 4019898Sbloom fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); 4119898Sbloom # endif 4219898Sbloom sx += win->_ch_off; 4319898Sbloom ex += win->_ch_off; 4419898Sbloom if (win->_firstch[y] == _NOCHANGE) { 4519898Sbloom win->_firstch[y] = sx; 4619898Sbloom win->_lastch[y] = ex; 472265Sarnold } 4819898Sbloom else { 4919898Sbloom if (win->_firstch[y] > sx) 5019898Sbloom win->_firstch[y] = sx; 5119898Sbloom if (win->_lastch[y] < ex) 5219898Sbloom win->_lastch[y] = ex; 5319898Sbloom } 5419898Sbloom # ifdef DEBUG 5519898Sbloom fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); 5619898Sbloom # endif 572265Sarnold } 58