Re: Bug#97094: Summary of tty handling bug (bug #97094)
On Sat, May 12, 2001 at 05:04:44PM -0700, Thomas Bushnell, BSG wrote:
> Also, bash doesn't pay attention to echok or most tty bits, so people
> trying to test this should certainly be using cat or something stupid
> to read the input.
Bash uses readline for terminal handling, unless it is started with
--noediting. Indeed does it then display the literal ^U after running
stty -echok.
This I found in the "readline" section of the bash(1) manpage:
unix-line-discard (C-u)
Kill backward from point to the beginning of the
line. The killed text is saved on the kill-ring.
You might also try ash, which doesn't use readline.
I cannot reproduce the original problem with:
$ gnome-terminal &
I can reproduce it with:
$ gnome-terminal -e 'bash --noediting' &
Or:
$ gnome-terminal -e 'ash' &
In both cases, Ctrl-U prints ^U on the screen. Also in both cases, after
stty echok, it is fixed.
This raises the question to Taral: do you use a particularly odd shell, or
do you set any kind of non-default settings in your environment that could
possibly relate to the behaviour that you are seeing, while others don't?
BTW, I tested some more and found that in an xterm:
$ stty
speed 38400 baud; line = 0;
-brkint -imaxbel
in gnome-terminal:
$ stty
speed 38400 baud; line = 0;
eol = M-^?; eol2 = M-^?;
ixany
-echok
in aterm:
$ stty
speed 38400 baud; line = 0;
lnext = <undef>;
I can't remember tweaking any of these terminal emulators, so I wonder
why the (iirc default) behaviours differ?
In particular, the -echok setting that gnome-terminal defaults to, appears
to break input behaviour of shells that rely on sane terminal settings.
IOW why or to what end does gnome-terminal turn off or not turn on some
of the sane terminal features?
The stty(1) manpage defines "sane" as follows:
sane same as cread -ignbrk brkint -inlcr -igncr icrnl
-ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl
onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0
vt0 ff0 isig icanon iexten echo echoe echok -echonl
-noflsh -xcase -tostop -echoprt echoctl echoke, all
special characters to their default values.
This implies that xterm is not entirely sane either (-brkint).
Does it sound very unreasonable to expect from a terminal emulator that
it provides a "sane" terminal environment by default?
Cheers,
Joost
Reply to: