]> ncurses.scripts.mit.edu Git - ncurses.git/blob - man/infocmp.1m
ncurses 6.1 - patch 20190831
[ncurses.git] / man / infocmp.1m
1 '\" t
2 .\"***************************************************************************
3 .\" Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
4 .\"                                                                          *
5 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
6 .\" copy of this software and associated documentation files (the            *
7 .\" "Software"), to deal in the Software without restriction, including      *
8 .\" without limitation the rights to use, copy, modify, merge, publish,      *
9 .\" distribute, distribute with modifications, sublicense, and/or sell       *
10 .\" copies of the Software, and to permit persons to whom the Software is    *
11 .\" furnished to do so, subject to the following conditions:                 *
12 .\"                                                                          *
13 .\" The above copyright notice and this permission notice shall be included  *
14 .\" in all copies or substantial portions of the Software.                   *
15 .\"                                                                          *
16 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19 .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20 .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21 .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22 .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 .\"                                                                          *
24 .\" Except as contained in this notice, the name(s) of the above copyright   *
25 .\" holders shall not be used in advertising or otherwise to promote the     *
26 .\" sale, use or other dealings in this Software without prior written       *
27 .\" authorization.                                                           *
28 .\"***************************************************************************
29 .\"
30 .\" $Id: infocmp.1m,v 1.75 2019/07/20 18:42:11 tom Exp $
31 .TH @INFOCMP@ 1M ""
32 .ie \n(.g .ds `` \(lq
33 .el       .ds `` ``
34 .ie \n(.g .ds '' \(rq
35 .el       .ds '' ''
36 .ds n 5
37 .de bP
38 .ie n  .IP \(bu 4
39 .el    .IP \(bu 2
40 ..
41 .de NS
42 .ie n  .sp
43 .el    .sp .5
44 .ie n  .in +4
45 .el    .in +2
46 .nf
47 .ft C                   \" Courier
48 ..
49 .de NE
50 .fi
51 .ft R
52 .ie n  .in -4
53 .el    .in -2
54 ..
55 .ds d @TERMINFO@
56 .SH NAME
57 \fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions
58 .SH SYNOPSIS
59 \fB@INFOCMP@\fR [\fB\-\
60 1\
61 C\
62 D\
63 E\
64 F\
65 G\
66 I\
67 K\
68 L\
69 T\
70 U\
71 V\
72 W\
73 c\
74 d\
75 e\
76 g\
77 i\
78 l\
79 n\
80 p\
81 q\
82 r\
83 t\
84 u\
85 x\
86 \fR]
87 .br
88       [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-Q\fR \fIn\fR] [\fB\-R \fR\fBsubset\fR]
89 .br
90       [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR]
91 .br
92       [\fItermname\fR...]
93 .SH DESCRIPTION
94 \fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
95 terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
96 \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
97 binary file (\fBterm\fR) in a variety of formats.
98 In all cases, the boolean
99 fields will be printed first, followed by the numeric fields, followed by the
100 string fields.
101 .SS Default Options
102 If no options are specified and zero or one \fItermnames\fR are specified, the
103 \fB\-I\fR option will be assumed.
104 If more than one \fItermname\fR is specified,
105 the \fB\-d\fR option will be assumed.
106 .SS Comparison Options [\-d] [\-c] [\-n]
107 \fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
108 \fItermname\fR with each of the descriptions given by the entries for the other
109 terminal's \fItermnames\fR.
110 If a capability is defined for only one of the
111 terminals, the value returned depends on the type of the capability:
112 .bP
113 \fBF\fR for missing boolean variables
114 .bP
115 \fBNULL\fR for missing integer or string variables
116 .PP
117 Use the \fB\-q\fP option to show the distinction between
118 \fIabsent\fP and \fIcancelled\fP capabilities.
119 .PP
120 These options produce a list which you can use to compare two
121 or more terminal descriptions:
122 .TP 5
123 \fB\-d\fR
124 produces a list of each capability that is \fIdifferent\fP
125 between two entries.
126 Each item in the list shows \*(``:\*('' after the capability name,
127 followed by the capability values, separated by a comma.
128 .TP
129 \fB\-c\fR
130 produces a list of each capability that is \fIcommon\fP between
131 two or more entries.
132 Missing capabilities are ignored.
133 Each item in the list shows \*(``=\*('' after the capability name,
134 followed by the capability value.
135 .IP
136 The \fB\-u\fR option provides a related output,
137 showing the first terminal description rewritten to use the second
138 as a building block via the \*(``use=\*('' clause.
139 .TP
140 \fB\-n\fR
141 produces a list of each capability that is in \fInone\fP of the given entries.
142 Each item in the list shows \*(``!\*('' before the capability name.
143 .IP
144 Normally only the conventional capabilities are shown.
145 Use the \fB\-x\fP option to add the BSD-compatibility
146 capabilities (names prefixed with \*(``OT\*('').
147 .IP
148 If no \fItermnames\fR are given,
149 \fB@INFOCMP@\fR uses the environment variable \fBTERM\fR
150 for each of the \fItermnames\fR.
151 .SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
152 The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce
153 a source listing for each terminal named.
154 .
155 .TS
156 center tab(/) ;
157 l l .
158 \fB\-I\fR/use the \fBterminfo\fR names
159 \fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
160 \fB\-C\fR/use the \fBtermcap\fR names
161 \fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
162 \fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility.
163 .TE
164 .PP
165 If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
166 used for the terminal name.
167 .PP
168 The source produced by the \fB\-C\fR option may be used directly as a
169 \fBtermcap\fR entry, but not all parameterized strings can be changed to
170 the \fBtermcap\fR format.
171 \fB@INFOCMP@\fR will attempt to convert most of the
172 parameterized information, and anything not converted will be plainly marked in
173 the output and commented out.
174 These should be edited by hand.
175 .PP
176 For best results when converting to \fBtermcap\fP format,
177 you should use both \fB\-C\fP and \fB\-r\fP.
178 Normally a termcap description is limited to 1023 bytes.
179 \fB@INFOCMP@\fP trims away less essential parts to make it fit.
180 If you are converting to one of the (rare) termcap implementations
181 which accept an unlimited size of termcap,
182 you may want to add the \fB\-T\fP option.
183 More often however, you must help the termcap implementation,
184 and trim excess whitespace (use the \fB\-0\fP option for that).
185 .PP
186 All padding information for strings will be collected together and placed
187 at the beginning of the string where \fBtermcap\fR expects it.
188 Mandatory
189 padding (padding information with a trailing \*(``/\*('') will become optional.
190 .PP
191 All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
192 are derivable from other \fBterminfo\fR variables, will be output.
193 Not all
194 \fBterminfo\fR capabilities will be translated; only those variables which were
195 part of \fBtermcap\fR will normally be output.
196 Specifying the \fB\-r\fR option
197 will take off this restriction, allowing all capabilities to be output in
198 \fItermcap\fR form.
199 Normally you would use both the \fB\-C\fP and \fB\-r\fP options.
200 The actual format used incorporates some improvements for escaped characters
201 from terminfo format.
202 For a stricter BSD-compatible translation, use the \fB\-K\fR option
203 rather than \fB\-C\fP.
204 .PP
205 Note that because padding is collected to the beginning of the capability, not
206 all capabilities are output.
207 Mandatory padding is not supported.
208 Because
209 \fBtermcap\fR strings are not as flexible, it is not always possible to convert
210 a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format.
211 A subsequent conversion of the \fBtermcap\fR file
212 back into \fBterminfo\fR format
213 will not necessarily reproduce the original \fBterminfo\fR source.
214 .PP
215 Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
216 equivalents, and some terminal types which commonly have such sequences, are:
217 .
218 .TS
219 center tab(/) ;
220 l c l
221 l l l.
222 \fBterminfo/termcap\fR/Representative Terminals
223 =
224 \fB%p1%c/%.\fR/adm
225 \fB%p1%d/%d\fR/hp, ANSI standard, vt100
226 \fB%p1%'x'%+%c/%+x\fR/concept
227 \fB%i/%i\fRq/ANSI standard, vt100
228 \fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
229 \fB%p2\fR is printed before \fB%p1/%r\fR/hp
230 .TE
231 .SS Use= Option [\-u]
232 The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
233 terminal \fItermname\fR which is relative to the sum of the descriptions given
234 by the entries for the other terminals \fItermnames\fR.
235 It does this by
236 analyzing the differences between the first \fItermname\fR and the other
237 \fItermnames\fR and producing a description with \fBuse=\fR fields for the
238 other terminals.
239 In this manner, it is possible to retrofit generic terminfo
240 entries into a terminal's description.
241 Or, if two similar terminals exist, but
242 were coded at different times or by different people so that each description
243 is a full description, using \fB@INFOCMP@\fR
244 will show what can be done to change
245 one description to be relative to the other.
246 .PP
247 A capability will get printed with an at-sign (@) if it no longer exists in the
248 first \fItermname\fR, but one of the other \fItermname\fR entries contains a
249 value for it.
250 A capability's value gets printed if the value in the first
251 \fItermname\fR is not found in any of the other \fItermname\fR entries, or if
252 the first of the other \fItermname\fR entries that has this capability gives a
253 different value for the capability than that in the first \fItermname\fR.
254 .PP
255 The order of the other \fItermname\fR entries is significant.
256 Since the
257 terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities,
258 specifying two \fBuse=\fR entries that contain differing entries for the same
259 capabilities will produce different results depending on the order that the
260 entries are given in.
261 \fB@INFOCMP@\fR will flag any such inconsistencies between
262 the other \fItermname\fR entries as they are found.
263 .PP
264 Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
265 contains that capability will cause the second specification to be ignored.
266 Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
267 sure that everything was specified correctly in the original source
268 description.
269 .PP
270 Another error that does not cause incorrect compiled files, but will slow down
271 the compilation time, is specifying extra \fBuse=\fR fields that are
272 superfluous.
273 \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
274 were not needed.
275 .SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
276 Like other \fBncurses\fP utilities,
277 \fB@INFOCMP@\fP looks for the terminal descriptions in several places.
278 You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables
279 to override the compiled-in default list of places to search
280 (see \fBcurses\fP(3X) for details).
281 .PP
282 You can also use the options \fB\-A\fR
283 and \fB\-B\fR to override the list of places to search
284 when comparing terminal descriptions:
285 .bP
286 The \fB\-A\fR option sets the location for the first \fItermname\fR
287 .bP
288 The \fB\-B\fR option sets the location for the other \fItermnames\fR.
289 .PP
290 Using these options, it is possible to
291 compare descriptions for a terminal with the same name located in two different
292 databases.
293 For instance,
294 you can use this feature for comparing descriptions for the same terminal
295 created by different people.
296 .SS Other Options
297 .TP 5
298 \fB\-0\fR
299 causes the fields to be printed on one line, without wrapping.
300 .TP 5
301 \fB\-1\fR
302 causes the fields to be printed out one to a line.
303 Otherwise,
304 the fields will be printed several to a line to a maximum width
305 of 60 characters.
306 .TP
307 \fB\-a\fR
308 tells \fB@INFOCMP@\fP to retain commented-out capabilities
309 rather than discarding them.
310 Capabilities are commented by prefixing them with a period.
311 .TP
312 \fB\-D\fR
313 tells \fB@INFOCMP@\fP to print the database locations that it knows about,
314 and exit.
315 .TP 5
316 \fB\-E\fR
317 Dump the capabilities of the given terminal as tables, needed in
318 the C initializer for a
319 TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
320 This option is useful for preparing versions of the curses library hardwired
321 for a given terminal type.
322 The tables are all declared static, and are named according to the type
323 and the name of the corresponding terminal entry.
324 .sp
325 Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
326 options was not needed; but support for extended names required making
327 the arrays of terminal capabilities separate from the TERMTYPE structure.
328 .TP 5
329 \fB\-e\fR
330 Dump the capabilities of the given terminal as a C initializer for a
331 TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
332 This option is useful for preparing versions of the curses library hardwired
333 for a given terminal type.
334 .TP 5
335 \fB\-F\fR
336 compare terminfo files.
337 This assumes that two following arguments are filenames.
338 The files are searched for pairwise matches between
339 entries, with two entries considered to match if any of their names do.
340 The report printed to standard output lists entries with no matches in
341 the other file, and entries with more than one match.
342 For entries
343 with exactly one match it includes a difference report.
344 Normally,
345 to reduce the volume of the report, use references are
346 not resolved before looking for differences, but resolution can be forced
347 by also specifying \fB\-r\fR.
348 .TP 5
349 \fB\-f\fR
350 Display complex terminfo strings which contain if/then/else/endif expressions
351 indented for readability.
352 .TP 5
353 \fB\-G\fR
354 Display constant literals in decimal form
355 rather than their character equivalents.
356 .TP 5
357 \fB\-g\fR
358 Display constant character literals in quoted form
359 rather than their decimal equivalents.
360 .TP 5
361 \fB\-i\fR
362 Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
363 (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry,
364 as well as those used for starting/stopping cursor-positioning mode
365 (\fBsmcup\fP, \fBrmcup\fP) as well as starting/stopping keymap mode
366 (\fBsmkx\fP, \fBrmkx\fP).
367 .IP
368 For each string, the
369 code tries to analyze it into actions in terms of the other capabilities in the
370 entry, certain X3.64/ISO 6429/ECMA\-48 capabilities, and certain DEC VT-series
371 private modes (the set of recognized special sequences has been selected for
372 completeness over the existing terminfo database).
373 Each report line consists
374 of the capability name, followed by a colon and space, followed by a printable
375 expansion of the capability string with sections matching recognized actions
376 translated into {}-bracketed descriptions.
377 .IP
378 Here is a list of the DEC/ANSI
379 special sequences recognized:
380 .TS
381 center tab(/) ;
382 l l
383 l l.
384 Action/Meaning
385 =
386 RIS/full reset
387 SC/save cursor
388 RC/restore cursor
389 LL/home-down
390 RSR/reset scroll region
391 =
392 DECSTR/soft reset (VT320)
393 S7C1T/7-bit controls (VT220)
394 =
395 ISO DEC G0/enable DEC graphics for G0
396 ISO UK G0/enable UK chars for G0
397 ISO US G0/enable US chars for G0
398 ISO DEC G1/enable DEC graphics for G1
399 ISO UK G1/enable UK chars for G1
400 ISO US G1/enable US chars for G1
401 =
402 DECPAM/application keypad mode
403 DECPNM/normal keypad mode
404 DECANSI/enter ANSI mode
405 =
406 ECMA[+\-]AM/keyboard action mode
407 ECMA[+\-]IRM/insert replace mode
408 ECMA[+\-]SRM/send receive mode
409 ECMA[+\-]LNM/linefeed mode
410 =
411 DEC[+\-]CKM/application cursor keys
412 DEC[+\-]ANM/set VT52 mode
413 DEC[+\-]COLM/132-column mode
414 DEC[+\-]SCLM/smooth scroll
415 DEC[+\-]SCNM/reverse video mode
416 DEC[+\-]OM/origin mode
417 DEC[+\-]AWM/wraparound mode
418 DEC[+\-]ARM/auto-repeat mode
419 .TE
420 .sp
421 It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
422 Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
423 REVERSE.
424 All but NORMAL may be prefixed with
425 .RS
426 .bP
427 \*(``+\*('' (turn on) or
428 .bP
429 \*(``\-\*('' (turn off).
430 .RE
431 .IP
432 An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
433 .TP 5
434 \fB\-l\fR
435 Set output format to terminfo.
436 .TP 5
437 \fB\-p\fR
438 Ignore padding specifications when comparing strings.
439 .TP 5
440 \fB\-Q\fR \fIn\fR
441 Rather than show source in terminfo (text) format,
442 print the compiled (binary) format in hexadecimal or base64 form,
443 depending on the option's value:
444 .RS 8
445 .TP 3
446 1
447 hexadecimal
448 .TP 3
449 2
450 base64
451 .TP 3
452 3
453 hexadecimal and base64
454 .RE
455 .IP
456 For example, this prints the compiled terminfo value as a string
457 which could be assigned to the \fBTERMINFO\fP environment variable:
458 .NS
459 @INFOCMP@ -0 -q -Q2
460 .NE
461 .TP 5
462 \fB\-q\fR
463 This makes the output a little shorter:
464 .RS
465 .bP
466 Make the comparison listing shorter by omitting subheadings, and using
467 \*(``\-\*('' for absent capabilities, \*(``@\*(''
468 for canceled rather than \*(``NULL\*(''.
469 .bP
470 However, show differences between absent and cancelled capabilities.
471 .bP
472 Omit the \*(``Reconstructed from\*('' comment for source listings.
473 .RE
474 .TP 5
475 \fB\-R\fR\fIsubset\fR
476 Restrict output to a given subset.
477 This option is for use with archaic
478 versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
479 the full set of SVR4/XSI Curses terminfo; and variants such as AIX
480 that have their own extensions incompatible with SVr4/XSI.
481 .RS
482 .bP
483 Available terminfo
484 subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*('';
485 see \fBterminfo\fR(\*n) for details.
486 .bP
487 You can also choose the subset \*(``BSD\*('' which selects only capabilities
488 with termcap equivalents recognized by 4.4BSD.
489 The \fB\-C\fP option sets the \*(``BSD\*('' subset as a side-effect.
490 .bP
491 If you select any other value for \fB\-R\fP,
492 it is the same as no subset, i.e., all capabilities are used.
493 The \fB\-I\fP option likewise selects no subset as a side-effect.
494 .RE
495 .TP
496 \fB\-s \fR\fI[d|i|l|c]\fR
497 The \fB\-s\fR option sorts the fields within each type according to the argument
498 below:
499 .br
500 .RS 5
501 .TP 5
502 \fBd\fR
503 leave fields in the order that they are stored in the \fIterminfo\fR database.
504 .TP 5
505 \fBi\fR
506 sort by \fIterminfo\fR name.
507 .TP 5
508 \fBl\fR
509 sort by the long C variable name.
510 .TP 5
511 \fBc\fR
512 sort by the \fItermcap\fR name.
513 .RE
514 .IP
515 If the \fB\-s\fR option is not given, the fields printed out will be
516 sorted alphabetically by the \fBterminfo\fR name within each type,
517 except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the
518 sorting to be done by the \fBtermcap\fR name or the long C variable
519 name, respectively.
520 .TP 5
521 \fB\-T\fR
522 eliminates size-restrictions on the generated text.
523 This is mainly useful for testing and analysis, since the compiled
524 descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
525 .TP
526 \fB\-t\fR
527 tells \fB@TIC@\fP to discard commented-out capabilities.
528 Normally when translating from terminfo to termcap,
529 untranslatable capabilities are commented-out.
530 .TP 5
531 \fB\-U\fR
532 tells \fB@INFOCMP@\fP to not post-process the data
533 after parsing the source file.
534 This feature helps when comparing the actual contents of two source files,
535 since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
536 data.
537 .TP 5
538 \fB\-V\fR
539 reports the version of ncurses which was used in this program, and exits.
540 .TP 5
541 \fB\-v\fR \fIn\fR
542 prints out tracing information on standard error as the program runs.
543 .IP
544 The optional parameter \fIn\fR is a number from 1 to 10, inclusive,
545 indicating the desired level of detail of information.
546 If ncurses is built without tracing support, the optional parameter is ignored.
547 .TP
548 \fB\-W\fR
549 By itself, the \fB\-w\fP option will not force long strings to be wrapped.
550 Use the \fB\-W\fP option to do this.
551 .TP 5
552 \fB\-w\fR \fIwidth\fR
553 changes the output to \fIwidth\fR characters.
554 .TP
555 \fB\-x\fR
556 print information for user-defined capabilities (see \fBuser_caps(\*n)\fP.
557 These are extensions to the terminfo repertoire which can be loaded
558 using the \fB\-x\fR option of \fB@TIC@\fP.
559 .SH FILES
560 .TP 20
561 \*d
562 Compiled terminal description database.
563 .SH HISTORY
564 Although System V Release 2 provided a terminfo library,
565 it had no documented tool for decompiling the terminal descriptions.
566 Tony Hansen (AT&T) wrote the first \fBinfocmp\fP in early 1984,
567 for System V Release 3.
568 .PP
569 Eric Raymond used the AT&T documentation in 1995 to provide an equivalent
570 \fB@INFOCMP@\fP for ncurses.
571 In addition, he added a few new features such as:
572 .bP
573 the \fB\-e\fP option, to support \fIfallback\fP
574 (compiled-in) terminal descriptions
575 .bP
576 the \fB\-i\fP option, to help with analysis 
577 .PP
578 Later, Thomas Dickey added the \fB\-x\fP (user-defined capabilities)
579 option, and the \fB\-E\fP option to support fallback entries with
580 user-defined capabilities.
581 .PP
582 For a complete list, see the \fIEXTENSIONS\fP section.
583 .PP
584 In 2010, Roy Marples provided an \fBinfocmp\fP program for NetBSD.
585 It is less capable than the SVr4 or ncurses versions
586 (e.g., it lacks the sorting options documented in X/Open),
587 but does include the \fB\-x\fP option adapted from ncurses.
588 .SH PORTABILITY
589 X/Open Curses, Issue 7 (2009) provides a description of \fBinfocmp\fP.
590 It does not mention the options used for converting to termcap format.
591 .SH EXTENSIONS
592 The
593 \fB\-0\fR,
594 \fB\-1\fR,
595 \fB\-E\fR,
596 \fB\-F\fR,
597 \fB\-G\fR,
598 \fB\-Q\fR,
599 \fB\-R\fR,
600 \fB\-T\fR,
601 \fB\-V\fR,
602 \fB\-a\fR,
603 \fB\-e\fR,
604 \fB\-f\fR,
605 \fB\-g\fR,
606 \fB\-i\fR,
607 \fB\-l\fR,
608 \fB\-p\fR,
609 \fB\-q\fR and
610 \fB\-t\fR
611 options are not supported in SVr4 curses.
612 .PP
613 SVr4 infocmp does not distinguish between absent and cancelled capabilities.
614 Also, it shows missing integer capabilities as \fB\-1\fP
615 (the internal value used to represent missing integers).
616 This implementation shows those as \*(``NULL\*('',
617 for consistency with missing strings.
618 .PP
619 The \fB\-r\fR option's notion of \*(``termcap\*('' capabilities
620 is System V Release 4's.
621 Actual BSD curses versions will have a more restricted set.
622 To see only the
623 4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
624 .SH BUGS
625 The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
626 .SH SEE ALSO
627 \fB@CAPTOINFO@\fR(1M),
628 \fB@INFOTOCAP@\fR(1M),
629 \fB@TIC@\fR(1M),
630 \fB@TOE@\fR(1M),
631 \fBcurses\fR(3X),
632 \fBterminfo\fR(\*n).
633 \fBuser_caps\fR(\*n).
634 .sp
635 https://invisible-island.net/ncurses/tctest.html
636 .PP
637 This describes \fBncurses\fR
638 version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
639 .SH AUTHOR
640 Eric S. Raymond <esr@snark.thyrsus.com>
641 and
642 .br
643 Thomas E. Dickey <dickey@invisible-island.net>