martillo@mit-athena.ARPA (Joaquim Martillo) (11/06/84)
The latest version of CCA Emacs (162.45z) which we received at MIT did not run properly unless stty tabs was first executed. This requirement is a pain in the neck and is eliminated by adding a line in e_io.c in the function uncook(). After nsgb.flags |= RAW; add nsgb.flags &= ~XTABS; If you are running Berkeley 4.2BSD in a networked environment and wish to have both Start/Stop processing when not running emacs and also whish to use ^S (incremental search) and ^Q (quote character) when running emacs over the network, changes must be made in uncook() and cook(0 in e_io.c. In uncook() change #if SUN ztch.t_startc = ztch.t_stopc = '\237'; ioctl(1, TIOCSETC, &ztch); #end to #if SUN ztch.t_startc = ztch.t_stopc = '\237'; ioctl(1, TIOCSETC, &ztch); #else ztch.t_startc = ztch.t_stopc = -1; ioctl(1, TIOCSETC, &ztch); #end . When the start/stop characters are set to -1, the slave part of the pseudoterminal driver informs the master, and rlogind reads a control byte which says start/stop processing has been turned off. rlogind then sends an out of band message back to the local rlogin process to turn off start/stop processsing. To turn start/stop processing back on on leaving emacs, the following change in cook() in e_io.c should be made. Change the conditional execution of ioctl(1, TIOCSETC, &tch) for the RAW mode case for SUN to an uncondition execution in RAW mode for all systems. The code should read: if(cbreak && (strncmp(TERM, "aaa", 3) || sgb.sg_ospeed != EXTA)){ ioctl(1, TIOCSETC, &tch); ioctl(1, TIOCSLTC, <ch); } else { ioctl(1, TIOCSETC, &tch); } . This again causes the out of band message to be sent back to the local rlogin -- this time to turn back on start/stop processing.
z@masscomp.UUCP (Steve Zimmerman) (11/08/84)
> The latest version of CCA Emacs (162.45z) which we received at MIT did > not run properly unless stty tabs was first executed. This requirement > is a pain in the neck and is eliminated by adding a line in e_io.c in > the function uncook(). CCA EMACS already does look at the current tab setting to see whether it should use tabs in its output; see the reference to XTABS in termcap() in e_disp.c for how it does this. Futhermore, I just tested it once again and verified that CCA EMACS does not output tabs if you have set "stty -tabs", and that it works properly for either setting of "tabs". According to the 4.2BSD manual, in RAW mode "no output processing is done." Yet the posted fix clears the XTABS bit in RAW mode, which according to the manual should not affect anything. If there is a problem, and if the posted fix cures it, then my guess is that this problem occurs only over network connections, and that the network software is doing something funny with tabs in RAW mode that it shouldn't. If the posted fix cures this, then it's reasonable to put it in, as it should have no effect on sessions not conducted over the network. Steve Zimmerman
chris@umcp-cs.UUCP (Chris Torek) (11/09/84)
By the way, be careful where you set and reset the start/stop chars for 4.2BSD -- when rlogind receives the OOB signal about ^S/^Q on PTYs, it flushes any input data. I found this out the hard way when I put the ``set ^S/^Q'' changes into our local Gosling Emacs, but put them after the ``uninitialze terminal'' calls. All the strings sent to fix up the terminal were flushed by rlogin! -- (This mind accidently left blank.) In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (301) 454-7690 UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland
mp@allegra.UUCP (Mark Plotnick) (11/09/84)
By the way, does anyone besides MIT actually have CCA EMACS with Elisp? Someone here ordered it with the proviso that we get the version with Elisp, and he's been waiting several months. Mark
z@masscomp.UUCP (Steve Zimmerman) (11/11/84)
> By the way, does anyone besides MIT actually have CCA EMACS with > Elisp? Someone here ordered it with the proviso that we get the > version with Elisp, and he's been waiting several months. > Mark All the Unix versions of CCA EMACS with Elisp went out in September; this was some large number of orders. The version referred to in a previous message, 162.45z, contains Elisp. There were delays in getting out the VMS version of CCA EMACS with Elisp, and that's probably what you heard about. I don't know if they've got it out yet. Steve Zimmerman
chris@umcp-cs.UUCP (Chris Torek) (11/11/84)
Aha! This sounds familiar. I believe rlogin attempts to expand tabs for you, if you didn't have ``stty tabs'' set when you started it. This is not a problem with CCA Emacs, nor vnews, but with rlogin, which is trying too hard to be smart. -- (This line accidently left nonblank.) In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (301) 454-7690 UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland