f8f642304f453f0ce19b2fdf9a5295cd3b9f02e1
[unix-history] / usr / src / lib / libcurses / insch.c
/*
* Copyright (c) 1981 Regents of the University of California.
* All rights reserved.
*
* %sccs.include.redist.c%
*/
#ifndef lint
static char sccsid[] = "@(#)insch.c 5.4 (Berkeley) %G%";
#endif /* not lint */
# include "curses.ext"
/*
* This routine performs an insert-char on the line, leaving
* (_cury,_curx) unchanged.
*
*/
winsch(win, c)
reg WINDOW *win;
char c; {
reg char *temp1, *temp2;
reg char *end;
end = &win->_y[win->_cury][win->_curx];
temp1 = &win->_y[win->_cury][win->_maxx - 1];
temp2 = temp1 - 1;
while (temp1 > end)
*temp1-- = *temp2--;
*temp1 = c;
touchline(win, win->_cury, win->_curx, win->_maxx - 1);
if (win->_cury == LINES - 1 && win->_y[LINES-1][COLS-1] != ' ')
if (win->_scroll) {
wrefresh(win);
scroll(win);
win->_cury--;
}
else
return ERR;
return OK;
}