Subject: Re: Cryptic behavior...
To: None <current-users@NetBSD.ORG>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: current-users
Date: 03/12/1998 18:27:50
> I wrote once long ago about a problem where mail(1) would stop
> echoing responses to me, stop processing ^D, and so on.
> Nothing else was affected. ksh is happy, trn is happy, vi is happy.
There are lots of other programs out there. See below....
> It looks like this is caused by the equivalent of
> stty -echo -echoe -icanon -pendin
> happening.
> If so, can you explain why it doesn't affect my shell, or any other
> program I can think of? Maybe this is one of those ksh magic things.
Well, I note that ksh, trn, and vi are all programs that do the
equivalent of -echo -icanon themselves (ksh for command-line editing,
the other two because their user interface demands they do cbreak-style
input). Perhaps mail(1) is the only program you regularly use that
doesn't do cbreak?
Until I put locktty into my shell I had similar problems: a cbreak or
raw program would crash on me and leave my tty settings pretty mangled,
and I wouldn't notice because the shell would run happily. But then I
added locktty, and the problem went away. (What does it do? When you
do "set locktty", at the next opportunity the shell does a tcgetattr()
and saves the result. Every time it gets the opportunity thereafter,
it does a tcsetattr() to the saved state (unless and until locktty gets
unset, of course). This means that I had to alias stty to "unset
locktty; /bin/stty \^?:*; set locktty", but that's a small price to pay
for never having to worry about crashing programs screwing up my tty
state again.)
der Mouse
mouse@rodents.montreal.qc.ca
7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B