Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

tic(8)

captoinfo(8)

curses(3)

term(4)

terminfo(4)



  infocmp(8)                          CLIX                          infocmp(8)



  NAME

    infocmp - Compares or displays terminfo descriptions

  SYNOPSIS

    infocmp [-d] [-c] [-n] [-I] [-L] [-C] [-r] [-u] [-s d|i|1|c] [-v] [-V] [-
    1] [-w width] [-A directory] [-B directory] [termname ... ]

  FLAGS

  Default Flags

    If no flags are specified and zero or one termname(s) are specified, the
    -I flag will be assumed.  If more than one termname is specified, the -d
    flag will be assumed.

  Comparison Flags [-d] [-c] [-n]

    The infocmp command compares the terminfo description of the first
    terminal termname with each of the descriptions given by the entries for
    the other terminal's termname(s).  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 variables.

    -d     Produce a list of each capability that is different.  In this
           manner, if one has 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 one wants to see what
           is different between the two.

    -c     Produce a list of each capability that is common between the two
           entries.  Capabilities that are not set are ignored.  This flag can
           be used as a quick check to see if the -u flag is worth using.

    -n     Produce a list of each capability that is in neither entry.  If no
           termnames are given, the environment variable TERM will be used for
           both of the termname(s).  This can be used as a quick check to see
           if anything was left out of the description.

  Source Listing Flags [-I] [-L] [-C] [-r]

    The -I, -L, and -C flags will produce a source listing for each terminal
    named.



  2/94 - Intergraph Corporation                                              1






  infocmp(8)                          CLIX                          infocmp(8)



    -I   Use the terminfo names

    -L   Use the long C variable name listed in <term.h>

    -C   Use the termcap names

    -r   When using -C, put out all capabilities in termcap form

    If no termnames are given, the environment variable TERM will be used for
    the terminal name.

    The source produced by the -C flag can be used directly as a termcap
    entry, but not all of the parameterized strings can be changed to the
    termcap format.  The infocmp command will attempt to convert most of the
    parameterized information, but that which it does not convert will be
    plainly marked in the output and commented out.  These parameterized
    strings should be edited by hand.

    All padding information for strings will be collected together and placed
    at the beginning of the string where termcap expects it.  Mandatory
    padding (padding information with a trailing /) will become optional.

    All termcap variables no longer supported by terminfo, but which are
    derivable from other terminfo variables, will be output.  Not all terminfo
    capabilities will be translated; only those variables that were part of
    termcap will normally be output.  Specifying the -r flag will take off
    this restriction, allowing all capabilities to be output in termcap form.

    Note: it is not always possible to convert a terminfo string capability
    into an equivalent termcap format for several reasons:

    ⊕  The padding is collected toward the beginning of the capability.

    ⊕  Not all capabilities are output.

    ⊕  Mandatory padding is not supported and.

    ⊕  The termcap strings lack flexibility.

    In addition, a subsequent conversion of the termcap file back into
    terminfo format will not necessarily reproduce the original terminfo
    source.

    Some common terminfo parameter sequences, their termcap equivalents, and
    some terminal types that commonly have such sequences, are:

          Terminfo                    Termcap   Representative Terminals

          %p1%c                       %.        adm





  2                                              Intergraph Corporation - 2/94






  infocmp(8)                          CLIX                          infocmp(8)



          %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 source description of the first terminal termname
         that is relative to the sum of the descriptions given by the entries
         for the other terminals' termname(s).  This relative description is
         accomplished 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 entries into a terminal's description.
         Alternatively, 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 so that it is relative to the other.

    A capability will be displayed 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 is displayed 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 first termname.

    The order of the other termname entries is significant.  Because the
    terminfo compiler tic(8) 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 the entries are given.  The infocmp command 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 time, is specifying extra use= fields that are
    superfluous.  The infocmp command will flag any other termname use= fields
    that were not needed.

  Other Flags [-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
             database.




  2/94 - Intergraph Corporation                                              3






  infocmp(8)                          CLIX                          infocmp(8)



         i   Sort by terminfo name.

         l   Sort by the long C variable name.

         c   Sort by the termcap name.

             If no -s flag is given, the fields displayed will be sorted
             alphabetically by the terminfo name within each type, except in
             the case of the -C or the -L flags, which cause the sorting to be
             done by the termcap name or the long C variable name,
             respectively.

    -v   Display tracing information on stderr as the program runs.

    -V   Display the version of the program in use on stderr and exit.

    -1   Cause the fields to displayed one to a line.  Otherwise, the fields
         will be displayed several to a line to a maximum width of 60
         characters.

    -w   Change the output to width characters.

  Changing Databases [-A directory] [-B directory]

    The location of the compiled terminfo 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 database,
    usually in /usr/lib/terminfo, will be used.  The flags -A and -B may be
    used to override this location.  The -A flag will set TERMINFO for the
    first termname and the -B flag will set TERMINFO 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 people.
    Otherwise the terminals would have to be named differently in the terminfo
    database for a comparison to be made.

  DESCRIPTION

    The infocmp command can be used to compare a binary terminfo entry with
    other terminfo entries, rewrite a terminfo description to take advantage
    of the use= terminfo field, or display a terminfo description from the
    binary file (term) in a variety of formats.  In all cases, the boolean
    fields will be displayed first, followed by the numeric fields, followed
    by the string fields.

  EXAMPLES

    To display to stdout the common capabilities of a vt100 and a vt220, enter
    the following:

    infocmp -c vt100 vt200



  4                                              Intergraph Corporation - 2/94






  infocmp(8)                          CLIX                          infocmp(8)



  FILES

    /usr/lib/terminfo/?/*   Compiled terminal description database

  NOTES

    The termcap database (from earlier releases of UNIX System V) may not be
    supplied in future releases.

  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.

    'use=term' did not add anything to the description.
           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 flags require at least two terminal names.

  EXIT VALUES

    The infocmp command exits with a nonzero value when it fails.

  RELATED INFORMATION

    Commands: tic(8), captoinfo(8)

    Functions: curses(3)

    Files: term(4), terminfo(4)

    Chapter 10 of the Programmer's Guide













  2/94 - Intergraph Corporation                                              5




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026