X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Finfocmp.1m;h=2b5d98e3b62fd05f01cc36841f9e9f5db0d3be95;hp=34efbf63445407b61cbfa5bfe45a2f781d65f8cf;hb=HEAD;hpb=d66080c21038ad4feb2e41a0c4e517d5b4a03ab2 diff --git a/man/infocmp.1m b/man/infocmp.1m index 34efbf63..661a0861 100644 --- a/man/infocmp.1m +++ b/man/infocmp.1m @@ -1,6 +1,7 @@ '\" t .\"*************************************************************************** -.\" Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * +.\" Copyright 2018-2023,2024 Thomas E. Dickey * +.\" Copyright 1998-2017,2018 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * @@ -27,91 +28,87 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: infocmp.1m,v 1.70 2018/01/23 10:10:17 tom Exp $ -.TH @INFOCMP@ 1M "" -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' -.ds n 5 +.\" $Id: infocmp.1m,v 1.110 2024/05/11 20:39:53 tom Exp $ +.TH @INFOCMP@ 1M 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" +.ie \n(.g \{\ +.ds `` \(lq +.ds '' \(rq +.ds ' \(aq +.\} +.el \{\ +.ie t .ds `` `` +.el .ds `` "" +.ie t .ds '' '' +.el .ds '' "" +.ie t .ds ' \(aq +.el .ds ' ' +.\} +. .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 C \" Courier -.. -.de NE -.fi -.ft R -.in -4 -.. -.ds d @TERMINFO@ +. .SH NAME -\fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions +\fB@INFOCMP@\fP \- +compare or print out \fIterminfo\fP descriptions .SH SYNOPSIS -\fB@INFOCMP@\fR [\fB\-\ +\fB@INFOCMP@\fP [\fB\-\ 1\ +c\ C\ +d\ D\ +e\ E\ F\ +g\ G\ +i\ I\ K\ -L\ -T\ -U\ -V\ -W\ -c\ -d\ -e\ -g\ -i\ l\ +L\ n\ p\ q\ r\ t\ +T\ u\ +U\ +V\ +W\ x\ -\fR] -.br - [\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] -.br - [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR] -.br - [\fItermname\fR...] +\fP] + [\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\-w\fP\ \fIwidth\fP] [\fB\-A\fP\ \fIdirectory\fP] [\fB\-B\fP\ \fIdirectory\fP] + [\fIterminal-type\fP ...] .SH DESCRIPTION -\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other -terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the -\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the -binary file (\fBterm\fR) in a variety of formats. -In all cases, the boolean +\fB@INFOCMP@\fP can be used to compare a binary \fBterminfo\fP entry with other +terminfo entries, rewrite a \fBterminfo\fP description to take advantage of the +\fBuse=\fP terminfo field, or print out a \fBterminfo\fP description from the +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 string fields. -.SS Default Options -If no options are specified and zero or one \fItermnames\fR are specified, the -\fB\-I\fR option will be assumed. -If more than one \fItermname\fR is specified, -the \fB\-d\fR option will be assumed. -.SS Comparison Options [\-d] [\-c] [\-n] -\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal -\fItermname\fR with each of the descriptions given by the entries for the other -terminal's \fItermnames\fR. +.SS "Default Options" +If no options are specified and zero or one \fIterminal-types\fP are +specified, +the +\fB\-I\fP option will be assumed. +If more than one \fIterminal-type\fP is specified, +the \fB\-d\fP option will be assumed. +.SS "Comparison Options [\-d] [\-c] [\-n]" +\fB@INFOCMP@\fP compares the \fBterminfo\fP description of the first terminal +\fIterminal-type\fP with each of the descriptions given by the entries +for the other terminal's \fIterminal-types\fP. If a capability is defined for only one of the terminals, the value returned depends on the type of the capability: .bP -\fBF\fR for missing boolean variables +\fBF\fP for missing Boolean variables .bP -\fBNULL\fR for missing integer or string variables +\fBNULL\fP for missing integer or string variables .PP Use the \fB\-q\fP option to show the distinction between \fIabsent\fP and \fIcancelled\fP capabilities. @@ -119,24 +116,24 @@ Use the \fB\-q\fP option to show the distinction between These options produce a list which you can use to compare two or more terminal descriptions: .TP 5 -\fB\-d\fR +\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\fR +\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\fR option provides a related output, +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. +as a building block via the \*(``use=\*('' clause. .TP -\fB\-n\fR +\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 @@ -144,30 +141,30 @@ 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\fR are given, -\fB@INFOCMP@\fR uses the environment variable \fBTERM\fR -for each of the \fItermnames\fR. -.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. -. +If no \fIterminal-types\fP are given, +\fB@INFOCMP@\fP uses the environment variable \fITERM\fP +for each of the \fIterminal-types\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 .TS -center tab(/) ; -l l . -\fB\-I\fR/use the \fBterminfo\fR names -\fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR> -\fB\-C\fR/use the \fBtermcap\fR names -\fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form -\fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility. +center; +Lb L. +\-I use \fIterminfo\fP capability codes +\-L use \*(``long\*('' capability names +\-C use \fItermcap\fP capability codes +\-r with \fB\-C\fP, include nonstandard capabilities +\-K with \fB\-C\fP, improve BSD compatibility .TE .PP -If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be -used for the terminal name. +If no \fIterminal-types\fP are given, +the environment variable \fITERM\fP will be used for the terminal name. .PP -The source produced by the \fB\-C\fR option may be used directly as a -\fBtermcap\fR entry, but not all parameterized strings can be changed to -the \fBtermcap\fR format. -\fB@INFOCMP@\fR will attempt to convert most of the +The source produced by the \fB\-C\fP option may be used directly as a +\fBtermcap\fP entry, but not all parameterized strings can be changed to +the \fBtermcap\fP format. +\fB@INFOCMP@\fP will attempt to convert most of the parameterized information, and anything not converted will be plainly marked in the output and commented out. These should be edited by hand. @@ -183,107 +180,119 @@ 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 -at the beginning of the string where \fBtermcap\fR expects it. +at the beginning of the string where \fBtermcap\fP expects it. Mandatory padding (padding information with a trailing \*(``/\*('') will become optional. .PP -All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which -are derivable from other \fBterminfo\fR variables, will be output. +All \fBtermcap\fP variables no longer supported by \fBterminfo\fP, but which +are derivable from other \fBterminfo\fP variables, will be output. Not all -\fBterminfo\fR capabilities will be translated; only those variables which were -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 -\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\fR option +For a stricter BSD-compatible translation, use the \fB\-K\fP option rather than \fB\-C\fP. .PP Note that because padding is collected to the beginning of the capability, not all capabilities are output. Mandatory padding is not supported. Because -\fBtermcap\fR strings are not as flexible, it is not always possible to convert -a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. -A subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format -will not necessarily reproduce the original \fBterminfo\fR -source. +\fBtermcap\fP strings are not as flexible, it is not always possible to convert +a \fBterminfo\fP string capability into an equivalent \fBtermcap\fP format. +A subsequent conversion of the \fBtermcap\fP file +back into \fBterminfo\fP format +will not necessarily reproduce the original \fBterminfo\fP source. .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: -. +.PP .TS -center tab(/) ; -l c l -l l l. -\fBterminfo/termcap\fR/Representative Terminals -= -\fB%p1%c/%.\fR/adm -\fB%p1%d/%d\fR/hp, ANSI standard, vt100 -\fB%p1%'x'%+%c/%+x\fR/concept -\fB%i/%i\fRq/ANSI standard, vt100 -\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept -\fB%p2\fR is printed before \fB%p1/%r\fR/hp +center; +Lf(BI) Lf(BI) L +Lb Lb L. +terminfo termcap Terminal Types +_ +.\" ansi-m cup (adm3a has other stuff in between, more like concept) +%p1%c %. ansi\-m +.\" ansi cub, vt100 cub +%p1%d %d ansi, vt100 +.\" vt52 cup (via vt52-basic) +%p1%\*' \*'%+%c %+x vt52 +.\" ansi cup, vt100 cup +%i %iq ansi, vt100 +.\" annarbor4080 cup +%p1%?%\*'x\*'%>%t%p1%\*'y\*'%+%; %>xy annarbor4080 +.\" hpgeneric cup +%p2\fR\|.\|.\|.\|\fP%p1 %r hpgeneric .TE -.SS Use= Option [\-u] -The \fB\-u\fR option produces a \fBterminfo\fR source description of the first -terminal \fItermname\fR which is relative to the sum of the descriptions given -by the entries for the other terminals \fItermnames\fR. +.SS "Use= Option [\-u]" +The \fB\-u\fP option produces a \fBterminfo\fP source description of the first +terminal \fIterminal-type\fP which is relative to the sum of the +descriptions given by the entries for the other \fIterminal-types\fP. It does this by -analyzing the differences between the first \fItermname\fR and the other -\fItermnames\fR and producing a description with \fBuse=\fR fields for the -other terminals. +analyzing the differences between the first \fIterminal-types\fP and the +other \fIterminal-types\fP and producing a description with \fBuse=\fP +fields for the other terminals. In this manner, it is possible to retrofit generic terminfo entries into a terminal's description. Or, if two similar terminals exist, but were coded at different times or by different people so that each description -is a full description, using \fB@INFOCMP@\fR will show what can be done to change +is a full description, using \fB@INFOCMP@\fP +will show what can be done to change one description to be relative to the other. .PP -A capability will get 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 -value for it. -A capability's value gets printed if the value in the first -\fItermname\fR is not found in any of the other \fItermname\fR entries, or if -the first of the other \fItermname\fR entries that has this capability gives a -different value for the capability than that in the first \fItermname\fR. +A capability will be printed with an at-sign (@) if it no longer exists in the +first \fIterminal-type\fP, +but one of the other \fIterminal-type\fP entries contains a value for +it. +A capability's value will be printed if the value in the first +\fIterminal-type\fP is not found in any of the other \fIterminal-type\fP +entries, +or if the first of the other \fIterminal-type\fP entries that has this +capability gives a different value for the capability than that in the +first \fIterminal-type\fP. .PP -The order of the other \fItermname\fR entries is significant. +The order of the other \fIterminal-type\fP entries is significant. Since the -terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities, -specifying two \fBuse=\fR entries that contain differing entries for the same +terminfo compiler \fB@TIC@\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 entries are given in. -\fB@INFOCMP@\fR will flag any such inconsistencies between -the other \fItermname\fR entries as they are found. +\fB@INFOCMP@\fP will flag any such inconsistencies between +the other \fIterminal-type\fP entries as they are found. .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. -Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make +Using \fB@INFOCMP@\fP to recreate a description can be a useful check to make sure that everything was specified correctly in the original source description. .PP 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. -\fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that +\fB@INFOCMP@\fP will flag any other \fIterminal-type use=\fP fields that were not needed. -.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR] -Like other \fBncurses\fP utilities, +.SS "Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]" +Like other \fI\%ncurses\fP utilities, \fB@INFOCMP@\fP looks for the terminal descriptions in several places. -You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables -to override the compiled-in default list of places to search -(see \fBcurses\fP(3X) for details). +You can use the \fI\%TERMINFO\fP and \fI\%TERMINFO_DIRS\fP environment +variables to override the compiled-in default list of places to search. +See \fBcurses\fP(3X), as well as +the \fIFetching Compiled Descriptions\fP section in \fBterminfo\fR(5). .PP -You can also use the options \fB\-A\fR -and \fB\-B\fR to override the list of places to search +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\fR option sets the location for the first \fItermname\fR +The \fB\-A\fP option sets the location for the first \fIterminal-type\fP .bP -The \fB\-B\fR option sets the location for the other \fItermnames\fR. +The \fB\-B\fP option sets the location for the other +\fIterminal-types\fP. .PP Using these options, it is possible to compare descriptions for a terminal with the same name located in two different @@ -291,45 +300,47 @@ databases. For instance, you can use this feature for comparing descriptions for the same terminal created by different people. -.SS Other Options +.SS "Other Options" .TP 5 -\fB\-0\fR +\fB\-0\fP causes the fields to be printed on one line, without wrapping. .TP 5 -\fB\-1\fR +\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 of 60 characters. .TP -\fB\-a\fR -tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding -them. +\fB\-a\fP +tells \fB@INFOCMP@\fP to retain commented-out capabilities +rather than discarding them. Capabilities are commented by prefixing them with a period. .TP -\fB\-D\fR -tells \fB@INFOCMP@\fP to print the database locations that it knows about, and exit. +\fB\-D\fP +tells \fB@INFOCMP@\fP to print the database locations that it knows about, +and exit. .TP 5 -\fB\-E\fR +\fB\-E\fP Dump the capabilities of the given terminal as tables, needed in the C initializer for a -TERMTYPE structure (the terminal capability structure in the \fB\fR). +TERMTYPE structure (the terminal capability structure in the \fB\fP). This option is useful for preparing versions of the curses library hardwired for a given terminal type. The tables are all declared static, and are named according to the type and the name of the corresponding terminal entry. .sp -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 -the arrays of terminal capabilities separate from the TERMTYPE structure. +Before \fI\%ncurses\fP 5.0, +the split between the \fB\-e\fP and \fB\-E\fP options was not needed; +but support for extended names required making the arrays of terminal +capabilities separate from the TERMTYPE structure. .TP 5 -\fB\-e\fR +\fB\-e\fP Dump the capabilities of the given terminal as a C initializer for a -TERMTYPE structure (the terminal capability structure in the \fB\fR). +TERMTYPE structure (the terminal capability structure in the \fB\fP). This option is useful for preparing versions of the curses library hardwired for a given terminal type. .TP 5 -\fB\-F\fR +\fB\-F\fP compare terminfo files. This assumes that two following arguments are filenames. The files are searched for pairwise matches between @@ -341,23 +352,23 @@ with exactly one match it includes a difference report. Normally, to reduce the volume of the report, use references are not resolved before looking for differences, but resolution can be forced -by also specifying \fB\-r\fR. +by also specifying \fB\-r\fP. .TP 5 -\fB\-f\fR +\fB\-f\fP Display complex terminfo strings which contain if/then/else/endif expressions indented for readability. .TP 5 -\fB\-G\fR +\fB\-G\fP Display constant literals in decimal form rather than their character equivalents. .TP 5 -\fB\-g\fR +\fB\-g\fP Display constant character literals in quoted form rather than their decimal equivalents. .TP 5 -\fB\-i\fR -Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset -(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry, +\fB\-i\fP +Analyze the initialization (\fBis1\fP, \fBis2\fP, \fBis3\fP), and reset +(\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). @@ -374,45 +385,45 @@ translated into {}-bracketed descriptions. .IP Here is a list of the DEC/ANSI special sequences recognized: +.PP .TS -center tab(/) ; -l l -l l. -Action/Meaning -= -RIS/full reset -SC/save cursor -RC/restore cursor -LL/home-down -RSR/reset scroll region -= -DECSTR/soft reset (VT320) -S7C1T/7-bit controls (VT220) -= -ISO DEC G0/enable DEC graphics for G0 -ISO UK G0/enable UK chars for G0 -ISO US G0/enable US chars for G0 -ISO DEC G1/enable DEC graphics for G1 -ISO UK G1/enable UK chars for G1 -ISO US G1/enable US chars for G1 -= -DECPAM/application keypad mode -DECPNM/normal keypad mode -DECANSI/enter ANSI mode -= -ECMA[+\-]AM/keyboard action mode -ECMA[+\-]IRM/insert replace mode -ECMA[+\-]SRM/send receive mode -ECMA[+\-]LNM/linefeed mode -= -DEC[+\-]CKM/application cursor keys -DEC[+\-]ANM/set VT52 mode -DEC[+\-]COLM/132-column mode -DEC[+\-]SCLM/smooth scroll -DEC[+\-]SCNM/reverse video mode -DEC[+\-]OM/origin mode -DEC[+\-]AWM/wraparound mode -DEC[+\-]ARM/auto-repeat mode +center; +L L. +Action Meaning +_ +RIS full reset +SC save cursor +RC restore cursor +LL home-down +RSR reset scroll region +_ +DECSTR soft reset (VT320) +S7C1T 7-bit controls (VT220) +_ +ISO DEC G0 enable DEC graphics for G0 +ISO UK G0 enable UK chars for G0 +ISO US G0 enable US chars for G0 +ISO DEC G1 enable DEC graphics for G1 +ISO UK G1 enable UK chars for G1 +ISO US G1 enable US chars for G1 +_ +DECPAM application keypad mode +DECPNM normal keypad mode +DECANSI enter ANSI mode +_ +ECMA[+\-]AM keyboard action mode +ECMA[+\-]IRM insert replace mode +ECMA[+\-]SRM send receive mode +ECMA[+\-]LNM linefeed mode +_ +DEC[+\-]CKM application cursor keys +DEC[+\-]ANM set VT52 mode +DEC[+\-]COLM 132-column mode +DEC[+\-]SCLM smooth scroll +DEC[+\-]SCNM reverse video mode +DEC[+\-]OM origin mode +DEC[+\-]AWM wraparound mode +DEC[+\-]ARM auto-repeat mode .TE .sp It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set @@ -428,13 +439,13 @@ All but NORMAL may be prefixed with .IP An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}). .TP 5 -\fB\-l\fR +\fB\-l\fP Set output format to terminfo. .TP 5 -\fB\-p\fR +\fB\-p\fP Ignore padding specifications when comparing strings. .TP 5 -\fB\-Q\fR \fIn\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: @@ -451,130 +462,149 @@ 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 +which could be assigned to the \fI\%TERMINFO\fP environment variable: +.PP +.RS 9 +.EX +@INFOCMP@ \-0 \-q \-Q2 +.EE +.RE .TP 5 -\fB\-q\fR +\fB\-q\fP This makes the output a little shorter: .RS .bP 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 -\fB\-R\fR\fIsubset\fR +\fB\-R\fIsubset\fR Restrict output to a given subset. This option is for use with archaic -versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support +versions of terminfo like those on SVr1, Ultrix, or HP-UX that do not support the full set of SVR4/XSI Curses terminfo; and variants such as AIX that have their own extensions incompatible with SVr4/XSI. .RS .bP Available terminfo -subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*(''; see \fBterminfo\fR(\*n) for -details. +subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*(''; +see \fBterminfo\fP(5) for details. .bP You can also choose the subset \*(``BSD\*('' which selects only capabilities with termcap equivalents recognized by 4.4BSD. -The \fB\-C\fP option sets the \*(``BSD\*('' subset as a side-effect. .bP If you select any other value for \fB\-R\fP, it is the same as no subset, i.e., all capabilities are used. -The \fB\-I\fP option likewise selects no subset as a side-effect. +.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 -\fB\-s \fR\fI[d|i|l|c]\fR -The \fB\-s\fR option sorts the fields within each type according to the argument +\fB\-s \fI[d|i|l|c]\fR +The \fB\-s\fP option sorts the fields within each type according to the argument below: .br .RS 5 .TP 5 -\fBd\fR -leave fields in the order that they are stored in the \fIterminfo\fR database. +\fBd\fP +leave fields in the order that they are stored in the \fIterminfo\fP database. .TP 5 -\fBi\fR -sort by \fIterminfo\fR name. +\fBi\fP +sort by \fIterminfo\fP name. .TP 5 -\fBl\fR +\fBl\fP sort by the long C variable name. .TP 5 -\fBc\fR -sort by the \fItermcap\fR name. +\fBc\fP +sort by the \fItermcap\fP name. .RE .IP -If the \fB\-s\fR option is not given, the fields printed out will be -sorted alphabetically by the \fBterminfo\fR name within each type, -except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the -sorting to be done by the \fBtermcap\fR name or the long C variable +If the \fB\-s\fP option is not given, the fields printed out will be +sorted alphabetically by the \fBterminfo\fP name within each type, +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\fP name or the long C variable name, respectively. .TP 5 -\fB\-T\fR +\fB\-T\fP eliminates size-restrictions on the generated text. This is mainly useful for testing and analysis, since the compiled descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). .TP -\fB\-t\fR +\fB\-t\fP tells \fB@TIC@\fP to discard commented-out capabilities. Normally when translating from terminfo to termcap, untranslatable capabilities are commented-out. .TP 5 -\fB\-U\fR -tells \fB@INFOCMP@\fP to not post-process the data after parsing the source file. +\fB\-U\fP +tells \fB@INFOCMP@\fP to not post-process the data +after parsing the source file. This feature helps when comparing the actual contents of two source files, since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing data. .TP 5 -\fB\-V\fR -reports the version of ncurses which was used in this program, and exits. +\fB\-V\fP +reports the version of \fI\%ncurses\fP which was used in this program, +and exits. .TP 5 -\fB\-v\fR \fIn\fR +\fB\-v\fP \fIn\fP prints out tracing information on standard error as the program runs. .IP -The optional parameter \fIn\fR is a number from 1 to 10, inclusive, +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. +If \fI\%ncurses\fP is built without tracing support, +the optional parameter is ignored. .TP -\fB\-W\fR +\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 -\fB\-w\fR \fIwidth\fR -changes the output to \fIwidth\fR characters. +\fB\-w\fP \fIwidth\fP +changes the output to \fIwidth\fP characters. .TP -\fB\-x\fR -print information for user-defined capabilities. +\fB\-x\fP +print information for user-defined capabilities (see \fBuser_caps\fP(5). These are extensions to the terminfo repertoire which can be loaded -using the \fB\-x\fR option of \fB@TIC@\fP. +using the \fB\-x\fP option of \fB@TIC@\fP. .SH FILES -.TP 20 -\*d -Compiled terminal description database. +.TP +.I @TERMINFO@ +compiled terminal description database .SH EXTENSIONS The -\fB\-0\fR, -\fB\-1\fR, -\fB\-E\fR, -\fB\-F\fR, -\fB\-G\fR, -\fB\-Q\fR, -\fB\-R\fR, -\fB\-T\fR, -\fB\-V\fR, -\fB\-a\fR, -\fB\-e\fR, -\fB\-f\fR, -\fB\-g\fR, -\fB\-i\fR, -\fB\-l\fR, -\fB\-p\fR, -\fB\-q\fR and -\fB\-t\fR +\fB\-0\fP, +\fB\-1\fP, +\fB\-E\fP, +\fB\-F\fP, +\fB\-G\fP, +\fB\-Q\fP, +\fB\-R\fP, +\fB\-T\fP, +\fB\-V\fP, +\fB\-a\fP, +\fB\-e\fP, +\fB\-f\fP, +\fB\-g\fP, +\fB\-i\fP, +\fB\-l\fP, +\fB\-p\fP, +\fB\-q\fP and +\fB\-t\fP options are not supported in SVr4 curses. .PP SVr4 infocmp does not distinguish between absent and cancelled capabilities. @@ -583,26 +613,54 @@ Also, it shows missing integer capabilities as \fB\-1\fP This implementation shows those as \*(``NULL\*('', for consistency with missing strings. .PP -The \fB\-r\fR option's notion of \*(``termcap\*('' capabilities is System V Release 4's. +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\fR \fB\-RBSD\fR. -.SH BUGS -The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode. -.SH SEE ALSO -\fB@CAPTOINFO@\fR(1M), -\fB@INFOTOCAP@\fR(1M), -\fB@TIC@\fR(1M), -\fB@TOE@\fR(1M), -\fBcurses\fR(3X), -\fBterminfo\fR(\*n). -.sp -https://invisible-island.net/ncurses/tctest.html +4.4BSD set, use \fB\-r\fP \fB\-RBSD\fP. +.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 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 -This describes \fBncurses\fR -version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). -.SH AUTHOR +Eric Raymond used the AT&T documentation in 1995 to provide an equivalent +\fB@INFOCMP@\fP for \fI\%ncurses\fP. +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 \fI\%ncurses\fP versions +(e.g., it lacks the sorting options documented in X/Open), +but does include the \fB\-x\fP option adapted from \fI\%ncurses\fP. +.SH BUGS +The \fB\-F\fP option of \fB\%@INFOCMP@\fP(1M) should be a +\fB\%@TOE@\fP(1M) mode. +.SH AUTHORS Eric S. Raymond and .br -Thomas E. Dickey +Thomas E. Dickey +.SH SEE ALSO +\fB\%@CAPTOINFO@\fP(1M), +\fB\%@INFOTOCAP@\fP(1M), +\fB\%@TIC@\fP(1M), +\fB\%@TOE@\fP(1M), +\fB\%curses\fP(3X), +\fB\%terminfo\fP(5), +\fB\%user_caps\fP(5) +.PP +https://invisible\-island.net/ncurses/tctest.html