Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
infocmp(1M)							   infocmp(1M)

       infocmp - compare or print out terminfo descriptions

       infocmp [-1CEFGILTUVcdegilnpqrtux]
	     [-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 ter-
       minfo entries, rewrite a	terminfo description to	take advantage of  the
       use=  terminfo  field, or print out a terminfo description from the bi-
       nary 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 capa-
       bility: 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 be-
       tween two entries.  This	option is useful to show  the  difference  be-
       tween two entries, created by different people, for the same or similar

       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 en-
       try.   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	<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 convert most of the parameterized in-
       formation, 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.	Manda-
       tory  padding (padding information with a trailing '/') will become op-

       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 capabil-
       ity, not	all capabilities are output.  Mandatory	padding	 is  not  sup-
       ported.	 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

       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 ana-
       lyzing  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 ex-
       ists in the first termname, but one of the other	termname entries  con-
       tains  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  en-
       tries,  or if the first of the other termname entries that has this ca-
       pability	gives a	different value	for the	capability than	 that  in  the
       first termname.

       The order of the	other termname entries is significant.	Since the ter-
       minfo compiler tic does a left-to-right scan of the capabilities, spec-
       ifying two use= entries that contain differing entries for the same ca-
       pabilities 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.  Us-
       ing infocmp to recreate a description can be a  useful  check  to  make
       sure that everything was	specified correctly in the original source de-

       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/local/share/misc/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

       -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 <term.h>).  This option is useful for prepar-
	    ing	 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 ar-
	    rays  of  terminal	capabilities separate from the TERMTYPE	struc-

       -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  be-
	    tween  entries,  with  two	entries	 considered to match if	any of
	    their names	do.  The report	printed	to standard output  lists  en-
	    tries  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  se-
	    quences  has been selected for completeness	over the existing ter-
	    minfo database).  Each report  line	 consists  of  the  capability
	    name,  followed  by	a colon	and space, followed by a printable ex-
	    pansion of the capability string with sections matching recognized
	    actions translated into {}-bracketed descriptions.	Here is	a list
	    of the DEC/ANSI special sequences recognized: i.

			 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:NOR-

       -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

	    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,  ex-
	    cept  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  de-
	    scriptions	are  limited  (e.g.,  1023  for	termcap, 4096 for ter-

       -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 con-
	    tents 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

       -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	exten-
	    sions to the terminfo repertoire which can be loaded using the  -x
	    option of tic.

			   Compiled terminal description database.

       The  -E,	 -F, -G, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q and	-t op-
       tions 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(1M) should be a	toe(1M)	mode.

       captoinfo(1M),  infotocap(1M),  tic(1M),	 toe(1M),   curses(3X),	  ter-

       This describes ncurses version 5.7 (patch 20101225).

       Eric S. Raymond <> and
       Thomas E. Dickey	<>



Want to link to this manual page? Use this URL:

home | help