infocmp(1M)infocmp(1M)NAMEinfocmp - compare or print out terminfo descriptions
directory] directory] [termname]...
can be used to compare a binary entry with other terminfo entries, re‐
write a description to take advantage of the terminfo field, or print
out a description from the binary file in a variety of formats. In all
cases, the boolean fields will be printed first, followed by the
numeric fields, followed by the string fields.
If no options are specified and zero or one termnames are specified,
the option will be assumed. If more than one termname is specified,
the option will be assumed.
Comparison Options: -d, -c, -n
compares the description of the first terminal termname with each of
the descriptions given by the entries for the other terminal's
termnames. If a capability is defined for only one of the terminals,
the value returned will depend on the type of the capability: for bool‐
ean variables, for integer variables, and for string variables.
produces a list of each capability that is different between two
This option is useful to show the difference between two entries,
created by different people, for the same or similar terminals.
produces a list of each capability that is common between two
entries. Capabilities that are not set are ignored. This option
can be used as a quick check to see if the option is worth using.
produces a list of each capability that is in neither entry.
If no termnames are given, the environment variable will be used
for both of the termnames. This can be used as a quick check to
see if anything was left out of a description.
Source Listing Options: -C, -I, -L, -r
The and options will produce a source listing for each terminal named.
Use the long C variable name listed in
put out all capabilities in form.
If no termnames are given, the environment variable is used for the
The source produced by the option may be used directly as a entry, but
not all of the parameterized strings may be changed to th format. will
attempt to convert most of the parameterized information, but anything
not converted will be plainly marked in the output and commented out.
These should be edited by hand.
All padding information for strings will be collected together and
placed at the beginning of the string where expects it. Mandatory pad‐
ding (padding information with a trailing '/') will become optional.
All variables no longer supported by but which are derivable from other
variables, will be output. Not all capabilities will be translated;
only those variables which were part of will normally be output. Spec‐
ifying the option will take off this restriction, allowing all capabil‐
ities to be output in form.
Note that because padding is collected to the beginning of the capabil‐
ity, not all capabilities are output. Mandatory padding is not sup‐
ported. Because strings are not as flexible, it is not always possible
to convert a string capability into an equivalent format. A subsequent
conversion of the file back into format will not necessarily reproduce
the original source.
Some common parameter sequences, their equivalents, and some terminal
types which commonly have such sequences, are:
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
Use= Option: -u
source description of the first terminal termname which is
relative to the sum of the descriptions given by the entries
for the other terminals termnames. It does this by analyzing
the differences between the first termname and the other
termnames and producing a description with fields for the
other terminals. In this manner, it is possible to retrofit
generic terminfo entries into a terminal'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 will show what can be done to change
one description to be relative to the other.
A capability will get printed with an at-sign (@) if it no longer
exists in the first termname, but one of the other termname 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 that has this
capability gives a different value for the capability than that in the
The order of the other termname entries is significant. Since the ter‐
minfo compiler does a left-to-right scan of the capabilities, specify‐
ing two entries that contain differing entries for the same capabili‐
ties will produce different results depending on the order that the
entries are given in. will flag any such inconsistencies between the
other termname entries as they are found.
Alternatively, specifying a capability after a entry that contains that
capability will cause the second specification to be ignored. Using to
recreate a description can be a useful check to make sure that every‐
thing was specified correctly in the original source description.
Another error that does not cause incorrect compiled files, but will
slow down the compilation time, is specifying extra fields that are
superfluous. will flag any other termname fields that were not needed.
Other Options: -s, -v, -V, -1, -w
sorts the fields within each type according to
the argument below:
leave fields in the order that they are
stored in the database.
sort by the long C variable name.
sort by the
If the option is not given, the fields printed out will be sorted
alphabetically by the name within each type, except in the case of
the or the options, which cause the sorting to be done by the name
or the long C variable name, respectively.
prints out tracing information on standard error as the program runs.
prints out the version of the program in use on standard error and
causes the fields to be printed out one to a line.
Otherwise, the fields will be printed several to a line to a maxi‐
mum width of 60 characters.
changes the output to
Changing Databases: -A, -B
The location of the compiled database is taken from the environment
variable If the variable is not defined, or the terminal is not found
in that location, the system database, usually in will be used. The
options and may be used to override this location. The option will set
for the first termname and the option will set for the other termnames.
With this, 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 peo‐
Compiled terminal description database.
SEE ALSOcaptoinfo(1M), tic(1M), curses_intro(3X), terminfo(4).