Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ infocmp(ADM) — OpenDesktop 1.1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

captoinfo(ADM)

tic(C)

curses(S)

term(F)

terminfo(F)

INFOCMP(ADM)


     INFOCMP(ADM)                         UNIX System V



     Name
          infocmp - compare or print out terminfo descriptions


     Syntax
          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(F)  entry  with  other  terminfo entries, rewrite a
          terminfo(F)  description  to  take  advantage  of  the  use=
          terminfo  field, or print out a terminfo(F) description from
          the binary file [term(F)] 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]
          The infocmp command compares the terminfo(F) 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.

          -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 option can be used as a quick
                  check to see if the -u option 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
                  termnames.  This can be used as a quick check to see
                  if anything was left out of the 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(F) 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 of the parameterized strings
          may be changed to the termcap 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 expects it.  Mandatory padding (padding  information
          with a trailing '/') will become optional.

          All termcap variables no longer  supported  by  terminfo(F),
          but  which  are  derivable from other terminfo(F) variables,
          will be output.  Not all terminfo(F)  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.

          Note that because padding is collected to the  beginning  of
          the  capability,  not all capabilities are output, mandatory
          padding is not supported, and termcap strings  were  not  as
          flexible; it is not always possible to convert a terminfo(F)
          string capability into an equivalent  termcap  format.   Not
          all  of  these  strings  will  be  able  to be converted.  A
          subsequent  conversion  of  the  termcap  file   back   into
          terminfo(F)   format  will  not  necessarily  reproduce  the
          original terminfo(F) 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                          %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(F)  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(C) 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.    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.

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

                  i    sort by terminfo name.

                  l    sort by the long C variable name.

                  c    sort by the termcap name.

                  If no -s option is 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.

          -v      print out tracing information on standard  error  as
                  the program runs.

          -V      print out the version  of  the  program  in  use  on
                  standard error and exit.

          -1      cause the  fields  to  print  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 output to width characters.

        Changing Data Bases [-A directory] [-B directory]
          The location of the compiled terminfo(F) data base 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(F)    data    base,   usually   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, it is possible
          to compare descriptions for a terminal with  the  same  name
          located  in  two  different  data bases.  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(F)  data  base  for  a
          comparison to be made.


     Files
          /usr/lib/terminfo/?/*    compiled terminal description  data
          base


     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.

     done./f1
          must have at least two terminal names  for  a  comparison  to  be
                    The  -u,  -d,  and -c options require at least two
                    terminal names.


     See Also
          captoinfo(ADM), tic(C), curses(S), term(F), terminfo(F)


     (printed 2/15/90)                               INFOCMP(ADM)





































































































































































































































































































































































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