infocmp 1m
-
+
@@ -189,48 +190,47 @@
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.
+ A capability will be 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 will be 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 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
+ ifying 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
+ 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
+ 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
+ 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 termnameuse= fields that
were not needed.
ChangingDatabases[-Adirectory] [-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
+ 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
+ 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 termnameo 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
- instance, you can use this feature for comparing descriptions for the
+ Using these options, it is possible to compare descriptions for a ter-
+ minal 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.
@@ -238,65 +238,65 @@
-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
+ 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
+ -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-
+ -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
+ 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
- arrays of terminal capabilities separate from the TERMTYPE struc-
+ 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
- <term.h>). This option is useful for preparing versions of the
+ 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,
+ 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
+ -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-
+ -G Display constant literals in decimal form rather than their char-
acter equivalents.
- -g Display constant character literals in quoted form rather than
+ -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
+ -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
+ 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
+ (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:
@@ -312,8 +312,8 @@
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
@@ -338,24 +338,24 @@
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
+ 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
o "+" (turn on) or
o "-" (turn off).
- An SGR0 designates an empty highlight sequence (equivalent to
+ An SGR0 designates an empty highlight sequence (equivalent to
{SGR:NORMAL}).
-l Set output format to terminfo.
-p Ignore padding specifications when comparing strings.
- -Qn Rather than show source in terminfo (text) format, print the com-
- piled (binary) format in hexadecimal or base64 form, depending on
+ -Qn Rather than show source in terminfo (text) format, print the com-
+ piled (binary) format in hexadecimal or base64 form, depending on
the option's value:
1 hexadecimal
@@ -364,6 +364,11 @@
3 hexadecimal and base64
+ For example, this prints the compiled terminfo value as a string
+ which could be assigned to the TERMINFO environment variable:
+
+ infocmp -0 -q -Q2
+
-q This makes the output a little shorter:
o Make the comparison listing shorter by omitting subheadings,
@@ -443,26 +448,57 @@
-wwidth
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.
+ -x print information for user-defined capabilities (see user_caps(5).
+ These are extensions to the terminfo repertoire which can be
+ loaded using the -x option of tic.
+ Although System V Release 2 provided a terminfo library, it had no doc-
+ umented tool for decompiling the terminal descriptions. Tony Hansen
+ (AT&T) wrote the first infocmp in early 1984, for System V Release 3.
+
+ Eric Raymond used the AT&T documentation in 1995 to provide an equiva-
+ lent infocmp for ncurses. In addition, he added a few new features
+ such as:
+
+ o the -e option, to support fallback (compiled-in) terminal descrip-
+ tions
+
+ o the -i option, to help with analysis
+
+ Later, Thomas Dickey added the -x (user-defined capabilities) option,
+ and the -E option to support fallback entries with user-defined capa-
+ bilities.
+
+ For a complete list, see the EXTENSIONS section.
+
+ In 2010, Roy Marples provided an infocmp program for NetBSD. It is
+ less capable than the SVr4 or ncurses versions (e.g., it lacks the
+ sorting options documented in X/Open), but does include the -x option
+ adapted from ncurses.
+
+
+
- The -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q
+ The -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q
and -t options are not supported in SVr4 curses.
SVr4 infocmp does not distinguish between absent and cancelled capabil-
ities. Also, it shows missing integer capabilities as -1 (the internal
- value used to represent missing integers). This implementation shows
+ value used to represent missing integers). This implementation shows
those as "NULL", for consistency with missing strings.
- 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
+ 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.
@@ -471,12 +507,12 @@