infocmp(1m) DG/UX 4.30 infocmp(1m)
NAME
infocmp - compare or print out terminfo descriptions
SYNOPSIS
infocmp [-d] [-c] [-n] [-I] [-L] [-C] [-r] [-u] [-s d|i|l|c]
[-v] [-V] [-1] [-w width] [-A directory] [-B directory]
[termname ...]
DESCRIPTION
The infocmp command can be used to compare a binary
terminfo(4) entry with other terminfo entries, rewrite a
terminfo(4) description to take advantage of the use=
terminfo field, or print out a terminfo(4) 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.
Default Options
If no options are specified and zero or one termnames (see
term(5)) are specified, the -I option will be assumed,
listing the terminfo(4) description. If more than one
termname is specified, the -d option will be assumed,
comparing the terminfo(4) descriptions.
Comparison Options [-d] [-c] [-n]
Infocmp compares the terminfo(4) description of the first
terminal termname with each of the descriptions for the
other terminals' termnames. If a capability is defined for
only one of the terminals, the value used for the other
terminal being compared will depend on the type of the
capability: F (false) for boolean variables, -1 for integer
variables, and NULL for string variables.
-d produce a list of capabilities that are different.
In this manner, if you have two entries for the same
terminal or similar terminals, using infocmp will
show what is different between the two entries.
This is sometimes necessary when more than one
person produces an entry for the same terminal and
you want to see what is different between the two.
-c produce a list of capabilities that are common
between the two entries. Capabilities that are not
set are ignored. This option can be used as a quick
check before using the -u option.
-n produce a list of capabilities that are in neither
entry. If no termnames are given, the value of the
environment variable TERM will be used for both of
the termnames. This can be used as a quick check to
see if anything was left out of the description.
Licensed material--property of copyright holder(s) Page 1
infocmp(1m) DG/UX 4.30 infocmp(1m)
Source Listing Options [-I] [-L] [-C] [-r]
The -I, -L, and -C options will produce a source listing for
each terminal named.
-I use the terminfo(4) names in the listing
-L use the long C variable name listed in <term.h>
-C use the termcap(5) names
-r when using -C, put out all capabilities, not just
standard termcap(5) variables.
If no termnames are given, the value of the environment
variable TERM will be used for the terminal name.
The source produced by the -C option may be used directly as
a termcap(5) entry, but not all of the parameterized strings
may be changed to the termcap(5) format. Infocmp will
attempt to convert most of the parameterized information,
but that which it doesn't 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
termcap(5) expects it. Mandatory padding (padding
information with a trailing '/') will become optional.
All termcap(5) variables no longer supported by terminfo(4),
but which are derivable from other terminfo(4) variables,
will be output. Not all terminfo(4) capabilities will be
translated; only those variables which were part of
termcap(5) will normally be output. Specifying the -r
option will take off this restriction, allowing all
capabilities to be output in termcap(5) form.
Note that it is not always possible to convert a terminfo(4)
string capability into an equivalent termcap(5) format.
This restriction exists because padding is collected to the
beginning of the capability, not all capabilities are
output, mandatory padding is not supported, and termcap(5)
parameter sequences were not as flexible. Also, a
subsequent conversion of the termcap(5) file back into
terminfo(4) format will not necessarily reproduce the
original terminfo(4) source.
Some common terminfo(4) parameter sequences, their
termcap(5) equivalents, and some terminal types which
commonly have such sequences, are:
Licensed material--property of copyright holder(s) Page 2
infocmp(1m) DG/UX 4.30 infocmp(1m)
Terminfo Termcap Representative Terminals
%p1%c %. adm, dg
%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]
-u produce a terminfo(4) source description of the
first terminals' termname which is relative to the
sum of the descriptions for the other terminals'
termnames. Infocmp does this by analyzing the
differences between the first termname and the other
termnames and producing a description with use=
fields for the other terminals. In this manner, it
is possible to retrofit generic terminfo(4) entries
into a terminal's description. Or, if two similar
terminal descriptions exist, but were coded at
different times or by different people so that each
is a full description, using infocmp will show what
can be done to change one description to be relative
to the other.
A capability will be printed with an at-sign (@), which
comments it out, if it does not exist for the first
termname, but one of the other termname entries contains a
value for it. A capability's value is printed if the value
for 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.
The order of the other termname entries is significant.
Since the terminfo compiler tic(1M) does a left-to-right
scan of the capabilities, specifying two use= entries that
contain differing values for the same capabilities will
produce different results depending on the order in which
the entries are given. Infocmp will flag any such
inconsistencies between the other termname entries as they
are found.
Alternatively, specifying a capability after a use= entry
that contains that capability 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 original source
description.
Another error that does not cause incorrect compiled files,
but will slow down the compilation, is specifying extra use=
Licensed material--property of copyright holder(s) Page 3
infocmp(1m) DG/UX 4.30 infocmp(1m)
fields that are unnecessary. Infocmp will flag any termname
use= fields that were not needed.
Other Options [-s d|i|l|c] [-v] [-V] [-1] [-w width]
-s sort the fields within each type according to the
argument below:
d leave fields in the order that they are stored
in the terminfo(4) database.
i sort by terminfo(4) name.
l sort by the long C variable name.
c sort by the termcap(5) name.
If no -s option is given, the fields printed out
will be sorted alphabetically by the terminfo(4)
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(5) name or the long C variable
name, respectively.
-v print out tracing information on standard error as
the program runs.
-V print out the version of the program in use and
exit.
-1 cause the fields to printed out one to a line.
Otherwise, the fields will be printed several to a
line to a maximum width of 60 characters.
-w change the maximum line width to width characters.
Changing Databases [-A directory] [-B directory]
The location of the compiled terminfo(4) database is taken
from the environment variable TERMINFO. If the variable is
not defined, or the terminal is not found in that location,
the system terminfo(4) database, in /usr/lib/terminfo, will
be used. The options -A and -B may be used to override this
location. The -A option will set TERMINFO for the first
termname and the -B option will set TERMINFO for the other
termnames. With this feature, 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. Otherwise the terminals would have to be named
differently in a single terminfo(4) database for a
comparison to be made.
FILES
Licensed material--property of copyright holder(s) Page 4
infocmp(1m) DG/UX 4.30 infocmp(1m)
/usr/lib/terminfo/?/* compiled terminal description database
/etc/termcap old, textual terminal description
database
/usr/include/term.h terminfo(4) header file
DIAGNOSTICS
malloc is out of space!
There was not enough memory available to process
all the terminal descriptions requested. Run
infocmp several times, each time including a
subset of the desired termnames.
use= order dependency found:
A value specified in one relative terminal
specification was different from that in another
relative terminal specification.
A relative terminal name did not contribute anything to the final
description.
Must have at least two terminal names for a comparison to be
done.
The -u, -d , and -c options require at least two
terminal names.
SEE ALSO
curses(3X), terminfo(4), term(5), termcap(5) in the
Programmer's Reference for the DG/UX System.
tic(1M), captoinfo(1M)
Chapter 7 of Using DG/UX System Programming Tools.
Licensed material--property of copyright holder(s) Page 5