## SYNOPSIS

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

## DESCRIPTION

           infocmp  can  be  used  to compare a binary terminfo entry
           with other terminfo entries, rewrite a  terminfo  descrip
           tion  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
           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:
           F  for  boolean  variables,  -1 for integer variables, and
           NULL for string variables.

           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 environ
           ment 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] [-r]
           The -I, -L, and -C options will produce a  source  listing
           for each terminal named.

          -I   use the terminfo names
          -L   use the long C variable name listed in <term.h>
          -C   use the termcap names
           termcap  expects  it.  Mandatory padding (padding informa
           tion 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.  Manda
           tory 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 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 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 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  dif
           ferences   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.  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 rel
           ative 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
           Alternatively,  specifying a capability after a use= entry
           that contains that capability will cause the second speci
           fication  to  be  ignored.   Using  infocmp  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 speci
           fying 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 loca
           tion,  the  system  terminfo  database, in /usr/share/ter
           minfo, 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 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.

       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  ver
                sions  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 entry.

                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 capabil
                ities separate from the TERMTYPE structure.

           -e   Dump  the  capabilities  of the given terminal as a C
                initializer for a TERMTYPE  structure  (the  terminal
                ferences, but resolution can be forced by also speci
                fying -r.

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

           -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.

           -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 spe
                cial 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  recog
                nized  actions  translated into {}-bracketed descrip
                tions.  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

                      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

                      DEC[+-]CKM    application cursor keys
                      DEC[+-]ANM    set VT52 mode
                      DEC[+-]COLM   132-column mode
                      DEC[+-]SCLM   smooth scroll
                      DEC[+-]SCNM   reverse video mode

           -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".

           -Rsubset
                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 incompati
                ble 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 equiva
                lents recognized by 4.4BSD.

           -s [d|i|l|c]
                The -s option  sorts  the  fields  within  each  type
                according 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,  respec
                tively.

           -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.
                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 -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.

## BUGS

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

## SEE ALSO

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

## AUTHOR

           Eric S. Raymond <esr@snark.thyrsus.com> and
           Thomas E. Dickey <dickey@herndon4.his.com>

                                                           infocmp(1)