[net.emacs] Unipress V2.0n fixes

gallaher@topaz.ARPA (Mike Gallaher) (06/26/85)

Here are two fixes:
**********************************************************************
Unipress Emacs Bug Fix
Emacs version:	V2.00, V2.01, T2.10
ident:		display-1
date:		1-Jun-85
posted-to:	
fixed-by:	unipress!mg (Mike Gallaher @ Unipress Software)
source-files:	display.c

Synopsis:	repaints entire screen instead of using ins/del line

Description:
	The display updating algorithm repaints the entire screen
	instead of using insert/delete line at speeds >= 9600 baud.
	This "feature" had been added as a "band-aid" to get around
	padding bugs for certain terminals, mostly the Sun bitmap
	console.  It works for those terminals, but makes the
	updating excruciatingly slow for terminals that would otherwise
	work properly.

Repeat-by:
	Fill a screen and execute scroll-one-line-up (bound to ^Z by
	default).

Fix:
	In the file display.c (V2.00) or dispsysdep.c (V2.01, V2.02)
	in the function InitTermType, find the following code and comment
	it out:

    		if (baud_rate >= 9600)
      		    tt.t_ICmf = tt.t_ICov = tt.t_DCmf = tt.t_DCov
           		= tt.t_ILmf = tt.t_ILov = MissingFeature;

	Then, if you want to be able to disable the use of insert/delete
	line/character by setting an MLisp variable (before the first
	screen update, in an initialization file), add the following code
	to dsp.c:
====================================================
dsp.c
70a71
> int UseInsDelLineChar;
72d72
< 
153a154,162
> /*
>  * If UseInsDelLine is false, disable insert/delete char and ins/del
>  * line, forcing full screen update.  This is faster on terminals that
>  * need lots of padding for these operations.    
>  */
>     if (!UseInsDelLineChar)
>       tt.t_ICmf = tt.t_ICov = tt.t_DCmf = tt.t_DCov
>            = tt.t_ILmf = tt.t_ILov = MissingFeature;
> 
175a185,186
>     DefIntVar("use-ins/del-line/char",  &UseInsDelLineChar);
>     UseInsDelLineChar = TRUE;

-------------------- End of display-1 --------------------

**********************************************************************
Unipress Emacs Bug Fix
Emacs version:	V2.00, V2.01, T2.10
ident:		rembind-1
date:		26-Jun-85
posted-to:	
fixed-by:	unipress!dm  (David Medinets @ Unipress Software)
source-files:	keybind.c

Synopsis:	typing ^G at remove-binding core dumps

Description:
	If you type ^G at remove-binding or remove-local-binding,
	Emacs behaves strangely and will probably core dump.
	This turns out to be because, when aborted, getkey calls error
	(which sets Emacs_Err) but then calls DoDsp to turn off the
	'I' mode line state indicator, which also resets Emacs_Err.
	The Remove{Local}Binding functions relied on checking only
	Emacs_Err for failure.  (This also causes problems for
	get-tty-keys, because MLisp that calls it cannot know that an
	error occurred if you type ^G at get-tty-keys, and will try to
	use the result.)

Repeat-by:
	ESC-x remove-binding ^G
Fix:
	The fix is to make keybind.c$Remove{Local}Binding check to see
	if getkey returned FAIL.  In both of those functions, change
	the lines
	  (void) getkey(CurrentGlobalMap, ": remove-binding ");
	  if (!Emacs_Err) {
	to

	  if (getkey(CurrentGlobalMap, ": remove-binding ") != (char *) FAIL
		&& !Emacs_Err) {

--------------- End of rembind-1 ------------------------------

chris@umcp-cs.UUCP (Chris Torek) (06/27/85)

The Sun bitmap driver should simply leave the insert & delete functions
null when actually driving the console.  Then none of that hackery would
be required and everything would work right.  (I/D is faster when you're
rlogin'ed so there's no lossage there.)

That's what I do, anyway....
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris@maryland