ENHANCE(1) User Commands ENHANCE(1)


enhance - enhanced command-line editing facilities


enhance command [argument]...


The enhance program provides enhanced command-line editing facilities to
users of third party applications, to which one doesn't have any source
code. It does this by placing a pseudo-terminal between the application
and the real terminal. It uses the tecla command-line editing library to
read input from the real terminal, then forwards each just completed
input line to the application via the pseudo-terminal. All output from
the application is forwarded back unchanged to the real terminal.

Whenever the application stops generating output for more than a tenth of
a second, the enhance program treats the latest incomplete output line as
the prompt, and re-displays any incompleted input line that the user has
typed after it. The small delay, which is imperceptible to the user,
isn't necessary for correct operation of the program. It is just an
optimization, designed to stop the input line from being re-displayed so
often that it slows down output.

The user-level command-line editing facilities provided by the Tecla
library are documented in the tecla(7) man page


The one major problem that hasn't been solved yet, is how to deal with
applications that change whether typed input is echo'd by their
controlling terminal. For example, programs that ask for a password, such
as ftp and telnet, temporarily tell their controlling terminal not to
echo what the user types. Since this request goes to the application side
of the pseudo terminal, the enhance program has no way of knowing that
this has happened, and continues to echo typed input to its controlling
terminal, while the user types their password.

Furthermore, before executing the host application, the enhance program
initially sets the pseudo terminal to noecho mode, so that everything
that it sends to the program doesn't get redundantly echoed. If a program
that switches to noecho mode explicitly restores echoing afterwards,
rather than restoring the terminal modes that were previously in force,
then subsequently, every time that you enter a new input line, a
duplicate copy will be displayed on the next line.


tecla library

tecla personal customization file.


See attributes(7) for descriptions of the following attributes:

|Interface Stability | Evolving |


libtecla(3LIB), attributes(7), tecla(7)

May 18, 2004 ENHANCE(1)