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