    enhance                                  enhance

## NAME

           enhance  - A program that adds command-line editing to third party pro-
           grams.

## SYNOPSIS

           enhance command [ argument ... ]

## DESCRIPTION

           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 edit-
           ing 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 redisplays any incompleted input line that the
           user has typed after it. Note that the small delay, which is  impercep-
           tible  to  the  user, isn't necessary for correct operation of the pro-
           gram. It is just an optimization, designed to stop the input line  from
           being redisplayed so often that it slows down output.

           Note  that  the  user-level command-line editing facilities provided by
           the Tecla library are documented in the tecla man page

## DEFICIENCIES

           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 con-
           trolling 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 psuedo terminal, the enhance program has no way of knowing
           that this has happened, and continues to echo typed input to  its  con-
           trolling 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 pro-
           gram that switches to noecho mode explicitly  restores  echoing  after-
           wards, 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.

## FILES

           libtecla.a    -   The tecla library.
           ~/.teclarc    -   The tecla personal customization file.

## SEE ALSO

           tecla, libtecla

## AUTHOR

           Martin Shepherd  (mcs@astro.caltech.edu)

                                                            enhance