|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1981 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that: (1) source distributions retain this entire copyright ! 7: * notice and comment, and (2) distributions including binaries display ! 8: * the following acknowledgement: ``This product includes software ! 9: * developed by the University of California, Berkeley and its contributors'' ! 10: * in the documentation or other materials provided with the distribution ! 11: * and in all advertising materials mentioning features or use of this ! 12: * software. Neither the name of the University nor the names of its ! 13: * contributors may be used to endorse or promote products derived ! 14: * from this software without specific prior written permission. ! 15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 18: */ ! 19: ! 20: #ifndef lint ! 21: static char sccsid[] = "@(#)touchwin.c 5.4 (Berkeley) 6/1/90"; ! 22: #endif /* not lint */ ! 23: ! 24: # include "curses.ext" ! 25: ! 26: /* ! 27: * make it look like the whole window has been changed. ! 28: * ! 29: */ ! 30: touchwin(win) ! 31: register WINDOW *win; ! 32: { ! 33: register int y, maxy; ! 34: ! 35: # ifdef DEBUG ! 36: fprintf(outf, "TOUCHWIN(%0.2o)\n", win); ! 37: # endif ! 38: maxy = win->_maxy; ! 39: for (y = 0; y < maxy; y++) ! 40: touchline(win, y, 0, win->_maxx - 1); ! 41: } ! 42: ! 43: /* ! 44: * touch a given line ! 45: */ ! 46: touchline(win, y, sx, ex) ! 47: register WINDOW *win; ! 48: register int y, sx, ex; ! 49: { ! 50: # ifdef DEBUG ! 51: fprintf(outf, "TOUCHLINE(%0.2o, %d, %d, %d)\n", win, y, sx, ex); ! 52: fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); ! 53: # endif ! 54: sx += win->_ch_off; ! 55: ex += win->_ch_off; ! 56: if (win->_firstch[y] == _NOCHANGE) { ! 57: win->_firstch[y] = sx; ! 58: win->_lastch[y] = ex; ! 59: } ! 60: else { ! 61: if (win->_firstch[y] > sx) ! 62: win->_firstch[y] = sx; ! 63: if (win->_lastch[y] < ex) ! 64: win->_lastch[y] = ex; ! 65: } ! 66: # ifdef DEBUG ! 67: fprintf(outf, "TOUCHLINE:first = %d, last = %d\n", win->_firstch[y], win->_lastch[y]); ! 68: # endif ! 69: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.