Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site topaz.ARPA
Path: utzoo!watmath!clyde!cbosgd!cbdkc1!desoto!packard!topaz!gallaher
From: gallaher@topaz.ARPA (Mike Gallaher)
Newsgroups: net.emacs
Subject: Unipress V2.0n fixes
Message-ID: <2386@topaz.ARPA>
Date: Wed, 26-Jun-85 05:24:55 EDT
Article-I.D.: topaz.2386
Posted: Wed Jun 26 05:24:55 1985
Date-Received: Thu, 27-Jun-85 07:19:26 EDT
Organization: Unipress Software, Highland Park, NJ
Lines: 97

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 ------------------------------