## NAME

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

## 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 termi-
         nal. It uses the tecla command-line editing library to  read
         input  from  the real terminal, then forwards each just com-
         pleted  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  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 redisplayed so often that it slows down output.

## 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 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 psuedo terminal, the enhance program has no way of know-
         ing  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 previ-
         ously 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

         libtecla(3)

## AUTHOR

         Martin Shepherd  (mcs@astro.caltech.edu)