path: root/man/infocmp.1m
diff options
Diffstat (limited to 'man/infocmp.1m')
1 files changed, 437 insertions, 0 deletions
diff --git a/man/infocmp.1m b/man/infocmp.1m
new file mode 100644
index 000000000000..b1a88e76723b
--- /dev/null
+++ b/man/infocmp.1m
@@ -0,0 +1,437 @@
+'\" 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. *
+.\" *
+.\" *
+.\" 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@
+\fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
+\fB@INFOCMP@\fR [\fB-\
+ [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR]
+ [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
+ [\fItermname\fR...]
+\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.
+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.
+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.
+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.
+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
+If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
+used for the terminal name.
+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.
+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.
+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.
+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
+Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
+equivalents, and some terminal types which commonly have such sequences, are:
+center tab(/) ;
+l c l
+l l l.
+\fBterminfo/termcap\fR/Representative Terminals
+\fB%p1%d/%d\fR/hp, ANSI standard, vt100
+\fB%i/%i\fRq/ANSI standard, vt100
+\fB%p2\fR is printed before \fB%p1/%r\fR/hp
+.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.
+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.
+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.
+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
+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
+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.
+tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
+them. Capabilities are commented by prefixing them with a period.
+.TP 5
+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.
+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
+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
+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
+Display complex terminfo strings which contain if/then/else/endif expressions
+indented for readability.
+.TP 5
+Display constant literals in decimal form
+rather than their character equivalents.
+.TP 5
+Display constant character literals in quoted form
+rather than their decimal equivalents.
+.TP 5
+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:
+center tab(/) ;
+l l
+l l.
+RIS/full reset
+SC/save cursor
+RC/restore cursor
+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
+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).
+An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
+.TP 5
+Set output format to terminfo.
+.TP 5
+Ignore padding specifications when comparing strings.
+.TP 5
+Make the comparison listing shorter by omitting subheadings, and using
+"-" for absent capabilities, "@" for canceled rather than "NULL".
+.TP 5
+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.
+\fB-s \fR\fI[d|i|l|c]\fR
+The \fB-s\fR option sorts the fields within each type according to the argument
+.RS 5
+.TP 5
+leave fields in the order that they are stored in the \fIterminfo\fR database.
+.TP 5
+sort by \fIterminfo\fR name.
+.TP 5
+sort by the long C variable name.
+.TP 5
+sort by the \fItermcap\fR name.
+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
+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).
+tells \fBtic\fP to discard commented-out capabilities.
+Normally when translating from terminfo to termcap,
+untranslatable capabilities are commented-out.
+.TP 5
+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
+.TP 5
+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.
+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.
+.TP 20
+Compiled terminal description database.
+\fB-q\fR and
+options are not supported in SVr4 curses.
+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.
+The \fB-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
+This describes \fBncurses\fR
+Eric S. Raymond <esr@snark.thyrsus.com>
+Thomas E. Dickey <dickey@invisible-island.net>
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End: