blob: 44cb12fb7122ba8c05caaa7dd880a44d75c13ee0 [file] [log] [blame]
micky3879b9f5e72025-07-08 18:04:53 -04001<!--
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05302 * t
3 ****************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -04004 * Copyright 2018-2023,2024 Thomas E. Dickey *
5 * Copyright 1998-2017,2018 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05306 * *
7 * Permission is hereby granted, free of charge, to any person obtaining a *
8 * copy of this software and associated documentation files (the *
9 * "Software"), to deal in the Software without restriction, including *
10 * without limitation the rights to use, copy, modify, merge, publish, *
11 * distribute, distribute with modifications, sublicense, and/or sell *
12 * copies of the Software, and to permit persons to whom the Software is *
13 * furnished to do so, subject to the following conditions: *
14 * *
15 * The above copyright notice and this permission notice shall be included *
16 * in all copies or substantial portions of the Software. *
17 * *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
25 * *
26 * Except as contained in this notice, the name(s) of the above copyright *
27 * holders shall not be used in advertising or otherwise to promote the *
28 * sale, use or other dealings in this Software without prior written *
29 * authorization. *
30 ****************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -040031 * @Id: infocmp.1m,v 1.109 2024/03/16 15:35:01 tom Exp @
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053032-->
Steve Kondikae271bc2015-11-15 02:50:53 +010033<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053034<HTML>
35<HEAD>
Steve Kondikae271bc2015-11-15 02:50:53 +010036<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
micky3879b9f5e72025-07-08 18:04:53 -040037<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
38<TITLE>infocmp 1m 2024-03-16 ncurses 6.5 User commands</TITLE>
39<link rel="author" href="mailto:bug-ncurses@gnu.org">
40
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053041</HEAD>
42<BODY>
micky3879b9f5e72025-07-08 18:04:53 -040043<H1 class="no-header">infocmp 1m 2024-03-16 ncurses 6.5 User commands</H1>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053044<PRE>
micky3879b9f5e72025-07-08 18:04:53 -040045<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> User commands <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053046
47
48
49
micky3879b9f5e72025-07-08 18:04:53 -040050</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053051 <STRONG>infocmp</STRONG> - compare or print out <EM>terminfo</EM> descriptions
52
53
micky3879b9f5e72025-07-08 18:04:53 -040054</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
55 <STRONG>infocmp</STRONG> [<STRONG>-1cCdDeEFgGiIKlLnpqrtTuUVWx</STRONG>]
56 [<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-Q</STRONG> <EM>n</EM>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053057 [<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
micky3879b9f5e72025-07-08 18:04:53 -040058 [<EM>terminal-type</EM> ...]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053059
60
micky3879b9f5e72025-07-08 18:04:53 -040061</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
62 <STRONG>infocmp</STRONG> can be used to compare a binary <STRONG>terminfo</STRONG> entry with other
63 terminfo entries, rewrite a <STRONG>terminfo</STRONG> description to take advantage of
64 the <STRONG>use=</STRONG> terminfo field, or print out a <STRONG>terminfo</STRONG> description from the
65 binary file (<STRONG>term</STRONG>) in a variety of formats. In all cases, the Boolean
66 fields will be printed first, followed by the numeric fields, followed
67 by the string fields.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053068
Steve Kondikae271bc2015-11-15 02:50:53 +010069
micky3879b9f5e72025-07-08 18:04:53 -040070</PRE><H3><a name="h3-Default-Options">Default Options</a></H3><PRE>
71 If no options are specified and zero or one <EM>terminal-types</EM> are
72 specified, the <STRONG>-I</STRONG> option will be assumed. If more than one <EM>terminal-</EM>
73 <EM>type</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053074
Steve Kondikae271bc2015-11-15 02:50:53 +010075
micky3879b9f5e72025-07-08 18:04:53 -040076</PRE><H3><a name="h3-Comparison-Options_d_c_n_">Comparison Options [-d] [-c] [-n]</a></H3><PRE>
77 <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first terminal
78 <EM>terminal-type</EM> with each of the descriptions given by the entries for
79 the other terminal's <EM>terminal-types</EM>. If a capability is defined for
80 only one of the terminals, the value returned depends on the type of
81 the capability:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053082
micky3879b9f5e72025-07-08 18:04:53 -040083 <STRONG>o</STRONG> <STRONG>F</STRONG> for missing Boolean variables
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053084
micky3879b9f5e72025-07-08 18:04:53 -040085 <STRONG>o</STRONG> <STRONG>NULL</STRONG> for missing integer or string variables
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053086
micky3879b9f5e72025-07-08 18:04:53 -040087 Use the <STRONG>-q</STRONG> option to show the distinction between <EM>absent</EM> and <EM>cancelled</EM>
88 capabilities.
89
90 These options produce a list which you can use to compare two or more
91 terminal descriptions:
92
93 <STRONG>-d</STRONG> produces a list of each capability that is <EM>different</EM> between two
94 entries. Each item in the list shows ":" after the capability
95 name, followed by the capability values, separated by a comma.
96
97 <STRONG>-c</STRONG> produces a list of each capability that is <EM>common</EM> between two or
98 more entries. Missing capabilities are ignored. Each item in the
99 list shows "=" after the capability name, followed by the
100 capability value.
101
102 The <STRONG>-u</STRONG> option provides a related output, showing the first
103 terminal description rewritten to use the second as a building
104 block via the "use=" clause.
105
106 <STRONG>-n</STRONG> produces a list of each capability that is in <EM>none</EM> of the given
107 entries. Each item in the list shows "!" before the capability
108 name.
109
110 Normally only the conventional capabilities are shown. Use the <STRONG>-x</STRONG>
111 option to add the BSD-compatibility capabilities (names prefixed
112 with "OT").
113
114 If no <EM>terminal-types</EM> are given, <STRONG>infocmp</STRONG> uses the environment
115 variable <EM>TERM</EM> for each of the <EM>terminal-types</EM>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530116
Steve Kondikae271bc2015-11-15 02:50:53 +0100117
micky3879b9f5e72025-07-08 18:04:53 -0400118</PRE><H3><a name="h3-Source-Listing-Options_I_L_C_r_">Source Listing Options [-I] [-L] [-C] [-r]</a></H3><PRE>
119 The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing for each
120 terminal named.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530121
micky3879b9f5e72025-07-08 18:04:53 -0400122 <STRONG>-I</STRONG> use <EM>terminfo</EM> capability codes
123 <STRONG>-L</STRONG> use "long" capability names
124 <STRONG>-C</STRONG> use <EM>termcap</EM> capability codes
125 <STRONG>-r</STRONG> with <STRONG>-C</STRONG>, include nonstandard capabilities
126 <STRONG>-K</STRONG> with <STRONG>-C</STRONG>, improve BSD compatibility
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530127
micky3879b9f5e72025-07-08 18:04:53 -0400128 If no <EM>terminal-types</EM> are given, the environment variable <EM>TERM</EM> will be
129 used for the terminal name.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530130
micky3879b9f5e72025-07-08 18:04:53 -0400131 The source produced by the <STRONG>-C</STRONG> option may be used directly as a <STRONG>termcap</STRONG>
132 entry, but not all parameterized strings can be changed to the <STRONG>termcap</STRONG>
133 format. <STRONG>infocmp</STRONG> will attempt to convert most of the parameterized
134 information, and anything not converted will be plainly marked in the
135 output and commented out. These should be edited by hand.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530136
micky3879b9f5e72025-07-08 18:04:53 -0400137 For best results when converting to <STRONG>termcap</STRONG> format, you should use both
138 <STRONG>-C</STRONG> and <STRONG>-r</STRONG>. Normally a termcap description is limited to 1023 bytes.
139 <STRONG>infocmp</STRONG> trims away less essential parts to make it fit. If you are
140 converting to one of the (rare) termcap implementations which accept an
141 unlimited size of termcap, you may want to add the <STRONG>-T</STRONG> option. More
142 often however, you must help the termcap implementation, and trim
143 excess whitespace (use the <STRONG>-0</STRONG> option for that).
Steve Kondikae271bc2015-11-15 02:50:53 +0100144
micky3879b9f5e72025-07-08 18:04:53 -0400145 All padding information for strings will be collected together and
146 placed at the beginning of the string where <STRONG>termcap</STRONG> expects it.
147 Mandatory padding (padding information with a trailing "/") will become
148 optional.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530149
micky3879b9f5e72025-07-08 18:04:53 -0400150 All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but which are
151 derivable from other <STRONG>terminfo</STRONG> variables, will be output. Not all
152 <STRONG>terminfo</STRONG> capabilities will be translated; only those variables which
153 were part of <STRONG>termcap</STRONG> will normally be output. Specifying the <STRONG>-r</STRONG> option
154 will take off this restriction, allowing all capabilities to be output
155 in <EM>termcap</EM> form. Normally you would use both the <STRONG>-C</STRONG> and <STRONG>-r</STRONG> options.
156 The actual format used incorporates some improvements for escaped
157 characters from terminfo format. For a stricter BSD-compatible
158 translation, use the <STRONG>-K</STRONG> option rather than <STRONG>-C</STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530159
micky3879b9f5e72025-07-08 18:04:53 -0400160 Note that because padding is collected to the beginning of the
161 capability, not all capabilities are output. Mandatory padding is not
162 supported. Because <STRONG>termcap</STRONG> strings are not as flexible, it is not
163 always possible to convert a <STRONG>terminfo</STRONG> string capability into an
164 equivalent <STRONG>termcap</STRONG> format. A subsequent conversion of the <STRONG>termcap</STRONG> file
165 back into <STRONG>terminfo</STRONG> format will not necessarily reproduce the original
166 <STRONG>terminfo</STRONG> source.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530167
micky3879b9f5e72025-07-08 18:04:53 -0400168 Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG> equivalents,
169 and some terminal types which commonly have such sequences, are:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530170
micky3879b9f5e72025-07-08 18:04:53 -0400171 <STRONG><EM>terminfo</EM></STRONG> <STRONG><EM>termcap</EM></STRONG> Terminal Types
172 ----------------------------------------------------
173 <STRONG>%p1%c</STRONG> <STRONG>%.</STRONG> ansi-m
174 <STRONG>%p1%d</STRONG> <STRONG>%d</STRONG> ansi, vt100
175 <STRONG>%p1%'</STRONG> <STRONG>'%+%c</STRONG> <STRONG>%+x</STRONG> vt52
176 <STRONG>%i</STRONG> <STRONG>%iq</STRONG> ansi, vt100
177 <STRONG>%p1%?%'x'%&gt;%t%p1%'y'%+%;</STRONG> <STRONG>%&gt;xy</STRONG> annarbor4080
178 <STRONG>%p2</STRONG>...<STRONG>%p1</STRONG> <STRONG>%r</STRONG> hpgeneric
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530179
Steve Kondikae271bc2015-11-15 02:50:53 +0100180
micky3879b9f5e72025-07-08 18:04:53 -0400181</PRE><H3><a name="h3-Use_Option_u_">Use= Option [-u]</a></H3><PRE>
182 The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of the first
183 terminal <EM>terminal-type</EM> which is relative to the sum of the descriptions
184 given by the entries for the other <EM>terminal-types</EM>. It does this by
185 analyzing the differences between the first <EM>terminal-types</EM> and the
186 other <EM>terminal-types</EM> and producing a description with <STRONG>use=</STRONG> fields for
187 the other terminals. In this manner, it is possible to retrofit
188 generic terminfo entries into a terminal's description. Or, if two
189 similar terminals exist, but were coded at different times or by
190 different people so that each description is a full description, using
191 <STRONG>infocmp</STRONG> will show what can be done to change one description to be
192 relative to the other.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530193
micky3879b9f5e72025-07-08 18:04:53 -0400194 A capability will be printed with an at-sign (@) if it no longer exists
195 in the first <EM>terminal-type</EM>, but one of the other <EM>terminal-type</EM> entries
196 contains a value for it. A capability's value will be printed if the
197 value in the first <EM>terminal-type</EM> is not found in any of the other
198 <EM>terminal-type</EM> entries, or if the first of the other <EM>terminal-type</EM>
199 entries that has this capability gives a different value for the
200 capability than that in the first <EM>terminal-type</EM>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530201
micky3879b9f5e72025-07-08 18:04:53 -0400202 The order of the other <EM>terminal-type</EM> entries is significant. Since the
203 terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan of the capabilities,
204 specifying two <STRONG>use=</STRONG> entries that contain differing entries for the same
205 capabilities will produce different results depending on the order that
206 the entries are given in. <STRONG>infocmp</STRONG> will flag any such inconsistencies
207 between the other <EM>terminal-type</EM> entries as they are found.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530208
micky3879b9f5e72025-07-08 18:04:53 -0400209 Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry that contains
210 that capability will cause the second specification to be ignored.
211 Using <STRONG>infocmp</STRONG> to recreate a description can be a useful check to make
212 sure that everything was specified correctly in the original source
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530213 description.
214
micky3879b9f5e72025-07-08 18:04:53 -0400215 Another error that does not cause incorrect compiled files, but will
216 slow down the compilation time, is specifying extra <STRONG>use=</STRONG> fields that
217 are superfluous. <STRONG>infocmp</STRONG> will flag any other <EM>terminal-type</EM> <EM>use=</EM> fields
218 that were not needed.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530219
220 <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
micky3879b9f5e72025-07-08 18:04:53 -0400221 Like other <EM>ncurses</EM> utilities, <STRONG>infocmp</STRONG> looks for the terminal
222 descriptions in several places. You can use the <EM>TERMINFO</EM> and
223 <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variables to override the compiled-in default
224 list of places to search. See <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, as well as the <EM>Fetching</EM>
225 <EM>Compiled</EM> <EM>Descriptions</EM> section in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530226
micky3879b9f5e72025-07-08 18:04:53 -0400227 You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the list of places
228 to search when comparing terminal descriptions:
Steve Kondikae271bc2015-11-15 02:50:53 +0100229
micky3879b9f5e72025-07-08 18:04:53 -0400230 <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>terminal-type</EM>
Steve Kondikae271bc2015-11-15 02:50:53 +0100231
micky3879b9f5e72025-07-08 18:04:53 -0400232 <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other <EM>terminal-types</EM>.
Steve Kondikae271bc2015-11-15 02:50:53 +0100233
micky3879b9f5e72025-07-08 18:04:53 -0400234 Using these options, it is possible to compare descriptions for a
235 terminal with the same name located in two different databases. For
236 instance, you can use this feature for comparing descriptions for the
237 same terminal created by different people.
Steve Kondikae271bc2015-11-15 02:50:53 +0100238
239
micky3879b9f5e72025-07-08 18:04:53 -0400240</PRE><H3><a name="h3-Other-Options">Other Options</a></H3><PRE>
241 <STRONG>-0</STRONG> causes the fields to be printed on one line, without wrapping.
Steve Kondikae271bc2015-11-15 02:50:53 +0100242
micky3879b9f5e72025-07-08 18:04:53 -0400243 <STRONG>-1</STRONG> causes the fields to be printed out one to a line. Otherwise, the
244 fields will be printed several to a line to a maximum width of 60
245 characters.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530246
micky3879b9f5e72025-07-08 18:04:53 -0400247 <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities rather than
248 discarding them. Capabilities are commented by prefixing them
249 with a period.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530250
micky3879b9f5e72025-07-08 18:04:53 -0400251 <STRONG>-D</STRONG> tells <STRONG>infocmp</STRONG> to print the database locations that it knows about,
252 and exit.
Steve Kondikae271bc2015-11-15 02:50:53 +0100253
micky3879b9f5e72025-07-08 18:04:53 -0400254 <STRONG>-E</STRONG> Dump the capabilities of the given terminal as tables, needed in
255 the C initializer for a TERMTYPE structure (the terminal
256 capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for
257 preparing versions of the curses library hardwired for a given
258 terminal type. The tables are all declared static, and are named
259 according to the type and the name of the corresponding terminal
260 entry.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530261
micky3879b9f5e72025-07-08 18:04:53 -0400262 Before <EM>ncurses</EM> 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG> options was
263 not needed; but support for extended names required making the
264 arrays of terminal capabilities separate from the TERMTYPE
265 structure.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530266
micky3879b9f5e72025-07-08 18:04:53 -0400267 <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C initializer for
268 a TERMTYPE structure (the terminal capability structure in the
269 <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing versions of the
270 curses library hardwired for a given terminal type.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530271
micky3879b9f5e72025-07-08 18:04:53 -0400272 <STRONG>-F</STRONG> compare terminfo files. This assumes that two following arguments
273 are filenames. The files are searched for pairwise matches
274 between entries, with two entries considered to match if any of
275 their names do. The report printed to standard output lists
276 entries with no matches in the other file, and entries with more
277 than one match. For entries with exactly one match it includes a
278 difference report. Normally, to reduce the volume of the report,
279 use references are not resolved before looking for differences,
280 but resolution can be forced by also specifying <STRONG>-r</STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530281
micky3879b9f5e72025-07-08 18:04:53 -0400282 <STRONG>-f</STRONG> Display complex terminfo strings which contain if/then/else/endif
283 expressions indented for readability.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530284
micky3879b9f5e72025-07-08 18:04:53 -0400285 <STRONG>-G</STRONG> Display constant literals in decimal form rather than their
286 character equivalents.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530287
micky3879b9f5e72025-07-08 18:04:53 -0400288 <STRONG>-g</STRONG> Display constant character literals in quoted form rather than
289 their decimal equivalents.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530290
micky3879b9f5e72025-07-08 18:04:53 -0400291 <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>,
292 <STRONG>rs3</STRONG>), strings in the entry, as well as those used for
293 starting/stopping cursor-positioning mode (<STRONG>smcup</STRONG>, <STRONG>rmcup</STRONG>) as well
294 as starting/stopping keymap mode (<STRONG>smkx</STRONG>, <STRONG>rmkx</STRONG>).
Steve Kondikae271bc2015-11-15 02:50:53 +0100295
micky3879b9f5e72025-07-08 18:04:53 -0400296 For each string, the code tries to analyze it into actions in
297 terms of the other capabilities in the entry, certain X3.64/ISO
298 6429/ECMA-48 capabilities, and certain DEC VT-series private modes
299 (the set of recognized special sequences has been selected for
300 completeness over the existing terminfo database). Each report
301 line consists of the capability name, followed by a colon and
302 space, followed by a printable expansion of the capability string
303 with sections matching recognized actions translated into
304 {}-bracketed descriptions.
Steve Kondikae271bc2015-11-15 02:50:53 +0100305
micky3879b9f5e72025-07-08 18:04:53 -0400306 Here is a list of the DEC/ANSI special sequences recognized:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530307
micky3879b9f5e72025-07-08 18:04:53 -0400308 Action Meaning
309 -----------------------------------------
310 RIS full reset
311 SC save cursor
312 RC restore cursor
313 LL home-down
314 RSR reset scroll region
315 -----------------------------------------
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530316
micky3879b9f5e72025-07-08 18:04:53 -0400317 DECSTR soft reset (VT320)
318 S7C1T 7-bit controls (VT220)
319 -----------------------------------------
320 ISO DEC G0 enable DEC graphics for G0
321 ISO UK G0 enable UK chars for G0
322 ISO US G0 enable US chars for G0
323 ISO DEC G1 enable DEC graphics for G1
324 ISO UK G1 enable UK chars for G1
325 ISO US G1 enable US chars for G1
326 -----------------------------------------
327 DECPAM application keypad mode
328 DECPNM normal keypad mode
329 DECANSI enter ANSI mode
330 -----------------------------------------
331 ECMA[+-]AM keyboard action mode
332 ECMA[+-]IRM insert replace mode
333 ECMA[+-]SRM send receive mode
334 ECMA[+-]LNM linefeed mode
335 -----------------------------------------
336 DEC[+-]CKM application cursor keys
337 DEC[+-]ANM set VT52 mode
338 DEC[+-]COLM 132-column mode
339 DEC[+-]SCLM smooth scroll
340 DEC[+-]SCNM reverse video mode
341 DEC[+-]OM origin mode
342 DEC[+-]AWM wraparound mode
343 DEC[+-]ARM auto-repeat mode
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530344
micky3879b9f5e72025-07-08 18:04:53 -0400345 It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
346 Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
347 REVERSE. All but NORMAL may be prefixed with
348
349 <STRONG>o</STRONG> "+" (turn on) or
350
351 <STRONG>o</STRONG> "-" (turn off).
352
353 An SGR0 designates an empty highlight sequence (equivalent to
354 {SGR:NORMAL}).
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530355
356 <STRONG>-l</STRONG> Set output format to terminfo.
357
358 <STRONG>-p</STRONG> Ignore padding specifications when comparing strings.
359
micky3879b9f5e72025-07-08 18:04:53 -0400360 <STRONG>-Q</STRONG> <EM>n</EM> Rather than show source in terminfo (text) format, print the
361 compiled (binary) format in hexadecimal or base64 form, depending
362 on the option's value:
363
364 1 hexadecimal
365
366 2 base64
367
368 3 hexadecimal and base64
369
370 For example, this prints the compiled terminfo value as a string
371 which could be assigned to the <EM>TERMINFO</EM> environment variable:
372
373 infocmp -0 -q -Q2
374
375 <STRONG>-q</STRONG> This makes the output a little shorter:
376
377 <STRONG>o</STRONG> Make the comparison listing shorter by omitting subheadings,
378 and using "-" for absent capabilities, "@" for canceled rather
379 than "NULL".
380
381 <STRONG>o</STRONG> However, show differences between absent and cancelled
382 capabilities.
383
384 <STRONG>o</STRONG> Omit the "Reconstructed from" comment for source listings.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530385
386 <STRONG>-R</STRONG><EM>subset</EM>
micky3879b9f5e72025-07-08 18:04:53 -0400387 Restrict output to a given subset. This option is for use with
388 archaic versions of terminfo like those on SVr1, Ultrix, or HP-UX
389 that do not support the full set of SVR4/XSI Curses terminfo; and
390 variants such as AIX that have their own extensions incompatible
391 with SVr4/XSI.
Steve Kondikae271bc2015-11-15 02:50:53 +0100392
micky3879b9f5e72025-07-08 18:04:53 -0400393 <STRONG>o</STRONG> Available terminfo subsets are "SVr1", "Ultrix", "HP", and
394 "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
395
396 <STRONG>o</STRONG> You can also choose the subset "BSD" which selects only
397 capabilities with termcap equivalents recognized by 4.4BSD.
398
399 <STRONG>o</STRONG> If you select any other value for <STRONG>-R</STRONG>, it is the same as no
400 subset, i.e., all capabilities are used.
401
402 A few options override the subset selected with <STRONG>-R</STRONG>, if they are
403 processed later in the command parameters:
404
405 <STRONG>-C</STRONG> sets the "BSD" subset as a side-effect.
406
407 <STRONG>-I</STRONG> sets the subset to all capabilities.
408
409 <STRONG>-r</STRONG> sets the subset to all capabilities.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530410
411 <STRONG>-s</STRONG> <EM>[d|i|l|c]</EM>
micky3879b9f5e72025-07-08 18:04:53 -0400412 The <STRONG>-s</STRONG> option sorts the fields within each type according to the
413 argument below:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530414
micky3879b9f5e72025-07-08 18:04:53 -0400415 <STRONG>d</STRONG> leave fields in the order that they are stored in the
416 <EM>terminfo</EM> database.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530417
418 <STRONG>i</STRONG> sort by <EM>terminfo</EM> name.
419
420 <STRONG>l</STRONG> sort by the long C variable name.
421
422 <STRONG>c</STRONG> sort by the <EM>termcap</EM> name.
423
micky3879b9f5e72025-07-08 18:04:53 -0400424 If the <STRONG>-s</STRONG> option is not given, the fields printed out will be
425 sorted alphabetically by the <STRONG>terminfo</STRONG> name within each type,
426 except in the case of the <STRONG>-C</STRONG> or the <STRONG>-L</STRONG> options, which cause the
427 sorting to be done by the <STRONG>termcap</STRONG> name or the long C variable
428 name, respectively.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530429
micky3879b9f5e72025-07-08 18:04:53 -0400430 <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. This is
431 mainly useful for testing and analysis, since the compiled
432 descriptions are limited (e.g., 1023 for termcap, 4096 for
433 terminfo).
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530434
micky3879b9f5e72025-07-08 18:04:53 -0400435 <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities. Normally when
436 translating from terminfo to termcap, untranslatable capabilities
437 are commented-out.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530438
micky3879b9f5e72025-07-08 18:04:53 -0400439 <STRONG>-U</STRONG> tells <STRONG>infocmp</STRONG> to not post-process the data after parsing the
440 source file. This feature helps when comparing the actual
441 contents of two source files, since it excludes the inferences
442 that <STRONG>infocmp</STRONG> makes to fill in missing data.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530443
micky3879b9f5e72025-07-08 18:04:53 -0400444 <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
445 exits.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530446
micky3879b9f5e72025-07-08 18:04:53 -0400447 <STRONG>-v</STRONG> <EM>n</EM> prints out tracing information on standard error as the program
448 runs.
449
450 The optional parameter <EM>n</EM> is a number from 1 to 10, inclusive,
451 indicating the desired level of detail of information. If <EM>ncurses</EM>
452 is built without tracing support, the optional parameter is
453 ignored.
454
455 <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings to be
456 wrapped. Use the <STRONG>-W</STRONG> option to do this.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530457
458 <STRONG>-w</STRONG> <EM>width</EM>
459 changes the output to <EM>width</EM> characters.
460
micky3879b9f5e72025-07-08 18:04:53 -0400461 <STRONG>-x</STRONG> print information for user-defined capabilities (see <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
462 These are extensions to the terminfo repertoire which can be
463 loaded using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530464
465
micky3879b9f5e72025-07-08 18:04:53 -0400466</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
467 <EM>/usr/share/terminfo</EM>
468 compiled terminal description database
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530469
470
micky3879b9f5e72025-07-08 18:04:53 -0400471</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
472 The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-Q</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
473 and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530474
micky3879b9f5e72025-07-08 18:04:53 -0400475 SVr4 infocmp does not distinguish between absent and cancelled
476 capabilities. Also, it shows missing integer capabilities as <STRONG>-1</STRONG> (the
477 internal value used to represent missing integers). This
478 implementation shows those as "NULL", for consistency with missing
479 strings.
480
481 The <STRONG>-r</STRONG> option's notion of "termcap" capabilities is System V Release
482 4's. Actual BSD curses versions will have a more restricted set. To
483 see only the 4.4BSD set, use <STRONG>-r</STRONG> <STRONG>-RBSD</STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530484
485
micky3879b9f5e72025-07-08 18:04:53 -0400486</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
487 X/Open Curses, Issue 7 (2009) provides a description of <STRONG>infocmp</STRONG>. It
488 does not mention the options used for converting to termcap format.
489
490
491</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
492 Although System V Release 2 provided a terminfo library, it had no
493 documented tool for decompiling the terminal descriptions. Tony Hansen
494 (AT&amp;T) wrote the first <STRONG>infocmp</STRONG> in early 1984, for System V Release 3.
495
496 Eric Raymond used the AT&amp;T documentation in 1995 to provide an
497 equivalent <STRONG>infocmp</STRONG> for <EM>ncurses</EM>. In addition, he added a few new
498 features such as:
499
500 <STRONG>o</STRONG> the <STRONG>-e</STRONG> option, to support <EM>fallback</EM> (compiled-in) terminal
501 descriptions
502
503 <STRONG>o</STRONG> the <STRONG>-i</STRONG> option, to help with analysis
504
505 Later, Thomas Dickey added the <STRONG>-x</STRONG> (user-defined capabilities) option,
506 and the <STRONG>-E</STRONG> option to support fallback entries with user-defined
507 capabilities.
508
509 For a complete list, see the <EM>EXTENSIONS</EM> section.
510
511 In 2010, Roy Marples provided an <STRONG>infocmp</STRONG> program for NetBSD. It is
512 less capable than the SVr4 or <EM>ncurses</EM> versions (e.g., it lacks the
513 sorting options documented in X/Open), but does include the <STRONG>-x</STRONG> option
514 adapted from <EM>ncurses</EM>.
515
516
517</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530518 The <STRONG>-F</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> should be a <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> mode.
519
520
micky3879b9f5e72025-07-08 18:04:53 -0400521</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530522 Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
523 Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
524
525
micky3879b9f5e72025-07-08 18:04:53 -0400526</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
527 <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
528 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530529
micky3879b9f5e72025-07-08 18:04:53 -0400530 https://invisible-island.net/ncurses/tctest.html
531
532
533
534ncurses 6.5 2024-03-16 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530535</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100536<div class="nav">
537<ul>
538<li><a href="#h2-NAME">NAME</a></li>
539<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
540<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
541<ul>
542<li><a href="#h3-Default-Options">Default Options</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400543<li><a href="#h3-Comparison-Options_d_c_n_">Comparison Options [-d] [-c] [-n]</a></li>
544<li><a href="#h3-Source-Listing-Options_I_L_C_r_">Source Listing Options [-I] [-L] [-C] [-r]</a></li>
545<li><a href="#h3-Use_Option_u_">Use= Option [-u]</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100546<li><a href="#h3-Other-Options">Other Options</a></li>
547</ul>
548</li>
549<li><a href="#h2-FILES">FILES</a></li>
550<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400551<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
552<li><a href="#h2-HISTORY">HISTORY</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100553<li><a href="#h2-BUGS">BUGS</a></li>
micky3879b9f5e72025-07-08 18:04:53 -0400554<li><a href="#h2-AUTHORS">AUTHORS</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100555<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
Steve Kondikae271bc2015-11-15 02:50:53 +0100556</ul>
557</div>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530558</BODY>
559</HTML>