version 1.1, 2022/07/11 03:11:49 |
version 1.2, 2023/10/17 09:52:10 |
|
|
.\" $OpenBSD$ |
.\" $OpenBSD$ |
.\" |
.\" |
.\"*************************************************************************** |
.\"*************************************************************************** |
.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. * |
.\" Copyright 2018-2022,2023 Thomas E. Dickey * |
|
.\" Copyright 1998-2017,2018 Free Software Foundation, Inc. * |
.\" * |
.\" * |
.\" Permission is hereby granted, free of charge, to any person obtaining a * |
.\" Permission is hereby granted, free of charge, to any person obtaining a * |
.\" copy of this software and associated documentation files (the * |
.\" copy of this software and associated documentation files (the * |
|
|
.\"*************************************************************************** |
.\"*************************************************************************** |
.\" |
.\" |
.\" $Id$ |
.\" $Id$ |
.TH infocmp 1 "" |
.TH infocmp 1 2023-08-19 "ncurses 6.4" "User commands" |
|
.ie \n(.g .ds `` \(lq |
|
.el .ds `` `` |
|
.ie \n(.g .ds '' \(rq |
|
.el .ds '' '' |
.ds n 5 |
.ds n 5 |
|
.de bP |
|
.ie n .IP \(bu 4 |
|
.el .IP \(bu 2 |
|
.. |
|
.de NS |
|
.ie n .sp |
|
.el .sp .5 |
|
.ie n .in +4 |
|
.el .in +2 |
|
.nf |
|
.ft CR \" Courier |
|
.. |
|
.de NE |
|
.fi |
|
.ft R |
|
.ie n .in -4 |
|
.el .in -2 |
|
.. |
.ds d /usr/share/terminfo |
.ds d /usr/share/terminfo |
.SH NAME |
.SH NAME |
\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions |
\fBinfocmp\fP \- compare or print out \fIterminfo\fP descriptions |
.SH SYNOPSIS |
.SH SYNOPSIS |
\fBinfocmp\fR [\fB-\ |
\fBinfocmp\fP [\fB\-\ |
1\ |
1\ |
C\ |
C\ |
|
D\ |
E\ |
E\ |
F\ |
F\ |
G\ |
G\ |
I\ |
I\ |
|
K\ |
L\ |
L\ |
T\ |
T\ |
U\ |
U\ |
V\ |
V\ |
|
W\ |
c\ |
c\ |
d\ |
d\ |
e\ |
e\ |
|
|
t\ |
t\ |
u\ |
u\ |
x\ |
x\ |
\fR] |
\fP] |
.br |
[\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-Q\fR \fIn\fR] [\fB\-R \fBsubset\fR] |
[\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR] |
[\fB\-w\fP\ \fIwidth\fP] [\fB\-A\fP\ \fIdirectory\fP] [\fB\-B\fP\ \fIdirectory\fP] |
.br |
[\fItermname\fP...] |
[\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR] |
|
.br |
|
[\fItermname\fR...] |
|
.SH DESCRIPTION |
.SH DESCRIPTION |
\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other |
\fBinfocmp\fP can be used to compare a binary \fBterminfo\fP entry with other |
terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the |
terminfo entries, rewrite a \fBterminfo\fP description to take advantage of the |
\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the |
\fBuse=\fP terminfo field, or print out a \fBterminfo\fP description from the |
binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean |
binary file (\fBterm\fP) in a variety of formats. |
|
In all cases, the boolean |
fields will be printed first, followed by the numeric fields, followed by the |
fields will be printed first, followed by the numeric fields, followed by the |
string fields. |
string fields. |
.SS Default Options |
.SS Default Options |
If no options are specified and zero or one \fItermnames\fR are specified, the |
If no options are specified and zero or one \fItermnames\fP are specified, the |
\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified, |
\fB\-I\fP option will be assumed. |
the \fB-d\fR option will be assumed. |
If more than one \fItermname\fP is specified, |
.SS Comparison Options [-d] [-c] [-n] |
the \fB\-d\fP option will be assumed. |
\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal |
.SS Comparison Options [\-d] [\-c] [\-n] |
\fItermname\fR with each of the descriptions given by the entries for the other |
\fBinfocmp\fP compares the \fBterminfo\fP description of the first terminal |
terminal's \fItermnames\fR. If a capability is defined for only one of the |
\fItermname\fP with each of the descriptions given by the entries for the other |
terminals, the value returned will depend on the type of the capability: |
terminal's \fItermnames\fP. |
\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR |
If a capability is defined for only one of the |
for string variables. |
terminals, the value returned depends on the type of the capability: |
|
.bP |
|
\fBF\fP for missing boolean variables |
|
.bP |
|
\fBNULL\fP for missing integer or string variables |
.PP |
.PP |
The \fB-d\fR option produces a list of each capability that is different |
Use the \fB\-q\fP option to show the distinction between |
between two entries. This option is useful to show the difference between two |
\fIabsent\fP and \fIcancelled\fP capabilities. |
entries, created by different people, for the same or similar terminals. |
|
.PP |
.PP |
The \fB-c\fR option produces a list of each capability that is common between |
These options produce a list which you can use to compare two |
two entries. Capabilities that are not set are ignored. This option can be |
or more terminal descriptions: |
used as a quick check to see if the \fB-u\fR option is worth using. |
.TP 5 |
|
\fB\-d\fP |
|
produces a list of each capability that is \fIdifferent\fP |
|
between two entries. |
|
Each item in the list shows \*(``:\*('' after the capability name, |
|
followed by the capability values, separated by a comma. |
|
.TP |
|
\fB\-c\fP |
|
produces a list of each capability that is \fIcommon\fP between |
|
two or more entries. |
|
Missing capabilities are ignored. |
|
Each item in the list shows \*(``=\*('' after the capability name, |
|
followed by the capability value. |
|
.IP |
|
The \fB\-u\fP option provides a related output, |
|
showing the first terminal description rewritten to use the second |
|
as a building block via the \*(``use=\*('' clause. |
|
.TP |
|
\fB\-n\fP |
|
produces a list of each capability that is in \fInone\fP of the given entries. |
|
Each item in the list shows \*(``!\*('' before the capability name. |
|
.IP |
|
Normally only the conventional capabilities are shown. |
|
Use the \fB\-x\fP option to add the BSD-compatibility |
|
capabilities (names prefixed with \*(``OT\*(''). |
|
.IP |
|
If no \fItermnames\fP are given, |
|
\fBinfocmp\fP uses the environment variable \fBTERM\fP |
|
for each of the \fItermnames\fP. |
|
.SS Source Listing Options [\-I] [\-L] [\-C] [\-r] |
|
The \fB\-I\fP, \fB\-L\fP, and \fB\-C\fP options will produce |
|
a source listing for each terminal named. |
.PP |
.PP |
The \fB-n\fR option produces a list of each capability that is in neither |
|
entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR |
|
will be used for both of the \fItermnames\fR. This can be used as a quick |
|
check to see if anything was left out of a description. |
|
.SS Source Listing Options [-I] [-L] [-C] [-r] |
|
The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for |
|
each terminal named. |
|
. |
|
.TS |
.TS |
center tab(/) ; |
center tab(/) ; |
l l . |
l l . |
\fB-I\fR/use the \fBterminfo\fR names |
\fB\-I\fP/use the \fBterminfo\fP names |
\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR> |
\fB\-L\fP/use the long C variable name listed in <\fBterm.h\fP> |
\fB-C\fR/use the \fBtermcap\fR names |
\fB\-C\fP/use the \fBtermcap\fP names |
\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form |
\fB\-r\fP/when using \fB\-C\fP, put out all capabilities in \fBtermcap\fP form |
|
\fB\-K\fP/modifies the \fB\-C\fP option, improving BSD-compatibility. |
.TE |
.TE |
.PP |
.PP |
If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be |
If no \fItermnames\fP are given, the environment variable \fBTERM\fP will be |
used for the terminal name. |
used for the terminal name. |
.PP |
.PP |
The source produced by the \fB-C\fR option may be used directly as a |
The source produced by the \fB\-C\fP option may be used directly as a |
\fBtermcap\fR entry, but not all parameterized strings can be changed to |
\fBtermcap\fP entry, but not all parameterized strings can be changed to |
the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the |
the \fBtermcap\fP format. |
|
\fBinfocmp\fP will attempt to convert most of the |
parameterized information, and anything not converted will be plainly marked in |
parameterized information, and anything not converted will be plainly marked in |
the output and commented out. These should be edited by hand. |
the output and commented out. |
|
These should be edited by hand. |
.PP |
.PP |
|
For best results when converting to \fBtermcap\fP format, |
|
you should use both \fB\-C\fP and \fB\-r\fP. |
|
Normally a termcap description is limited to 1023 bytes. |
|
\fBinfocmp\fP 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 \fB\-T\fP option. |
|
More often however, you must help the termcap implementation, |
|
and trim excess whitespace (use the \fB\-0\fP option for that). |
|
.PP |
All padding information for strings will be collected together and placed |
All padding information for strings will be collected together and placed |
at the beginning of the string where \fBtermcap\fR expects it. Mandatory |
at the beginning of the string where \fBtermcap\fP expects it. |
padding (padding information with a trailing '/') will become optional. |
Mandatory |
|
padding (padding information with a trailing \*(``/\*('') will become optional. |
.PP |
.PP |
All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which |
All \fBtermcap\fP variables no longer supported by \fBterminfo\fP, but which |
are derivable from other \fBterminfo\fR variables, will be output. Not all |
are derivable from other \fBterminfo\fP variables, will be output. |
\fBterminfo\fR capabilities will be translated; only those variables which were |
Not all |
part of \fBtermcap\fR will normally be output. Specifying the \fB-r\fR option |
\fBterminfo\fP capabilities will be translated; only those variables which were |
|
part of \fBtermcap\fP will normally be output. |
|
Specifying the \fB\-r\fP option |
will take off this restriction, allowing all capabilities to be output in |
will take off this restriction, allowing all capabilities to be output in |
\fItermcap\fR form. |
\fItermcap\fP form. |
|
Normally you would use both the \fB\-C\fP and \fB\-r\fP options. |
|
The actual format used incorporates some improvements for escaped characters |
|
from terminfo format. |
|
For a stricter BSD-compatible translation, use the \fB\-K\fP option |
|
rather than \fB\-C\fP. |
.PP |
.PP |
Note that because padding is collected to the beginning of the capability, not |
Note that because padding is collected to the beginning of the capability, not |
all capabilities are output. Mandatory padding is not supported. Because |
all capabilities are output. |
\fBtermcap\fR strings are not as flexible, it is not always possible to convert |
Mandatory padding is not supported. |
a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A |
Because |
subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format |
\fBtermcap\fP strings are not as flexible, it is not always possible to convert |
will not necessarily reproduce the original \fBterminfo\fR |
a \fBterminfo\fP string capability into an equivalent \fBtermcap\fP format. |
source. |
A subsequent conversion of the \fBtermcap\fP file |
|
back into \fBterminfo\fP format |
|
will not necessarily reproduce the original \fBterminfo\fP source. |
.PP |
.PP |
Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR |
Some common \fBterminfo\fP parameter sequences, their \fBtermcap\fP |
equivalents, and some terminal types which commonly have such sequences, are: |
equivalents, and some terminal types which commonly have such sequences, are: |
. |
.PP |
.TS |
.TS |
center tab(/) ; |
center tab(/) ; |
l c l |
l c l |
l l l. |
l l l. |
\fBterminfo/termcap\fR/Representative Terminals |
\fBterminfo/termcap\fP/Representative Terminals |
= |
= |
\fB%p1%c/%.\fR/adm |
\fB%p1%c/%.\fP/adm |
\fB%p1%d/%d\fR/hp, ANSI standard, vt100 |
\fB%p1%d/%d\fP/hp, ANSI standard, vt100 |
\fB%p1%'x'%+%c/%+x\fR/concept |
\fB%p1%'x'%+%c/%+x\fP/concept |
\fB%i/%i\fRq/ANSI standard, vt100 |
\fB%i/%i\fPq/ANSI standard, vt100 |
\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept |
\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fP/concept |
\fB%p2\fR is printed before \fB%p1/%r\fR/hp |
\fB%p2\fP is printed before \fB%p1/%r\fP/hp |
.TE |
.TE |
.SS Use= Option [-u] |
.SS Use= Option [\-u] |
The \fB-u\fR option produces a \fBterminfo\fR source description of the first |
The \fB\-u\fP option produces a \fBterminfo\fP source description of the first |
terminal \fItermname\fR which is relative to the sum of the descriptions given |
terminal \fItermname\fP which is relative to the sum of the descriptions given |
by the entries for the other terminals \fItermnames\fR. It does this by |
by the entries for the other terminals \fItermnames\fP. |
analyzing the differences between the first \fItermname\fR and the other |
It does this by |
\fItermnames\fR and producing a description with \fBuse=\fR fields for the |
analyzing the differences between the first \fItermname\fP and the other |
other terminals. In this manner, it is possible to retrofit generic terminfo |
\fItermnames\fP and producing a description with \fBuse=\fP fields for the |
entries into a terminal's description. Or, if two similar terminals exist, but |
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 |
were coded at different times or by different people so that each description |
is a full description, using \fBinfocmp\fR will show what can be done to change |
is a full description, using \fBinfocmp\fP |
|
will show what can be done to change |
one description to be relative to the other. |
one description to be relative to the other. |
.PP |
.PP |
A capability will get printed with an at-sign (@) if it no longer exists in the |
A capability will be printed with an at-sign (@) if it no longer exists in the |
first \fItermname\fR, but one of the other \fItermname\fR entries contains a |
first \fItermname\fP, but one of the other \fItermname\fP entries contains a |
value for it. A capability's value gets printed if the value in the first |
value for it. |
\fItermname\fR is not found in any of the other \fItermname\fR entries, or if |
A capability's value will be printed if the value in the first |
the first of the other \fItermname\fR entries that has this capability gives a |
\fItermname\fP is not found in any of the other \fItermname\fP entries, or if |
different value for the capability than that in the first \fItermname\fR. |
the first of the other \fItermname\fP entries that has this capability gives a |
|
different value for the capability than that in the first \fItermname\fP. |
.PP |
.PP |
The order of the other \fItermname\fR entries is significant. Since the |
The order of the other \fItermname\fP entries is significant. |
terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities, |
Since the |
specifying two \fBuse=\fR entries that contain differing entries for the same |
terminfo compiler \fBtic\fP does a left-to-right scan of the capabilities, |
|
specifying two \fBuse=\fP entries that contain differing entries for the same |
capabilities will produce different results depending on the order that the |
capabilities will produce different results depending on the order that the |
entries are given in. \fBinfocmp\fR will flag any such inconsistencies between |
entries are given in. |
the other \fItermname\fR entries as they are found. |
\fBinfocmp\fP will flag any such inconsistencies between |
|
the other \fItermname\fP entries as they are found. |
.PP |
.PP |
Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that |
Alternatively, specifying a capability \fIafter\fP a \fBuse=\fP entry that |
contains that capability will cause the second specification to be ignored. |
contains that capability will cause the second specification to be ignored. |
Using \fBinfocmp\fR to recreate a description can be a useful check to make |
Using \fBinfocmp\fP to recreate a description can be a useful check to make |
sure that everything was specified correctly in the original source |
sure that everything was specified correctly in the original source |
description. |
description. |
.PP |
.PP |
Another error that does not cause incorrect compiled files, but will slow down |
Another error that does not cause incorrect compiled files, but will slow down |
the compilation time, is specifying extra \fBuse=\fR fields that are |
the compilation time, is specifying extra \fBuse=\fP fields that are |
superfluous. \fBinfocmp\fR will flag any other \fItermname use=\fR fields that |
superfluous. |
|
\fBinfocmp\fP will flag any other \fItermname use=\fP fields that |
were not needed. |
were not needed. |
.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR] |
.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR] |
The location of the compiled \fBterminfo\fR database is taken from the |
Like other \fBncurses\fP utilities, |
environment variable \fBTERMINFO\fR . If the variable is not defined, or the |
\fBinfocmp\fP looks for the terminal descriptions in several places. |
terminal is not found in that location, the system \fBterminfo\fR database, |
You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables |
in \fB/usr/share/terminfo\fR, will be used. The options \fB-A\fR |
to override the compiled-in default list of places to search |
and \fB-B\fR may be used to override this location. The \fB-A\fR option will |
(see \fBcurses\fP(3) for details). |
set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will |
.PP |
set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to |
You can also use the options \fB\-A\fP |
|
and \fB\-B\fP to override the list of places to search |
|
when comparing terminal descriptions: |
|
.bP |
|
The \fB\-A\fP option sets the location for the first \fItermname\fP |
|
.bP |
|
The \fB\-B\fP option sets the location for the other \fItermnames\fP. |
|
.PP |
|
Using these options, it is possible to |
compare descriptions for a terminal with the same name located in two different |
compare descriptions for a terminal with the same name located in two different |
databases. This is useful for comparing descriptions for the same terminal |
databases. |
|
For instance, |
|
you can use this feature for comparing descriptions for the same terminal |
created by different people. |
created by different people. |
.SS Other Options |
.SS Other Options |
.TP 5 |
.TP 5 |
\fB-1\fR |
\fB\-0\fP |
causes the fields to be printed out one to a line. Otherwise, |
causes the fields to be printed on one line, without wrapping. |
|
.TP 5 |
|
\fB\-1\fP |
|
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 |
the fields will be printed several to a line to a maximum width |
of 60 characters. |
of 60 characters. |
.TP |
.TP |
\fB-a\fR |
\fB\-a\fP |
tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding |
tells \fBinfocmp\fP to retain commented-out capabilities |
them. Capabilities are commented by prefixing them with a period. |
rather than discarding them. |
|
Capabilities are commented by prefixing them with a period. |
|
.TP |
|
\fB\-D\fP |
|
tells \fBinfocmp\fP to print the database locations that it knows about, |
|
and exit. |
.TP 5 |
.TP 5 |
\fB-E\fR |
\fB\-E\fP |
Dump the capabilities of the given terminal as tables, needed in |
Dump the capabilities of the given terminal as tables, needed in |
the C initializer for a |
the C initializer for a |
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR). |
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fP). |
This option is useful for preparing versions of the curses library hardwired |
This option is useful for preparing versions of the curses library hardwired |
for a given terminal type. |
for a given terminal type. |
The tables are all declared static, and are named according to the type |
The tables are all declared static, and are named according to the type |
and the name of the corresponding terminal entry. |
and the name of the corresponding terminal entry. |
.sp |
.sp |
Before ncurses 5.0, the split between the \fB-e\fP and \fB-E\fP |
Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP |
options was not needed; but support for extended names required making |
options was not needed; but support for extended names required making |
the arrays of terminal capabilities separate from the TERMTYPE structure. |
the arrays of terminal capabilities separate from the TERMTYPE structure. |
.TP 5 |
.TP 5 |
\fB-e\fR |
\fB\-e\fP |
Dump the capabilities of the given terminal as a C initializer for a |
Dump the capabilities of the given terminal as a C initializer for a |
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR). |
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fP). |
This option is useful for preparing versions of the curses library hardwired |
This option is useful for preparing versions of the curses library hardwired |
for a given terminal type. |
for a given terminal type. |
.TP 5 |
.TP 5 |
\fB-F\fR |
\fB\-F\fP |
compare terminfo files. This assumes that two following arguments are |
compare terminfo files. |
filenames. The files are searched for pairwise matches between |
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. |
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 report printed to standard output lists entries with no matches in |
the other file, and entries with more than one match. For entries |
the other file, and entries with more than one match. |
with exactly one match it includes a difference report. Normally, |
For entries |
|
with exactly one match it includes a difference report. |
|
Normally, |
to reduce the volume of the report, use references are |
to reduce the volume of the report, use references are |
not resolved before looking for differences, but resolution can be forced |
not resolved before looking for differences, but resolution can be forced |
by also specifying \fB-r\fR. |
by also specifying \fB\-r\fP. |
.TP 5 |
.TP 5 |
\fB-f\fR |
\fB\-f\fP |
Display complex terminfo strings which contain if/then/else/endif expressions |
Display complex terminfo strings which contain if/then/else/endif expressions |
indented for readability. |
indented for readability. |
.TP 5 |
.TP 5 |
\fB-G\fR |
\fB\-G\fP |
Display constant literals in decimal form |
Display constant literals in decimal form |
rather than their character equivalents. |
rather than their character equivalents. |
.TP 5 |
.TP 5 |
\fB-g\fR |
\fB\-g\fP |
Display constant character literals in quoted form |
Display constant character literals in quoted form |
rather than their decimal equivalents. |
rather than their decimal equivalents. |
.TP 5 |
.TP 5 |
\fB-i\fR |
\fB\-i\fP |
Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset |
Analyze the initialization (\fBis1\fP, \fBis2\fP, \fBis3\fP), and reset |
(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the |
(\fBrs1\fP, \fBrs2\fP, \fBrs3\fP), strings in the entry, |
|
as well as those used for starting/stopping cursor-positioning mode |
|
(\fBsmcup\fP, \fBrmcup\fP) as well as starting/stopping keymap mode |
|
(\fBsmkx\fP, \fBrmkx\fP). |
|
.IP |
|
For each string, the |
code tries to analyze it into actions in terms of the other capabilities in 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 |
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 |
private modes (the set of recognized special sequences has been selected for |
completeness over the existing terminfo database). Each report line consists |
completeness over the existing terminfo database). |
|
Each report line consists |
of the capability name, followed by a colon and space, followed by a printable |
of the capability name, followed by a colon and space, followed by a printable |
expansion of the capability string with sections matching recognized actions |
expansion of the capability string with sections matching recognized actions |
translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI |
translated into {}-bracketed descriptions. |
|
.IP |
|
Here is a list of the DEC/ANSI |
special sequences recognized: |
special sequences recognized: |
i. |
.PP |
.TS |
.TS |
center tab(/) ; |
center tab(/) ; |
l l |
l l |
|
|
DECPNM/normal keypad mode |
DECPNM/normal keypad mode |
DECANSI/enter ANSI mode |
DECANSI/enter ANSI mode |
= |
= |
ECMA[+-]AM/keyboard action mode |
ECMA[+\-]AM/keyboard action mode |
ECMA[+-]IRM/insert replace mode |
ECMA[+\-]IRM/insert replace mode |
ECMA[+-]SRM/send receive mode |
ECMA[+\-]SRM/send receive mode |
ECMA[+-]LNM/linefeed mode |
ECMA[+\-]LNM/linefeed mode |
= |
= |
DEC[+-]CKM/application cursor keys |
DEC[+\-]CKM/application cursor keys |
DEC[+-]ANM/set VT52 mode |
DEC[+\-]ANM/set VT52 mode |
DEC[+-]COLM/132-column mode |
DEC[+\-]COLM/132-column mode |
DEC[+-]SCLM/smooth scroll |
DEC[+\-]SCLM/smooth scroll |
DEC[+-]SCNM/reverse video mode |
DEC[+\-]SCNM/reverse video mode |
DEC[+-]OM/origin mode |
DEC[+\-]OM/origin mode |
DEC[+-]AWM/wraparound mode |
DEC[+\-]AWM/wraparound mode |
DEC[+-]ARM/auto-repeat mode |
DEC[+\-]ARM/auto-repeat mode |
.TE |
.TE |
.sp |
.sp |
It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set |
It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set |
Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and |
Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and |
REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off). |
REVERSE. |
.PP |
All but NORMAL may be prefixed with |
|
.RS |
|
.bP |
|
\*(``+\*('' (turn on) or |
|
.bP |
|
\*(``\-\*('' (turn off). |
|
.RE |
|
.IP |
An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}). |
An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}). |
.TP 5 |
.TP 5 |
\fB-l\fR |
\fB\-l\fP |
Set output format to terminfo. |
Set output format to terminfo. |
.TP 5 |
.TP 5 |
\fB-p\fR |
\fB\-p\fP |
Ignore padding specifications when comparing strings. |
Ignore padding specifications when comparing strings. |
.TP 5 |
.TP 5 |
\fB-q\fR |
\fB\-Q\fP \fIn\fP |
|
Rather than show source in terminfo (text) format, |
|
print the compiled (binary) format in hexadecimal or base64 form, |
|
depending on the option's value: |
|
.RS 8 |
|
.TP 3 |
|
1 |
|
hexadecimal |
|
.TP 3 |
|
2 |
|
base64 |
|
.TP 3 |
|
3 |
|
hexadecimal and base64 |
|
.RE |
|
.IP |
|
For example, this prints the compiled terminfo value as a string |
|
which could be assigned to the \fBTERMINFO\fP environment variable: |
|
.NS |
|
infocmp -0 -q -Q2 |
|
.NE |
|
.TP 5 |
|
\fB\-q\fP |
|
This makes the output a little shorter: |
|
.RS |
|
.bP |
Make the comparison listing shorter by omitting subheadings, and using |
Make the comparison listing shorter by omitting subheadings, and using |
"-" for absent capabilities, "@" for canceled rather than "NULL". |
\*(``\-\*('' for absent capabilities, \*(``@\*('' |
|
for canceled rather than \*(``NULL\*(''. |
|
.bP |
|
However, show differences between absent and cancelled capabilities. |
|
.bP |
|
Omit the \*(``Reconstructed from\*('' comment for source listings. |
|
.RE |
.TP 5 |
.TP 5 |
\fB-R\fR\fIsubset\fR |
\fB\-R\fIsubset\fR |
Restrict output to a given subset. This option is for use with archaic |
Restrict output to a given subset. |
versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support |
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 |
the full set of SVR4/XSI Curses terminfo; and variants such as AIX |
that have their own extensions incompatible with SVr4/XSI. Available terminfo |
that have their own extensions incompatible with SVr4/XSI. |
subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for |
.RS |
details. You can also choose the subset "BSD" which selects only capabilities |
.bP |
|
Available terminfo |
|
subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*(''; |
|
see \fBterminfo\fP(\*n) for details. |
|
.bP |
|
You can also choose the subset \*(``BSD\*('' which selects only capabilities |
with termcap equivalents recognized by 4.4BSD. |
with termcap equivalents recognized by 4.4BSD. |
|
.bP |
|
If you select any other value for \fB\-R\fP, |
|
it is the same as no subset, i.e., all capabilities are used. |
|
.RE |
|
.IP |
|
A few options override the subset selected with \fB\-R\fP, |
|
if they are processed later in the command parameters: |
|
.RS |
|
.TP 5 |
|
\fB\-C\fP |
|
sets the \*(``BSD\*('' subset as a side-effect. |
|
.TP 5 |
|
\fB\-I\fP |
|
sets the subset to all capabilities. |
|
.TP 5 |
|
\fB\-r\fP |
|
sets the subset to all capabilities. |
|
.RE |
.TP |
.TP |
\fB-s \fR\fI[d|i|l|c]\fR |
\fB\-s \fI[d|i|l|c]\fR |
The \fB-s\fR option sorts the fields within each type according to the argument |
The \fB\-s\fP option sorts the fields within each type according to the argument |
below: |
below: |
.br |
.br |
.RS 5 |
.RS 5 |
.TP 5 |
.TP 5 |
\fBd\fR |
\fBd\fP |
leave fields in the order that they are stored in the \fIterminfo\fR database. |
leave fields in the order that they are stored in the \fIterminfo\fP database. |
.TP 5 |
.TP 5 |
\fBi\fR |
\fBi\fP |
sort by \fIterminfo\fR name. |
sort by \fIterminfo\fP name. |
.TP 5 |
.TP 5 |
\fBl\fR |
\fBl\fP |
sort by the long C variable name. |
sort by the long C variable name. |
.TP 5 |
.TP 5 |
\fBc\fR |
\fBc\fP |
sort by the \fItermcap\fR name. |
sort by the \fItermcap\fP name. |
.RE |
.RE |
.IP |
.IP |
If the \fB-s\fR option is not given, the fields printed out will be |
If the \fB\-s\fP option is not given, the fields printed out will be |
sorted alphabetically by the \fBterminfo\fR name within each type, |
sorted alphabetically by the \fBterminfo\fP name within each type, |
except in the case of the \fB-C\fR or the \fB-L\fR options, which cause the |
except in the case of the \fB\-C\fP or the \fB\-L\fP options, which cause the |
sorting to be done by the \fBtermcap\fR name or the long C variable |
sorting to be done by the \fBtermcap\fP name or the long C variable |
name, respectively. |
name, respectively. |
.TP 5 |
.TP 5 |
\fB-T\fR |
\fB\-T\fP |
eliminates size-restrictions on the generated text. |
eliminates size-restrictions on the generated text. |
This is mainly useful for testing and analysis, since the compiled |
This is mainly useful for testing and analysis, since the compiled |
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). |
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). |
.TP |
.TP |
\fB-t\fR |
\fB\-t\fP |
tells \fBtic\fP to discard commented-out capabilities. |
tells \fBtic\fP to discard commented-out capabilities. |
Normally when translating from terminfo to termcap, |
Normally when translating from terminfo to termcap, |
untranslatable capabilities are commented-out. |
untranslatable capabilities are commented-out. |
.TP 5 |
.TP 5 |
\fB-U\fR |
\fB\-U\fP |
tells \fBinfocmp\fP to not post-process the data after parsing the source file. |
tells \fBinfocmp\fP to not post-process the data |
|
after parsing the source file. |
This feature helps when comparing the actual contents of two source files, |
This feature helps when comparing the actual contents of two source files, |
since it excludes the inferences that \fBinfocmp\fP makes to fill in missing |
since it excludes the inferences that \fBinfocmp\fP makes to fill in missing |
data. |
data. |
.TP 5 |
.TP 5 |
\fB-V\fR |
\fB\-V\fP |
reports the version of ncurses which was used in this program, and exits. |
reports the version of ncurses which was used in this program, and exits. |
.TP 5 |
.TP 5 |
\fB-v\fR \fIn\fR |
\fB\-v\fP \fIn\fP |
prints out tracing information on standard error as the program runs. |
prints out tracing information on standard error as the program runs. |
Higher values of n induce greater verbosity. |
.IP |
|
The optional parameter \fIn\fP is a number from 1 to 10, inclusive, |
|
indicating the desired level of detail of information. |
|
If ncurses is built without tracing support, the optional parameter is ignored. |
|
.TP |
|
\fB\-W\fP |
|
By itself, the \fB\-w\fP option will not force long strings to be wrapped. |
|
Use the \fB\-W\fP option to do this. |
.TP 5 |
.TP 5 |
\fB-w\fR \fIwidth\fR |
\fB\-w\fP \fIwidth\fP |
changes the output to \fIwidth\fR characters. |
changes the output to \fIwidth\fP characters. |
.TP |
.TP |
\fB-x\fR |
\fB\-x\fP |
print information for user-defined capabilities. |
print information for user-defined capabilities (see \fBuser_caps(\*n)\fP. |
These are extensions to the terminfo repertoire which can be loaded |
These are extensions to the terminfo repertoire which can be loaded |
using the \fB-x\fR option of \fBtic\fP. |
using the \fB\-x\fP option of \fBtic\fP. |
.SH FILES |
.SH FILES |
.TP 20 |
.TP 20 |
\*d |
\*d |
Compiled terminal description database. |
Compiled terminal description database. |
|
.SH HISTORY |
|
Although System V Release 2 provided a terminfo library, |
|
it had no documented tool for decompiling the terminal descriptions. |
|
Tony Hansen (AT&T) wrote the first \fBinfocmp\fP in early 1984, |
|
for System V Release 3. |
|
.PP |
|
Eric Raymond used the AT&T documentation in 1995 to provide an equivalent |
|
\fBinfocmp\fP for ncurses. |
|
In addition, he added a few new features such as: |
|
.bP |
|
the \fB\-e\fP option, to support \fIfallback\fP |
|
(compiled-in) terminal descriptions |
|
.bP |
|
the \fB\-i\fP option, to help with analysis |
|
.PP |
|
Later, Thomas Dickey added the \fB\-x\fP (user-defined capabilities) |
|
option, and the \fB\-E\fP option to support fallback entries with |
|
user-defined capabilities. |
|
.PP |
|
For a complete list, see the \fIEXTENSIONS\fP section. |
|
.PP |
|
In 2010, Roy Marples provided an \fBinfocmp\fP 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 \fB\-x\fP option adapted from ncurses. |
|
.SH PORTABILITY |
|
X/Open Curses, Issue 7 (2009) provides a description of \fBinfocmp\fP. |
|
It does not mention the options used for converting to termcap format. |
.SH EXTENSIONS |
.SH EXTENSIONS |
The |
The |
\fB-E\fR, |
\fB\-0\fP, |
\fB-F\fR, |
\fB\-1\fP, |
\fB-G\fR, |
\fB\-E\fP, |
\fB-R\fR, |
\fB\-F\fP, |
\fB-T\fR, |
\fB\-G\fP, |
\fB-V\fR, |
\fB\-Q\fP, |
\fB-a\fR, |
\fB\-R\fP, |
\fB-e\fR, |
\fB\-T\fP, |
\fB-f\fR, |
\fB\-V\fP, |
\fB-g\fR, |
\fB\-a\fP, |
\fB-i\fR, |
\fB\-e\fP, |
\fB-l\fR, |
\fB\-f\fP, |
\fB-p\fR, |
\fB\-g\fP, |
\fB-q\fR and |
\fB\-i\fP, |
\fB-t\fR |
\fB\-l\fP, |
|
\fB\-p\fP, |
|
\fB\-q\fP and |
|
\fB\-t\fP |
options are not supported in SVr4 curses. |
options are not supported in SVr4 curses. |
.PP |
.PP |
The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's. |
SVr4 infocmp does not distinguish between absent and cancelled capabilities. |
Actual BSD curses versions will have a more restricted set. To see only the |
Also, it shows missing integer capabilities as \fB\-1\fP |
4.4BSD set, use \fB-r\fR \fB-RBSD\fR. |
(the internal value used to represent missing integers). |
|
This implementation shows those as \*(``NULL\*('', |
|
for consistency with missing strings. |
|
.PP |
|
The \fB\-r\fP 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 \fB\-r\fP \fB\-RBSD\fP. |
|
.SH BUGS |
|
The \fB\-F\fP option of \fBinfocmp\fP(1) should be a \fBtoe\fP(1) mode. |
.SH SEE ALSO |
.SH SEE ALSO |
\fBcaptoinfo\fR(1), |
\fBcaptoinfo\fP(1), |
\fBinfotocap\fR(1), |
\fBinfotocap\fP(1), |
\fBtic\fR(1), |
\fBtic\fP(1), |
\fBcurses\fR(3), |
\fBtoe\fP(1), |
\fBterminfo\fR(\*n). |
\fBcurses\fP(3), |
|
\fBterminfo\fP(\*n). |
|
\fBuser_caps\fP(\*n). |
|
.sp |
|
https://invisible-island.net/ncurses/tctest.html |
.PP |
.PP |
This describes \fBncurses\fR |
This describes \fBncurses\fP |
version 5.7. |
version 6.4 (patch 20230826). |
.SH AUTHOR |
.SH AUTHOR |
Eric S. Raymond <esr@snark.thyrsus.com> |
Eric S. Raymond <esr@snark.thyrsus.com> |
and |
and |
.br |
.br |
Thomas E. Dickey <dickey@invisible-island.net> |
Thomas E. Dickey <dickey@invisible-island.net> |
.\"# |
|
.\"# The following sets edit modes for GNU EMACS |
|
.\"# Local Variables: |
|
.\"# mode:nroff |
|
.\"# fill-column:79 |
|
.\"# End: |
|