/* * Copyright (c) 1981 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef lint static char sccsid[] = "@(#)erase.c 5.3 (Berkeley) 06/30/88"; #endif /* not lint */ # include "curses.ext" /* * This routine erases everything on the window. * */ werase(win) reg WINDOW *win; { reg int y; reg char *sp, *end, *start, *maxx; reg int minx; # ifdef DEBUG fprintf(outf, "WERASE(%0.2o)\n", win); # endif for (y = 0; y < win->_maxy; y++) { minx = _NOCHANGE; start = win->_y[y]; end = &start[win->_maxx]; for (sp = start; sp < end; sp++) if (*sp != ' ') { maxx = sp; if (minx == _NOCHANGE) minx = sp - start; *sp = ' '; } if (minx != _NOCHANGE) touchline(win, y, minx, maxx - win->_y[y]); } win->_curx = win->_cury = 0; }