Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


infocmp(1M)							  infocmp(1M)



NAME
       infocmp - compare or print out terminfo descriptions

SYNOPSIS
       infocmp [-1CEFGILTVcdegilnpqrtux]
	     [-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 ter-
       minfo 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 speci-
       fied, 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 sim-
       ilar 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] [-r]
       The -I, -L, and -C options will produce a source listing for each ter-
       minal named.


	    -I	 use the terminfo names
	    -L	 use the long C variable name listed in 
	    -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 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.

       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 ter-
       minfo 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	capa-
       bility,	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 equiv-
       alent 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 ter-
       minal 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	 ter-
       minfo  entries into a terminal's description.  Or, if two similar ter-
       minals 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 con-
       tains 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]
       The location of the compiled terminfo database is taken from the envi-
       ronment	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	 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 commented  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 capabil-
	    ity	 structure  in	the  ).	  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 struc-
	    ture.

       -e   Dump the capabilities of the given terminal as  a  C  initializer
	    for	 a  TERMTYPE  structure (the terminal capability structure in
	    the ).  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 argu-
	    ments 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 char-
	    acter 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  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  recog-
	    nized 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

			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
			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   Make the comparison listing shorter by omitting subheadings,  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 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	 ter-
		 minfo 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 ter-
	    minfo).

       -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 program
	    runs.  Higher values of n induce greater verbosity.

       -w width
	    changes the output to width characters.

       -x   Treat unknown capabilities as user-defined.	 That is, if you sup-
	    ply a capability name which tic does not recognize, it will infer
	    its type (boolean, number or string) from the syntax and make  an
	    extended  table entry for that.  If the source is termcap, accept
	    the 2-character names required by version 6.  Otherwise these are
	    ignored.

FILES
       /usr/share/terminfo Compiled terminal description database.

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

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

SEE ALSO
       infocmp(1M),   captoinfo(1M),   infotocap(1M),	 tic(1M),    toe(1M),
       curses(3X), terminfo(5).

AUTHOR
       Eric S. Raymond  and
       Thomas E. Dickey 



								  infocmp(1M)


UNIX/Linux commands referenced on this page:
  1. compare
  2. minfo
  3. file
  4. more
  5. as
  6. strings
  7. at
  8. which
  9. convert
  10. sum
  11. tic
  12. make
  13. time
  14. split
  15. reset
  16. restore
  17. enable
  18. sort