32 lines
		
	
	
		
			769 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			769 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <curses.h>
 | 
						|
#include "curspriv.h"
 | 
						|
 | 
						|
/* Winsch() inserts character 'c' at the cursor position in
 | 
						|
   window 'win'. The cursor is advanced.
 | 
						|
*/
 | 
						|
 | 
						|
int winsch(win, c)
 | 
						|
WINDOW *win;
 | 
						|
char c;
 | 
						|
{
 | 
						|
  int *temp1;
 | 
						|
  int *temp2;
 | 
						|
  int *end;
 | 
						|
  int x = win->_curx;
 | 
						|
  int y = win->_cury;
 | 
						|
  int maxx = win->_maxx;
 | 
						|
 | 
						|
  if ((c < ' ') && (c == '\n' || c == '\r' || c == '\t' || c == '\b'))
 | 
						|
	return(waddch(win, c));
 | 
						|
  end = &win->_line[y][x];
 | 
						|
  temp1 = &win->_line[y][maxx];
 | 
						|
  temp2 = temp1 - 1;
 | 
						|
  if (c < ' ')			/* if CTRL-char make space for 2 */
 | 
						|
	temp2--;
 | 
						|
  while (temp1 > end) *temp1-- = *temp2--;
 | 
						|
  win->_maxchng[y] = maxx;
 | 
						|
  if ((win->_minchng[y] == _NO_CHANGE) || (win->_minchng[y] > x))
 | 
						|
	win->_minchng[y] = x;
 | 
						|
  return(waddch(win, c));	/* fixes CTRL-chars too */
 | 
						|
}				/* winsch */
 |