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