xref: /original-bsd/lib/libcurses/deleteln.c (revision 1a56dd2c)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #ifndef lint
8 static char sccsid[] = "@(#)deleteln.c	5.1 (Berkeley) 06/07/85";
9 #endif not lint
10 
11 # include	"curses.ext"
12 
13 /*
14  *	This routine deletes a line from the screen.  It leaves
15  * (_cury,_curx) unchanged.
16  *
17  */
18 wdeleteln(win)
19 reg WINDOW	*win;
20 {
21 	reg char	*temp;
22 	reg int		y;
23 	reg char	*end;
24 	reg int		x;
25 
26 # ifdef DEBUG
27 	fprintf(outf, "DELETELN(%0.2o)\n", win);
28 # endif
29 	temp = win->_y[win->_cury];
30 	for (y = win->_cury; y < win->_maxy - 1; y++) {
31 		if (win->_orig == NULL)
32 			win->_y[y] = win->_y[y + 1];
33 		else
34 			bcopy(win->_y[y + 1], win->_y[y], win->_maxx);
35 		touchline(win, y, 0, win->_maxx - 1);
36 	}
37 	if (win->_orig == NULL)
38 		win->_y[y] = temp;
39 	else
40 		temp = win->_y[y];
41 	for (end = &temp[win->_maxx]; temp < end; )
42 		*temp++ = ' ';
43 	touchline(win, win->_cury, 0, win->_maxx - 1);
44 	if (win->_orig == NULL)
45 		_id_subwins(win);
46 	return OK;
47 }
48