infocmp(1)


NAME

   infocmp - compare or print out terminfo descriptions

SYNOPSIS

   infocmp [-1CDEFGIKLTUVcdegilnpqrtux]
         [-v n] [-s d| i| l| c] [-Q n] [-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 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  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  different  people, for the same or
   similar terminals.

   The -c option produces a list of each capability that is common between
   two  or more 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 none of the
   given entries.  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] [-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
        -r   when using -C, put out all capabilities in termcap form
        -K   modifies the -C option, improving BSD-compatibility.

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

   For best results when converting to termcap format, you should use both
   -C  and  -r.   Normally a termcap description is limited to 1023 bytes.
   infocmp trims away less essential parts to make it  fit.   If  you  are
   converting to one of the (rare) termcap implementations which accept an
   unlimited size of termcap, you may want to add  the  -T  option.   More
   often  however,  you  must  help  the  termcap implementation, and trim
   excess whitespace (use the -0 option for that).

   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 normally be output.  Specifying the -r option
   will  take off this restriction, allowing all capabilities to be output
   in termcap form.  Normally you would use both the -C  and  -r  options.
   The  actual  format  used  incorporates  some  improvements for escaped
   characters  from  terminfo  format.   For  a  stricter   BSD-compatible
   translation, use the -K option rather than -C.

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

   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 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.  infocmp will flag any other termname use= fields that
   were not needed.

   Changing Databases [-A directory] [-B directory]
   Like   other   ncurses   utilities,  infocmp  looks  for  the  terminal
   descriptions  in  several  places.   You  can  use  the  TERMINFO   and
   TERMINFO_DIRS environment variables to override the compiled-in default
   list of places to search (see curses(3X) for details).

   You can also use the options -A and -B to override the list  of  places
   to search when comparing terminal descriptions:

   *   The -A option sets the location for the first termname

   *   The -B option sets the location for the other termnames.

   Using  these  options,  it  is  possible  to compare descriptions for a
   terminal with the same name located in two  different  databases.   For
   instance,  you  can use this feature for comparing descriptions for the
   same terminal created by different people.

   Other Options
   -0   causes the fields to be printed on one line, without wrapping.

   -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  commented by prefixing them
        with a period.

   -D   tells infocmp to print the database locations that it knows about,
        and exit.

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

   -e   Dump the capabilities of the given terminal as a 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.

   -F   compare terminfo files.  This assumes that two following 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 readability.

   -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,  as  well  as  those  used  for
        starting/stopping cursor-positioning mode (smcup, rmcup)  as  well
        as starting/stopping keymap mode (smkx, rmkx).

        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  values  NORMAL,  BOLD,
        UNDERLINE,  BLINK,  and  REVERSE.   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 n Rather  than  show  source  in  terminfo  (text) format, print the
        compiled (binary) format in hexadecimal or base64 form,  depending
        on the option's value:

           1  hexadecimal

           2  base64

           3  hexadecimal and base64

   -q   This makes the output a little shorter:

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

        *   Omit the "Reconstructed from" comment for source listings.

   -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  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 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, 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.  Normally when
        translating from terminfo to termcap, untranslatable  capabilities
        are commented-out.

   -U   tells  infocmp  to  not  post-process  the  data after parsing the
        source  file.   This  feature  helps  when  comparing  the  actual
        contents  of  two  source  files, since it excludes the inferences
        that infocmp makes to fill in missing data.

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

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

FILES

   /etc/terminfo       Compiled terminal description database.

EXTENSIONS

   The -0, -1, -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.

BUGS

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

SEE ALSO

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

   http://invisible-island.net/ncurses/tctest.html

   This describes ncurses version 6.0 (patch 20160625).

AUTHOR

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

                                                                infocmp(1)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.