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