1*3532Sarnold # include "curses.ext" 2*3532Sarnold 3*3532Sarnold /* 4*3532Sarnold * This routine performs an insert-char on the line, leaving 5*3532Sarnold * (_cury,_curx) unchanged. 6*3532Sarnold * 7*3532Sarnold * @(#)insch.c 1.1 (Berkeley) 04/17/81 8*3532Sarnold */ 9*3532Sarnold winsch(win, c) 10*3532Sarnold reg WINDOW *win; 11*3532Sarnold char c; { 12*3532Sarnold 13*3532Sarnold reg char *temp1, *temp2; 14*3532Sarnold reg char *end; 15*3532Sarnold 16*3532Sarnold end = &win->_y[win->_cury][win->_curx]; 17*3532Sarnold temp1 = &win->_y[win->_cury][win->_maxx - 1]; 18*3532Sarnold temp2 = temp1 - 1; 19*3532Sarnold while (temp1 > end) 20*3532Sarnold *temp1-- = *temp2--; 21*3532Sarnold *temp1 = c; 22*3532Sarnold win->_lastch[win->_cury] = win->_maxx - 1; 23*3532Sarnold if (win->_firstch[win->_cury] == _NOCHANGE || 24*3532Sarnold win->_firstch[win->_cury] > win->_curx) 25*3532Sarnold win->_firstch[win->_cury] = win->_curx; 26*3532Sarnold if (win->_cury == LINES - 1 && win->_y[LINES-1][COLS-1] != ' ') 27*3532Sarnold if (win->_scroll) { 28*3532Sarnold wrefresh(win); 29*3532Sarnold scroll(win); 30*3532Sarnold win->_cury--; 31*3532Sarnold } 32*3532Sarnold else { 33*3532Sarnold win->_y[LINES-1][COLS-1] = ' '; 34*3532Sarnold return ERR; 35*3532Sarnold } 36*3532Sarnold return OK; 37*3532Sarnold } 38