diff options
| author | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
|---|---|---|
| committer | svn2git <svn2git@FreeBSD.org> | 1994-05-01 08:00:00 +0000 |
| commit | a16f65c7d117419bd266c28a1901ef129a337569 (patch) | |
| tree | 2626602f66dc3551e7a7c7bc9ad763c3bc7ab40a /lib/libcurses/insertln.c | |
| parent | 8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (diff) | |
Release FreeBSD 1.1upstream/1.1.0_cvsrelease/1.1.0_cvs
This commit was manufactured to restore the state of the 1.1-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
Diffstat (limited to 'lib/libcurses/insertln.c')
| -rw-r--r-- | lib/libcurses/insertln.c | 67 |
1 files changed, 37 insertions, 30 deletions
diff --git a/lib/libcurses/insertln.c b/lib/libcurses/insertln.c index 09b8b4353035..9a9e321c72be 100644 --- a/lib/libcurses/insertln.c +++ b/lib/libcurses/insertln.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 1981 Regents of the University of California. - * All rights reserved. + * Copyright (c) 1981, 1993 + * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,43 +32,50 @@ */ #ifndef lint -static char sccsid[] = "@(#)insertln.c 5.4 (Berkeley) 6/1/90"; -#endif /* not lint */ +static char sccsid[] = "@(#)insertln.c 8.1 (Berkeley) 6/4/93"; +#endif /* not lint */ -# include "curses.ext" +#include <curses.h> +#include <string.h> /* - * This routine performs an insert-line on the window, leaving - * (_cury,_curx) unchanged. - * + * winsertln -- + * Do an insert-line on the window, leaving (cury, curx) unchanged. */ +int winsertln(win) -reg WINDOW *win; { + register WINDOW *win; +{ - reg chtype *temp; - reg int y; - reg chtype *end; - reg int x; + register int y, i; + register __LINE *temp; -#ifdef DEBUG - fprintf(outf, "INSERTLN(%0.2o)\n", win); +#ifdef DEBUG + __CTRACE("insertln: (%0.2o)\n", win); #endif - if (win->_orig == NULL) - temp = win->_y[win->_maxy - 1]; - for (y = win->_maxy - 1; y > win->_cury; --y) { - if (win->_orig == NULL) - win->_y[y] = win->_y[y - 1]; + if (win->orig == NULL) + temp = win->lines[win->maxy - 1]; + for (y = win->maxy - 1; y > (int) win->cury; --y) { + win->lines[y]->flags &= ~__ISPASTEOL; + win->lines[y - 1]->flags &= ~__ISPASTEOL; + if (win->orig == NULL) + win->lines[y] = win->lines[y - 1]; else - bcopy(win->_y[y - 1], win->_y[y], win->_maxx * sizeof(chtype)); - touchline(win, y, 0, win->_maxx - 1); + (void)memcpy(win->lines[y]->line, + win->lines[y - 1]->line, + win->maxx * __LDATASIZE); + __touchline(win, y, 0, win->maxx - 1, 0); } - if (win->_orig == NULL) - win->_y[y] = temp; + if (win->orig == NULL) + win->lines[y] = temp; else - temp = win->_y[y]; - for (end = &temp[win->_maxx]; temp < end; ) - *temp++ = ' '; - touchline(win, y, 0, win->_maxx - 1); - if (win->_orig == NULL) - _id_subwins(win); + temp = win->lines[y]; + for(i = 0; i < win->maxx; i++) { + temp->line[i].ch = ' '; + temp->line[i].attr = 0; + } + __touchline(win, y, 0, win->maxx - 1, 0); + if (win->orig == NULL) + __id_subwins(win); + return (OK); } |
