MirBSD manpage: infocmp(1)

infocmp(1)          UNIX Programmer's Manual           infocmp(1)


     infocmp - compare or print out terminfo descriptions


     infocmp [-1CEFGILTVcdegilnpqrtux]
           [-v n] [-s d| i| l| c] [-R subset]
           [-w width] [-A directory] [-B directory]


     infocmp 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 print out a
     terminfo description from the binary file (term) 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 are
     specified, the -I option will be assumed.  If more than one
     termname is specified, the -d option will be assumed.

     Comparison Options [-d] [-c] [-n]
     infocmp compares the terminfo description of the first ter-
     minal 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: F for boolean
     variables, -1 for integer variables, and NULL for string

     The -d option produces a list of each capability that is
     different between two entries.  This option is useful to
     show the difference between two entries, created by dif-
     ferent people, for the same or similar terminals.

     The -c option 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 -u option is worth using.

     The -n option produces 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 termnames.  This
     can be used as a quick check to see if anything was left out
     of a description.

     Source Listing Options [-I] [-L] [-C]
     The -I, -L, and -C options will produce a source listing for
     each terminal named.

MirBSD #10-current     Printed 2022-12-23                       1

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

     -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 option may be used directly as
     a termcap entry, but not all parameterized strings can be
     changed to the termcap format.  infocmp will attempt to con-
     vert most of the parameterized information, and 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
     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 which were part of termcap will nor-
     mally be output.  Specifying the -r option will take off
     this restriction, allowing all capabilities to be output in
     termcap form.

     Note that because padding is collected to the beginning of
     the capability, not all capabilities are output.  Mandatory
     padding is not supported.  Because termcap strings are not
     as flexible, it is not always possible to convert a terminfo
     string capability into an equivalent termcap format.  A sub-
     sequent conversion of the termcap file back into terminfo
     format will not necessarily reproduce the original terminfo

     Some common terminfo parameter sequences, their termcap
     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                          %iq       ANSI standard, vt100
    %p1%?%'x'%>%t%p1%'y'%+%;    %>xy      concept
    %p2 is printed before %p1   %r        hp

     Use= Option [-u]
     The -u option produces a terminfo source description of the

MirBSD #10-current     Printed 2022-12-23                       2

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

     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 pro-
     ducing a description with use= fields for the other termi-
     nals.  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 infocmp 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 first

     The order of the other termname entries is significant.
     Since the terminfo compiler tic 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 that the entries
     are given in.  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 specifi-
     cation to be ignored. Using infocmp to recreate a descrip-
     tion 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.  infocmp will flag any
     other termname use= fields that were not needed.

     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, in /usr/share/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, it is possible to compare descrip-
     tions for a terminal with the same name located in two dif-
     ferent databases.  This is useful for comparing descriptions
     for the same terminal created by different people.

MirBSD #10-current     Printed 2022-12-23                       3

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

     Other Options

     -1   causes the fields to be printed out one to a line.
          Otherwise, the fields will be printed several to a line
          to a maximum width of 60 characters.

     -a   tells infocmp to retain commented-out capabilities
          rather than discarding them.  Capabilities are com-
          mented by prefixing them with a period.

     -E   Dump the capabilities of the given terminal as tables,
          needed in the C initializer for a TERMTYPE structure
          (the terminal capability structure in the <term.h>).
          This option is useful for preparing versions of the
          curses library hardwired for a given terminal type. The
          tables are all declared static, and are named according
          to the type and the name of the corresponding terminal

          Before ncurses 5.0, the split between the -e and -E
          options was not needed; but support for extended names
          required making the arrays of terminal capabilities
          separate from the TERMTYPE structure.

     -e   Dump the capabilities of the given terminal as a C ini-
          tializer for a TERMTYPE structure (the terminal capa-
          bility structure in the <term.h>). This option is use-
          ful for preparing versions of the curses library
          hardwired for a given terminal type.

     -F   compare terminfo files.  This assumes that two follow-
          ing arguments are filenames.  The files are searched
          for pairwise matches between entries, with two entries
          considered to match if any of their names do. The
          report printed to standard output lists entries with no
          matches in the other file, and entries with more than
          one match.  For entries with exactly one match it
          includes a difference report.  Normally, to reduce the
          volume of the report, use references are not resolved
          before looking for differences, but resolution can be
          forced by also specifying -r.

     -f   Display complex terminfo strings which contain
          if/then/else/endif expressions indented for readabil-

     -G   Display constant literals in decimal form rather than
          their character equivalents.

     -g   Display constant character literals in quoted form
          rather than their decimal equivalents.

