summaryrefslogtreecommitdiff
path: root/libtecla-1.4.1/html/enhance.html
blob: 9f6bb09bebe4a007bd6eeb64f9c75bb8cc30cd15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<head>
<title>Manual Page</title>
</head>
<body>
<pre>
</pre><h2>NAME</h2><pre>
     enhance - A program that adds command-line editing to  third
     party programs.

</pre><h2>SYNOPSIS</h2><pre>
     enhance command [ argument ... ]


</pre><h2>DESCRIPTION</h2><pre>
     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.


</pre><h2>DEFICIENCIES</h2><pre>
     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.


</pre><h2>FILES</h2><pre>
     libtecla.a    -   The tecla library.
     ~/.teclarc    -   The tecla personal customization file.


</pre><h2>SEE ALSO</h2><pre>
     <a href="libtecla.html">libtecla(3)</a>


</pre><h2>AUTHOR</h2><pre>
     Martin Shepherd  (mcs@astro.caltech.edu)









































</pre>
</body>