Beispiel #1
0
/* 	Clear current window and set as requested.
 *		^L - clear current window and redisplay it (default top)
 *		<arg>^L - select new window so that current line is
 *			the <arg>'th from top of window (0 = top line)
 *		^U^L - clear current line and redisplay.
 */
f_newwin()
{	register int i, n;
	register struct window *w;

	d_fixcur();		/* Ensure screen vars correct */
	w = cur_win;
	if (exp_p)
	  {	if((n = exp) == 4 && exp_p == 4		/* CTRL-U? */
		  && (i = d_line(cur_dot)) >= 0)	/* On valid line? */
		  {	d_lupd(w, i);			/* Update it */
			return;
		  }
	  }
	else			/* No argument given */
	  {	redp(RD_SCREEN);	/* Clear whole screen (later just window? */
#if IMAGEN
		return;
#else
		n = (ev_nwpct*w->w_ht)/100;	/* Set new window using % */
#endif /*-IMAGEN*/
	  }
	if (n < 0) n = 0;		/* Ensure # is reasonable */
	else if (n >= w->w_ht)
		n = w->w_ht - 1;
	d_fgoloff(-n);			/* Go up given # of lines */
	w->w_topldot = e_dot();		/* Set new top-line dot */
	e_gocur();			/* Move back to cur_dot */
	redp(RD_FIXWIN);		/* Say to re-hack window */
}
f_ekmac()
{
	if(km_flag > 0 && (--km_exp >= 0))
	  {	ex_go((SBBUF *)km_buf, (chroff)0);
	  }
	else if(km_flag)
	  {	km_flag = 0;
		kdef_mode = 0;	/* Flush minor mode */
		redp(RD_MODE);
	  }
}
Beispiel #3
0
/* EFUN: "Other New Screen" (not EMACS) - from IMAGEN config */
f_othnscreen()
{
	if (! oth_win)
		return;
	f_othwind();
	if (exp_p)			/* With arg, back up */
		d_screen(-1);
	else
		d_screen(1);
	f_othwind();
	redp(RD_WINDS);			/* Look at all windows */
}
f_skmac()
{	register struct buffer *b;
	struct buffer *make_buf();

	if(km_flag)
	  {	ding("Kbd macro active, ignoring \"Start Kbd Macro\"");
		return;
	  }
	if((b = km_buf) == 0)
		b = km_buf = make_buf(" *KBDMAC*");
	ex_reset(b);
	km_flag = -1;		/* Say starting macro collection */
	kdef_mode = 1;
	redp(RD_MODE);
}