123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438 |
- '\" t
- .\"***************************************************************************
- .\" Copyright (c) 1998-2004,2006 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 *
- .\" "Software"), to deal in the Software without restriction, including *
- .\" without limitation the rights to use, copy, modify, merge, publish, *
- .\" distribute, distribute with modifications, sublicense, and/or sell *
- .\" copies of the Software, and to permit persons to whom the Software is *
- .\" furnished to do so, subject to the following conditions: *
- .\" *
- .\" The above copyright notice and this permission notice shall be included *
- .\" in all copies or substantial portions of the Software. *
- .\" *
- .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- .\" *
- .\" Except as contained in this notice, the name(s) of the above copyright *
- .\" holders shall not be used in advertising or otherwise to promote the *
- .\" sale, use or other dealings in this Software without prior written *
- .\" authorization. *
- .\"***************************************************************************
- .\"
- .\" $Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp $
- .TH @INFOCMP@ 1M ""
- .ds n 5
- .ds d @TERMINFO@
- .SH NAME
- \fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
- .SH SYNOPSIS
- \fB@INFOCMP@\fR [\fB-\
- 1\
- C\
- E\
- F\
- G\
- I\
- L\
- T\
- U\
- V\
- c\
- d\
- e\
- g\
- i\
- l\
- n\
- p\
- q\
- r\
- t\
- u\
- x\
- \fR]
- .br
- [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\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...]
- .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
- 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. If a capability is defined for only one of the
- terminals, the value returned will depend on the type of the capability:
- \fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
- for string variables.
- .PP
- The \fB-d\fR option produces a list of each capability that is different
- between two entries. This option is useful to show the difference between two
- entries, created by different people, for the same or similar terminals.
- .PP
- The \fB-c\fR option produces a list of each capability that is common between
- two entries. Capabilities that are not set are ignored. This option can be
- used as a quick check to see if the \fB-u\fR option is worth using.
- .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
- 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
- .TE
- .PP
- If no \fItermnames\fR are given, the environment variable \fBTERM\fR 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
- parameterized information, and anything not converted will be plainly marked in
- the output and commented out. These should be edited by hand.
- .PP
- All padding information for strings will be collected together and placed
- at the beginning of the string where \fBtermcap\fR 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. 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
- will take off this restriction, allowing all capabilities to be output in
- \fItermcap\fR form.
- .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.
- .PP
- Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
- equivalents, and some terminal types which commonly have such sequences, are:
- .
- .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
- .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. 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. 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
- 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.
- .PP
- The order of the other \fItermname\fR entries is significant. Since the
- terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
- specifying two \fBuse=\fR 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.
- .PP
- Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR 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
- 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
- superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
- were not needed.
- .SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
- The location of the compiled \fBterminfo\fR database is taken from the
- environment variable \fBTERMINFO\fR . If the variable is not defined, or the
- terminal is not found in that location, the system \fBterminfo\fR database,
- in \fB@TERMINFO@\fR, will be used. The options \fB-A\fR
- and \fB-B\fR may be used to override this location. The \fB-A\fR option will
- set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will
- set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
- compare descriptions for a terminal with the same name located in two different
- databases. This is useful for comparing descriptions for the same terminal
- created by different people.
- .SS Other Options
- .TP 5
- \fB-1\fR
- 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. Capabilities are commented by prefixing them with a period.
- .TP 5
- \fB-E\fR
- 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<term.h>\fR).
- 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.
- .TP 5
- \fB-e\fR
- 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).
- This option is useful for preparing versions of the curses library hardwired
- for a given terminal type.
- .TP 5
- \fB-F\fR
- compare terminfo files. This assumes that two following arguments are
- filenames. The files are searched for pairwise matches between
- entries, with two entries considered to match if any of their names do.
- The report printed to standard output lists entries with no matches in
- the other file, and entries with more than one match. For entries
- with exactly one match it includes a difference report. Normally,
- to reduce the volume of the report, use references are
- not resolved before looking for differences, but resolution can be forced
- by also specifying \fB-r\fR.
- .TP 5
- \fB-f\fR
- Display complex terminfo strings which contain if/then/else/endif expressions
- indented for readability.
- .TP 5
- \fB-G\fR
- Display constant literals in decimal form
- rather than their character equivalents.
- .TP 5
- \fB-g\fR
- 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. For each string, the
- code tries to analyze it into actions in terms of the other capabilities in the
- entry, certain X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC VT-series
- private modes (the set of recognized special sequences has been selected for
- completeness over the existing terminfo database). Each report line consists
- of the capability name, followed by a colon and space, followed by a printable
- expansion of the capability string with sections matching recognized actions
- translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI
- special sequences recognized:
- i.
- .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
- .TE
- .sp
- It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
- Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
- REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off).
- .PP
- An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
- .TP 5
- \fB-l\fR
- Set output format to terminfo.
- .TP 5
- \fB-p\fR
- Ignore padding specifications when comparing strings.
- .TP 5
- \fB-q\fR
- Make the comparison listing shorter by omitting subheadings, and using
- "-" for absent capabilities, "@" for canceled rather than "NULL".
- .TP 5
- \fB-R\fR\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
- the full set of SVR4/XSI Curses terminfo; and variants such as AIX
- that have their own extensions incompatible with SVr4/XSI. Available terminfo
- subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for
- details. You can also choose the subset "BSD" which selects only capabilities
- with termcap equivalents recognized by 4.4BSD.
- .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
- below:
- .br
- .RS 5
- .TP 5
- \fBd\fR
- leave fields in the order that they are stored in the \fIterminfo\fR database.
- .TP 5
- \fBi\fR
- sort by \fIterminfo\fR name.
- .TP 5
- \fBl\fR
- sort by the long C variable name.
- .TP 5
- \fBc\fR
- sort by the \fItermcap\fR 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
- name, respectively.
- .TP 5
- \fB-T\fR
- 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
- tells \fBtic\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.
- 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.
- .TP 5
- \fB-v\fR \fIn\fR
- prints out tracing information on standard error as the program runs.
- Higher values of n induce greater verbosity.
- .TP 5
- \fB-w\fR \fIwidth\fR
- changes the output to \fIwidth\fR characters.
- .TP
- \fB-x\fR
- print information for user-defined capabilities.
- These are extensions to the terminfo repertoire which can be loaded
- using the \fB-x\fR option of \fBtic\fP.
- .SH FILES
- .TP 20
- \*d
- Compiled terminal description database.
- .SH EXTENSIONS
- The
- \fB-E\fR,
- \fB-F\fR,
- \fB-G\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
- options are not supported in SVr4 curses.
- .PP
- The \fB-r\fR 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).
- .PP
- This describes \fBncurses\fR
- version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
- .SH AUTHOR
- Eric S. Raymond <esr@snark.thyrsus.com>
- and
- .br
- Thomas E. Dickey <dickey@invisible-island.net>
- .\"#
- .\"# The following sets edit modes for GNU EMACS
- .\"# Local Variables:
- .\"# mode:nroff
- .\"# fill-column:79
- .\"# End:
|