infocmp - compare or print out terminfo descriptions
infocmp [ -cdnILCruvV1 ] [ -sd ] [ -si ] [ -sl ] [ -sc ] [ -w width ]
[-A directory ] [-B directory ] [ termname ...]
Note: arguments to /usr/5bin/infocmp are the same as those for infocmp,
The System V version of this command is available with the System V
software installation option. Refer to for information on how to
install optional software.
infocmp compares a binary terminfo(5V) entry with other terminfo
entries, rewrites a terminfo description to take advantage of the use=
field, or prints out a terminfo description from the corresponding
binary file in a variety of formats. It displays boolean fields first,
then numeric fields, then string fields.
It can also convert a terminfo entry to a termcap(5) entry; the -C flag
causes infocmp to perform this conversion. Some termcap variables are
not supported by terminfo, but those that can be derived from terminfo
variables are displayed. Not all terminfo capabilities are translated
either; only those that are allowed in a termcap entry are normally
displayed. Specifying the -r option eliminates this restriction,
allowing all capabilities to be displayed in termcap form.
Because padding is collected at the beginning of a capability, not all
capabilities are displayed. Since mandatory padding is not supported
by terminfo and termcap strings are not as flexible, it is not always
possible to convert a terminfo string capability into an equivalent
working termcap capability. Also, a subsequent conversion of the term-
cap file back into terminfo format will not necessarily reproduce the
original source; infocmp attempts to convert parameterized strings, and
comments out those that it can not.
Some common terminfo parameter sequences, their termcap equivalents,
and some terminal types which commonly have such sequences, are:
center ; lB lB lB . Terminfo Termcap Representative Terminals
%p1%c %. adm %p1%d %d hp, ANSI standard, vt100
%p1%'x'%+%c %+x concept %i %i ANSI standard, vt100
%p1%?%'x'%>%t%p1%'y'%+%; %>xy concept %p2 is printed before
%p1 %r hp
If no termname arguments are given, the environment variable TERM is
used for all expected termname arguments.
If no options are specified and either zero or one termname is speci-
fied, the -I option is assumed to be in effect. If more than one
termname is specified, the -d option is assumed.
infocmp compares the description of the first terminal termname with
each of the descriptions for terminals listed in subsequent termname
arguments. If a capability is defined for only one of the terminals,
the value returned will depend on the type of the capability: F for
boolean variables, -1 for integer variables, and NULL for string vari-
-c Produce a list of capabilities common to both entries. Capabil-
ities that are not set are ignored. This option can be used as
a quick check to see if the -u option is worth using.
-d Produce a list of capabilities that differ between descriptions.
-n Produce a list of capabilities in neither entry.
Source Listing Options
The -I, -L, and -C options produce a source listing for each terminal
-I Use the terminfo names.
-L Use the long C variable name listed in <<term.h>>.
-C Display only those capabilities that have termcap equivalents,
using the termcap names and displaying them in termcap form
The source produced by the -C option may be used directly as a
termcap entry, but not all of the parameterized strings may be
changed to the termcap format. All padding information for
strings is collected together and placed at the beginning of the
string where termcap expects it. Mandatory padding (padding
information with a trailing `/') will become optional.
-r When using -C, display all capabilities, not just those capabil-
ities that have termcap equivalents.
-u Produce a terminfo source description for the first named termi-
nal which is relative to the descriptions given by the entries
for all terminals named subsequently on the command line, by
analyzing the differences between them, and producing a descrip-
tion with use= fields for the other terminals. In this manner,
it is possible to retrofit generic terminfo entries into a ter-
minal's description. Or, if two similar terminals exist, but
were coded at different times or by different people so that
each description is a full description, using infocmp will show
what can be done to change one description to be relative to the
A capability is displayed with an at-sign (@) if it no longer
exists in the first terminal, but one of the other terminal
entries contains a value for it. A capability's value gets
printed if the value in the first termname is not found in any
of the other termname entries, or if the first of the other
termname entries has a different value for that capability.
The order of the other termname entries is significant. Since
the terminfo compiler tic(8V) does a left-to-right scan of the
capabilities, specifying two use= entries that contain differing
entries for the same capabilities will produce different
results, depending on the order in which they are given.
infocmp flags any such inconsistencies between the other
termname entries as they are found.
Alternatively, specifying a capability after a use= entry that
contains it, will cause the second specification to be ignored.
Using infocmp to recreate a description can be a useful check to
make sure that everything was specified correctly in the origi-
Specifying superfluous use= slows down the comparison, but is
not fatal; infocmp flags superfluous use= fields.
-sd Sort fields in the order that they are stored in the terminfo
-si Sort fields by terminfo name.
-sl Sort fields by the long C variable name.
-sc Sort fields by the termcap name.
If no sorting option is given, fields are sorted alphabetically
by the terminfo name within each type, except in the case of the
-C or the -L options, which cause the sorting to be done by the
termcap name or the long C variable name, respectively.
The location of the compiled terminfo database is taken from the envi-
ronment variable TERMINFO. If the variable is not defined, or if the
terminal is not found in that location, the system terminfo database,
usually in /usr/share/lib/terminfo, is used. The options -A and -B may
be used to override this location. With these options, it is possible
to compare descriptions for a terminal with the same name located in
two different databases. This is useful for comparing descriptions for
the same terminal created by different people.
-A Set TERMINFO for the first termname argument.
-B Set TERMINFO for the remaining termname arguments.
-v Print out tracing information on the standard error.
-V Print out the version of the program in use on the standard
error and exit.
-1 Print fields out one to a line. Otherwise, fields are printed
several to a line to a maximum width of 60 characters.
Change the output to width characters.
compiled terminal description database
curses(3V), termcap(5), terminfo(5V), tic(8V)
malloc is out of space!
There was not enough memory available to process all the termi-
nal descriptions requested. Run infocmp in several smaller
stages (with fewer termname arguments).
use= order dependency found:
A value specified in one relative terminal specification was
different from that in another relative terminal specification.
`use=term' did not add anything to the description.
A relative terminal name did not contribute anything to the
must have at least two terminal names for a comparision to be done.
The -u, -d and -c options require at least two terminal names.
26 February 1988 INFOCMP(8V)