version 1.19, 2000/05/17 12:36:47 |
version 1.20, 2000/11/07 06:43:34 |
|
|
.Nm termcap |
.Nm termcap |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
The |
The |
.Nm Termcap |
.Nm |
file |
file is a database describing terminals, used, for example, by |
is a data base describing terminals, |
|
used, |
|
for example, |
|
by |
|
.Xr \&vi 1 |
.Xr \&vi 1 |
and |
and |
.Xr curses 3 . |
.Xr curses 3 . |
Terminals are described in |
Terminals are described in |
.Nm termcap |
.Nm |
by giving a set of capabilities that they have and by describing |
by giving a set of capabilities that they have and by describing |
how operations are performed. |
how operations are performed. |
Padding requirements and initialization sequences |
Padding requirements and initialization sequences |
are included in |
are included in |
.Nm termcap . |
.Nm "" . |
.Pp |
.Pp |
Entries in |
Entries in |
.Nm termcap |
.Nm |
consist of a number of `:'-separated fields. |
consist of a number of `:'-separated fields. |
The first entry for each terminal gives the names that are known for the |
The first entry for each terminal gives the names that are known for the |
terminal, separated by `|' characters. |
terminal, separated by `|' characters. |
|
|
.It "ta str (P) Tab to next 8-position hardware tab stop." |
.It "ta str (P) Tab to next 8-position hardware tab stop." |
.It "tc str Entry of similar terminal \- must be last." |
.It "tc str Entry of similar terminal \- must be last." |
.It "te str String to end programs that use" |
.It "te str String to end programs that use" |
.Nm termcap . |
.Nm "" . |
.It "ti str String to begin programs that use" |
.It "ti str String to begin programs that use" |
.Nm termcap . |
.Nm "" . |
.It "ts str (N) Go to status line, column" |
.It "ts str (N) Go to status line, column" |
.Em n . |
.Em n . |
.It "UC bool (o) Upper-case only." |
.It "UC bool (o) Upper-case only." |
|
|
.Ss A Sample Entry |
.Ss A Sample Entry |
The following entry, which describes the Concept\-100, is among the more |
The following entry, which describes the Concept\-100, is among the more |
complex entries in the |
complex entries in the |
.Nm termcap |
.Nm |
file as of this writing. |
file as of this writing. |
.Pp |
.Pp |
.Bd -literal |
.Bd -literal |
Line 525 Comments may be included on lines beginn |
|
Line 521 Comments may be included on lines beginn |
|
.Dq # . |
.Dq # . |
.Ss Types of Capabilities |
.Ss Types of Capabilities |
Capabilities in |
Capabilities in |
.Nm termcap |
.Nm |
are of three types: Boolean capabilities, |
are of three types: Boolean capabilities, |
which indicate particular features that the terminal has; |
which indicate particular features that the terminal has; |
numeric capabilities, |
numeric capabilities, |
Line 613 character in a string capability it |
|
Line 609 character in a string capability it |
|
must be encoded as |
must be encoded as |
.Sy \&\e200 . |
.Sy \&\e200 . |
(The routines that deal with |
(The routines that deal with |
.Nm termcap |
.Nm |
use C strings and strip the high bits of the output very late, so that |
use C strings and strip the high bits of the output very late, so that |
a |
a |
.Sy \&\e200 |
.Sy \&\e200 |
Line 631 in the example above. |
|
Line 627 in the example above. |
|
.Ss Preparing Descriptions |
.Ss Preparing Descriptions |
The most effective way to prepare a terminal description is by imitating |
The most effective way to prepare a terminal description is by imitating |
the description of a similar terminal in |
the description of a similar terminal in |
.Nm termcap |
.Nm |
and to build up a description gradually, using partial descriptions |
and to build up a description gradually, using partial descriptions |
with |
with |
.Xr \&vi |
.Xr \&vi |
to check that they are correct. |
to check that they are correct. |
Be aware that a very unusual terminal may expose deficiencies in |
Be aware that a very unusual terminal may expose deficiencies in |
the ability of the |
the ability of the |
.Nm termcap |
.Nm |
file to describe it |
file to describe it |
or bugs in |
or bugs in |
.Xr \&vi . |
.Xr \&vi . |
|
|
The |
The |
.Ev TERMCAP |
.Ev TERMCAP |
environment variable is usually set to the |
environment variable is usually set to the |
.Nm termcap |
.Nm |
entry itself |
entry itself |
to avoid reading files when starting up a program. |
to avoid reading files when starting up a program. |
.Pp |
.Pp |
Line 740 because the space would erase the charac |
|
Line 736 because the space would erase the charac |
|
.Pp |
.Pp |
A very important point here is that the local cursor motions encoded |
A very important point here is that the local cursor motions encoded |
in |
in |
.Nm termcap |
.Nm |
have undefined behavior at the left and top edges of a |
have undefined behavior at the left and top edges of a |
.Tn CRT |
.Tn CRT |
display. |
display. |
Line 793 This is useful for drawing a box around |
|
Line 789 This is useful for drawing a box around |
|
for example. |
for example. |
If the terminal has switch-selectable automatic margins, |
If the terminal has switch-selectable automatic margins, |
the |
the |
.Nm termcap |
.Nm |
description usually assumes that this feature is on, |
description usually assumes that this feature is on, |
.Em i.e . , |
.Em i.e . , |
.Sy \&am . |
.Sy \&am . |
|
|
.Sy \&\er , |
.Sy \&\er , |
as the system may change or discard them. |
as the system may change or discard them. |
(Programs using |
(Programs using |
.Nm termcap |
.Nm |
must set terminal modes so that tabs are not expanded, so |
must set terminal modes so that tabs are not expanded, so |
.Sy \&\et |
.Sy \&\et |
is safe to send. |
is safe to send. |
Line 1032 and the starting and ending columns in m |
|
Line 1028 and the starting and ending columns in m |
|
.Xr terminfo |
.Xr terminfo |
capability is described for completeness. |
capability is described for completeness. |
It is unlikely that any |
It is unlikely that any |
.Nm termcap Ns \- using |
.Nm Ns \-using |
program will support it.) |
program will support it.) |
.Pp |
.Pp |
If the terminal can retain display memory above the screen, then the |
If the terminal can retain display memory above the screen, then the |
Line 1050 may bring down non-blank lines. |
|
Line 1046 may bring down non-blank lines. |
|
.Ss Insert/Delete Character |
.Ss Insert/Delete Character |
There are two basic kinds of intelligent terminals with respect to |
There are two basic kinds of intelligent terminals with respect to |
insert/delete character that can be described using |
insert/delete character that can be described using |
.Nm termcap . |
.Nm "" . |
The most common insert/delete character operations affect only the characters |
The most common insert/delete character operations affect only the characters |
on the current line and shift characters off the end of the line rigidly. |
on the current line and shift characters off the end of the line rigidly. |
Other terminals, such as the Concept\-100 and the Perkin Elmer Owl, make |
Other terminals, such as the Concept\-100 and the Perkin Elmer Owl, make |
Line 1090 and special treatment of untyped spaces) |
|
Line 1086 and special treatment of untyped spaces) |
|
we have seen no terminals whose insert |
we have seen no terminals whose insert |
mode cannot be described with the single attribute. |
mode cannot be described with the single attribute. |
.Pp |
.Pp |
.Nm Termcap |
.Nm |
can describe both terminals that have an insert mode and terminals |
can describe both terminals that have an insert mode and terminals |
that send a simple sequence to open a blank position on the current line. |
that send a simple sequence to open a blank position on the current line. |
Give as |
Give as |
Line 1246 Not all modes need be supported by |
|
Line 1242 Not all modes need be supported by |
|
.Sy \&sa , |
.Sy \&sa , |
only those for which corresponding attribute commands exist. |
only those for which corresponding attribute commands exist. |
(It is unlikely that a |
(It is unlikely that a |
.Nm termcap Ns \-using |
.Nm "" Ns \-using |
program will support this capability, which is defined for compatibility |
program will support this capability, which is defined for compatibility |
with |
with |
.Xr terminfo . ) |
.Xr terminfo . ) |
Line 1448 the display for cursor addressing to wor |
|
Line 1444 the display for cursor addressing to wor |
|
This is also used for the Tektronix 4025, where |
This is also used for the Tektronix 4025, where |
.Sy \&ti |
.Sy \&ti |
sets the command character to be the one used by |
sets the command character to be the one used by |
.Nm termcap . |
.Nm "" . |
.Pp |
.Pp |
Other capabilities |
Other capabilities |
include |
include |
|
|
the name of a file containing long initialization strings. |
the name of a file containing long initialization strings. |
These strings are expected to set the terminal into modes |
These strings are expected to set the terminal into modes |
consistent with the rest of the |
consistent with the rest of the |
.Nm termcap |
.Nm |
description. |
description. |
They are normally sent to the terminal by the |
They are normally sent to the terminal by the |
.Xr tset |
.Xr tset |
Line 1536 This is normally used by the |
|
Line 1532 This is normally used by the |
|
command to determine whether to set the driver mode for hardware tab |
command to determine whether to set the driver mode for hardware tab |
expansion, and whether to set the tab stops. |
expansion, and whether to set the tab stops. |
If the terminal has tab stops that can be saved in nonvolatile memory, the |
If the terminal has tab stops that can be saved in nonvolatile memory, the |
.Nm termcap |
.Nm |
description can assume that they are properly set. |
description can assume that they are properly set. |
.Pp |
.Pp |
If there are commands to set and clear tab stops, they can be given as |
If there are commands to set and clear tab stops, they can be given as |
Line 1662 the number of times to repeat it. |
|
Line 1658 the number of times to repeat it. |
|
(This is a |
(This is a |
.Xr terminfo |
.Xr terminfo |
feature that is unlikely to be supported by a program that uses |
feature that is unlikely to be supported by a program that uses |
.Nm termcap . ) |
.Nm "" . ) |
.Pp |
.Pp |
If the terminal has a settable command character, such as the |
If the terminal has a settable command character, such as the |
Tektronix 4025, this can be indicated with |
Tektronix 4025, this can be indicated with |
|
|
.Sy \&px |
.Sy \&px |
causes the string to be transmitted to the computer. |
causes the string to be transmitted to the computer. |
Unfortunately, due to lack of a definition for string parameters in |
Unfortunately, due to lack of a definition for string parameters in |
.Nm termcap , |
.Nm "" , |
only |
only |
.Xr terminfo |
.Xr terminfo |
supports these capabilities. The |
supports these capabilities. The |
.Sy \&ZZ |
.Sy \&ZZ |
capability is automatically generated in the tgetent call and must |
capability is automatically generated in the tgetent call and must |
never be defined in |
never be defined in |
.Nm termcap |
.Nm |
entries. |
entries. |
.Ss Glitches and Braindamage |
.Ss Glitches and Braindamage |
Hazeltine terminals, which do not allow `~' characters to be displayed, |
Hazeltine terminals, which do not allow `~' characters to be displayed, |
Line 1896 Hash database file containing terminal d |
|
Line 1892 Hash database file containing terminal d |
|
.Sh CAVEATS AND BUGS |
.Sh CAVEATS AND BUGS |
The |
The |
.Em Note : |
.Em Note : |
.Nm termcap |
.Nm |
functions |
functions |
were replaced by |
were replaced by |
.Xr terminfo |
.Xr terminfo |