Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Nov 2010 09:36:39 -0600 (CST)
From:      Robert Bonomi <bonomi@mail.r-bonomi.com>
To:        brde@optusnet.com.au
Cc:        freebsd-bugs@freebsd.org, FreeBSD-gnats-submit@freebsd.org, rfg@tristatelogic.com
Subject:   Re: bin/152154: /bin/csh & /bin/tcsh improperly diddle termios flags
Message-ID:  <201011131536.oADFad5B024105@mail.r-bonomi.com>

next in thread | raw e-mail | index | archive | help
> From owner-freebsd-bugs@freebsd.org  Fri Nov 12 03:46:22 2010
> Date: Fri, 12 Nov 2010 20:48:08 +1100 (EST)
> From: Bruce Evans <brde@optusnet.com.au>
> Subject: Re: bin/152154: /bin/csh & /bin/tcsh improperly diddle termios flags
>
> On Fri, 12 Nov 2010, Bruce Evans wrote:
>
>
> I just remembered a related problem.  I often mistype command lines,
> or do complicated editing of them involving many backspaces and other
> control characters to move around or search history.  script makes a
> mess of this by showing all the control characters, even without -k.

This is  _documented behavior_.   It is, also, essentially inescapable.

  " BUGS
      Script places everything in the log file, including linefeeds and
      backspaces.  This is not what the naive user expects. "


It is also documented in the body of the description:

  " The script utility works best with commands that do not manipulate 
    the screen.  The results are meant to emulate a hardcopy terminal, 
    not an addressable one. "

Aside: some of us _count_  on script behaving that way -- capturing _every_ 
character sent out.  

Script has -no- way of knowing what is echoed 'editing' characters, and 
what is 'significant' output.

*ALL* script 'guarantees' -- in the situation involving an 'addressable'
terminal -- is that if you play back the logfile to the _same_ type of 
terminal is that 'what you see' on the screen on replay is "what you got'
originally.   True "WYSIWYG".  <grin>


> The only way to handle this right might be to have the line editor in
> script itself ...

That works _UNTIL_ you need to pass a 'line edit' character to an application.
Heaven forbid you forget you have script running, and invoke a full-screen 
editor (or any-other full-scrren utility for that matter) that uses one of
the line-edit characters as it's "exit" sequence.

And, even doing _that_ does not help with the 'mess' created by rummaging
through, say, the csh cmommand history.

A script functionality integrated into whichever CLI (shell) one uses
could eliminate the line-edit / history, etc. "mess" from the logfile,
but that is 'no help' in dealing with _all_ the other programs that 
produce output "assuming" an 'addressable' display.  How do you log a
'vi' session, for example?  <evil grin>

For a 'cleaner' typescript, set the TERM environment variable to 'dumb'.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011131536.oADFad5B024105>