On Thu, 11 Nov 2010, Ronald F.Guilmette wrote:
Description:
Apparently, /bin/csh (aka /bin/tcsh) is diddling termios flags, in particular
the ECHO flag, for no apparently good reason and without ever even having been
asked to do so. The result is that the /usr/bin/script program, when invoked
with the -k option, will log every input character the user types in TWICE,
but only if the user has SHELL set in the environment to either /bin/csh or
to /bin/tcsh. This behavior does not seem to occur when and if SHELL is set
to /bin/sh.
/bin/sh now does this too. bash does this too (in at least versions 1.14.7
and 4.0.35). I think the mode switch in the shell is an unavoidable
consequence of line editing in the shell, and script is depending on the
line editing being done in the kernel. The old versions of /bin/sh that
don't have the problem differ in not starting up in line editing mode.
P.S. Strangely, when you run /usr/bin/script with SHELL set to /bin/tcsh
and when you then run a program from the tcsh command prompt, that program
will see a properly set group of termios bitflags, e.g. when and if it
calls tcgetattr().
This also happens with at least bash, since bash is careful to virtualize
the terminal state by context switching it to a different value only
while in its line editor.
I don't understand why clearing ECHO in line editing mode doubles the
script -k output instead of suppressing it.
Bruce
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"