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 [-1CDEFGIKLTUVcdegilnpqrtux]
	     [-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  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

       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  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
	    -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  in-
       formation,  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 of-
       ten  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.	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.  Normally you would use both the -C and -r	options.   The
       actual  format  used incorporates some improvements for escaped charac-
       ters 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 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]
       Like  other  ncurses utilities, infocmp looks for the terminal descrip-
       tions 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:

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

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

       Using  these options, it	is possible to compare descriptions for	a ter-
       minal with the same name	located	in two different databases.   For  in-
       stance,	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

       -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  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,	as  well  as  those  used  for	start-
	    ing/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

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

       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 6.0 (patch 20150808).

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



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

home | help