xref: /csrg-svn/lib/libcurses/clrtobot.c (revision 2240)
1*2240Sarnold # include	"curses.ext"
2*2240Sarnold 
3*2240Sarnold /*
4*2240Sarnold  *	This routine erases everything on the window.
5*2240Sarnold  *
6*2240Sarnold  * 01/26/81 (Berkeley) @(#)clrtobot.c	1.1
7*2240Sarnold  */
8*2240Sarnold wclrtobot(win)
9*2240Sarnold reg WINDOW	*win; {
10*2240Sarnold 
11*2240Sarnold 	reg int		y;
12*2240Sarnold 	reg char	*sp, *end, *maxx;
13*2240Sarnold 	reg int		startx, minx;
14*2240Sarnold 
15*2240Sarnold 	startx = win->_curx;
16*2240Sarnold 	for (y = win->_cury; y < win->_maxy; y++) {
17*2240Sarnold 		minx = _NOCHANGE;
18*2240Sarnold 		end = &win->_y[y][win->_maxx];
19*2240Sarnold 		for (sp = &win->_y[y][startx]; sp < end; sp++)
20*2240Sarnold 			if (*sp != ' ') {
21*2240Sarnold 				maxx = sp;
22*2240Sarnold 				if (minx == _NOCHANGE)
23*2240Sarnold 					minx = sp - win->_y[y];
24*2240Sarnold 				*sp = ' ';
25*2240Sarnold 			}
26*2240Sarnold 		if (minx != _NOCHANGE) {
27*2240Sarnold 			if (win->_firstch[y] > minx
28*2240Sarnold 			     || win->_firstch[y] == _NOCHANGE)
29*2240Sarnold 				win->_firstch[y] = minx;
30*2240Sarnold 			if (win->_lastch[y] < maxx - win->_y[y])
31*2240Sarnold 				win->_lastch[y] = maxx - win->_y[y];
32*2240Sarnold 		}
33*2240Sarnold 		startx = 0;
34*2240Sarnold 	}
35*2240Sarnold 	win->_curx = win->_cury = 0;
36*2240Sarnold }
37