MirBSD #10-current     Printed 2022-12-23                       4

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

     -i   Analyze the initialization (is1, is2, is3), and reset
          (rs1, rs2, rs3), strings in the entry.  For each
          string, the code tries to analyze it into actions in
          terms of the other capabilities in the entry, certain
          X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
          VT-series private modes (the set of recognized special
          sequences has been selected for completeness over the
          existing terminfo database).  Each report line consists
          of the capability name, followed by a colon and space,
          followed by a printable expansion of the capability
          string with sections matching recognized actions
          translated into {}-bracketed descriptions.  Here is a
          list of the DEC/ANSI special sequences recognized:

                 Action        Meaning
                 RIS           full reset
                 SC            save cursor
                 RC            restore cursor
                 LL            home-down
                 RSR           reset scroll region

                 DECSTR        soft reset (VT320)
                 S7C1T         7-bit controls (VT220)

                 ISO DEC G0    enable DEC graphics for G0
                 ISO UK G0     enable UK chars for G0
                 ISO US G0     enable US chars for G0
                 ISO DEC G1    enable DEC graphics for G1
                 ISO UK G1     enable UK chars for G1
                 ISO US G1     enable US chars for G1

                 DECPAM        application keypad mode
                 DECPNM        normal keypad mode
                 DECANSI       enter ANSI mode

                 ECMA[+-]AM    keyboard action mode
                 ECMA[+-]IRM   insert replace mode
                 ECMA[+-]SRM   send receive mode
                 ECMA[+-]LNM   linefeed mode

                 DEC[+-]CKM    application cursor keys
                 DEC[+-]ANM    set VT52 mode
                 DEC[+-]COLM   132-column mode
                 DEC[+-]SCLM   smooth scroll
                 DEC[+-]SCNM   reverse video mode
                 DEC[+-]OM     origin mode
                 DEC[+-]AWM    wraparound mode
                 DEC[+-]ARM    auto-repeat mode

          It also recognizes a SGR action corresponding to
          ANSI/ISO 6429/ECMA Set Graphics Rendition, with the

MirBSD #10-current     Printed 2022-12-23                       5

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

          All but NORMAL may be prefixed with `+' (turn on) or `-
          ' (turn off).

          An SGR0 designates an empty highlight sequence
          (equivalent to {SGR:NORMAL}).

     -l   Set output format to terminfo.

     -p   Ignore padding specifications when comparing strings.

     -q   Make the comparison listing shorter by omitting sub-
          headings, and using "-" for absent capabilities, "@"
          for canceled rather than "NULL".

          Restrict output to a given subset.  This option is for
          use with archaic versions of terminfo like those on
          SVr1, Ultrix, or HP/UX that do not support the full set
          of SVR4/XSI Curses terminfo; and variants such as AIX
          that have their own extensions incompatible with
          SVr4/XSI.  Available terminfo subsets are "SVr1",
          "Ultrix", "HP", and "AIX"; see terminfo(5) for details.
          You can also choose the subset "BSD" which selects only
          capabilities with termcap equivalents recognized by

     -s [d|i|l|c]
          The -s option sorts the fields within each type accord-
          ing to the argument below:

          d    leave fields in the order that they are stored in
               the terminfo database.

          i    sort by terminfo name.

          l    sort by the long C variable name.

          c    sort by the termcap name.

          If the -s option is not given, the fields printed out
          will be 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.

     -T   eliminates size-restrictions on the generated text.
          This is mainly useful for testing and analysis, since
          the compiled descriptions are limited (e.g., 1023 for
          termcap, 4096 for terminfo).

     -t   tells tic to discard commented-out capabilities.

MirBSD #10-current     Printed 2022-12-23                       6

infocmp(1)          UNIX Programmer's Manual           infocmp(1)

          Normally when translating from terminfo to termcap,
          untranslatable capabilities are commented-out.

     -V   reports the version of ncurses which was used in this
          program, and exits.

     -v n prints out tracing information on standard error as the
          program runs. Higher values of n induce greater verbos-

     -w width
          changes the output to width characters.

     -x   print information for user-defined capabilities. These
          are extensions to the terminfo repertoire which can be
          loaded using the -x option of tic.


     /usr/share/terminfo Compiled terminal description database.


     The -E, -F, -G, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q
     and -t options are not supported in SVr4 curses.

     The -r option's notion of `termcap' capabilities is System V
     Release 4's. Actual BSD curses versions will have a more
     restricted set.  To see only the 4.4BSD set, use -r -RBSD.


     The -F option of infocmp(1) should be a toe(1) mode.


     infocmp(1), captoinfo(1), infotocap(1), tic(1), toe(1),
     curses(3), terminfo(5).


     Eric S. Raymond <esr@snark.thyrsus.com> and
     Thomas E. Dickey <dickey@invisible-island.net>

MirBSD #10-current     Printed 2022-12-23                       7

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung