118739Sedward /*
2*62479Sbostic * Copyright (c) 1983, 1993
3*62479Sbostic * The Regents of the University of California. All rights reserved.
433514Sbostic *
542954Sbostic * This code is derived from software contributed to Berkeley by
642954Sbostic * Edward Wang at The University of California, Berkeley.
742954Sbostic *
842835Sbostic * %sccs.include.redist.c%
918739Sedward */
1018739Sedward
1133514Sbostic #ifndef lint
12*62479Sbostic static char sccsid[] = "@(#)wwdelline.c 8.1 (Berkeley) 06/06/93";
1333514Sbostic #endif /* not lint */
1433514Sbostic
1514417Sedward #include "ww.h"
1614417Sedward
wwdelline(w,row)1714987Sedward wwdelline(w, row)
1814417Sedward register struct ww *w;
1914987Sedward int row;
2014417Sedward {
2114417Sedward register i;
2214459Sedward register union ww_char **cpp, **cqq;
2314717Sedward register union ww_char *cp;
2414976Sedward int row1, row2;
2514459Sedward char deleted;
2614717Sedward int visible;
2714417Sedward
2814417Sedward /*
2914459Sedward * Scroll first.
3014459Sedward */
3114987Sedward if ((row1 = row) < w->ww_i.t) {
3214987Sedward row1 = w->ww_i.t;
3314987Sedward }
3414987Sedward if ((row2 = w->ww_b.b) > w->ww_i.b) {
3514987Sedward row2 = w->ww_i.b;
3614717Sedward visible = 0;
3714717Sedward } else
3814717Sedward visible = 1;
3914976Sedward deleted = wwscroll1(w, row1, row2, 1, visible);
4014459Sedward
4114459Sedward /*
4214417Sedward * Fix the buffer.
4314417Sedward * But leave clearing the last line for wwclreol().
4414417Sedward */
4514987Sedward cpp = &w->ww_buf[row];
4614459Sedward cqq = cpp + 1;
4714717Sedward cp = *cpp;
4814987Sedward for (i = w->ww_b.b - row; --i > 0;)
4914459Sedward *cpp++ = *cqq++;
5014717Sedward *cpp = cp;
5114417Sedward
5214417Sedward /*
5314459Sedward * Now clear the last line.
5414417Sedward */
5514717Sedward if (visible)
5614987Sedward wwclreol1(w, w->ww_b.b - 1, w->ww_b.l, deleted);
5733683Sedward else {
5833683Sedward cp += w->ww_b.l;
5914987Sedward for (i = w->ww_b.nc; --i >= 0;)
6014717Sedward cp++->c_w = ' ';
6133683Sedward }
6214417Sedward }
63