changed for new commands and command line flags.
[unix-history] / usr / src / usr.bin / window / wwdelline.c
CommitLineData
a4c3355c 1#ifndef lint
74f2441e 2static char *sccsid = "@(#)wwdelline.c 3.3 83/08/18";
a4c3355c
EW
3#endif
4
5#include "ww.h"
6
7wwdelline(w, line)
8register struct ww *w;
9int line;
10{
11 register i;
14f251df 12 register union ww_char **cpp, **cqq;
74f2441e 13 register union ww_char *cp;
14f251df
EW
14 int srow, erow;
15 char deleted;
74f2441e 16 int visible;
a4c3355c
EW
17
18 /*
14f251df 19 * Scroll first.
a4c3355c 20 */
14f251df
EW
21 if ((srow = line - w->ww_scroll) < 0)
22 srow = 0;
74f2441e 23 if ((erow = w->ww_nline - w->ww_scroll - 1) >= w->ww_w.nr) {
14f251df 24 erow = w->ww_w.nr - 1;
74f2441e
EW
25 visible = 0;
26 } else
27 visible = 1;
28 deleted = wwscroll1(w, srow, erow, 1, visible);
14f251df 29
a4c3355c 30 /*
14f251df
EW
31 * Fix the buffer.
32 * But leave clearing the last line for wwclreol().
a4c3355c 33 */
14f251df
EW
34 cpp = &w->ww_buf[line];
35 cqq = cpp + 1;
74f2441e 36 cp = *cpp;
14f251df
EW
37 for (i = w->ww_nline - line - 1; --i >= 0;)
38 *cpp++ = *cqq++;
74f2441e 39 *cpp = cp;
a4c3355c 40
a4c3355c 41 /*
14f251df 42 * Now clear the last line.
a4c3355c 43 */
74f2441e
EW
44 if (visible)
45 wwclreol1(w, w->ww_nline - 1, 0, deleted);
46 else
47 for (i = w->ww_w.nc; --i >= 0;)
48 cp++->c_w = ' ';
a4c3355c 49}