123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445 |
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- * 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 @
- -->
- <HTML>
- <HEAD>
- <TITLE>infocmp 1m</TITLE>
- <link rev=made href="mailto:bug-ncurses@gnu.org">
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </HEAD>
- <BODY>
- <H1>infocmp 1m</H1>
- <HR>
- <PRE>
- <!-- Manpage converted by man2html 3.0.1 -->
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
- </PRE>
- <H2>NAME</H2><PRE>
- <STRONG>infocmp</STRONG> - compare or print out <EM>terminfo</EM> descriptions
- </PRE>
- <H2>SYNOPSIS</H2><PRE>
- <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTUVcdegilnpqrtux</STRONG>]
- [<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
- [<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
- [<EM>termname</EM>...]
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
- <STRONG>infocmp</STRONG> can be used to compare a binary <STRONG>terminfo</STRONG> entry
- with other terminfo entries, rewrite a <STRONG>terminfo</STRONG> descrip-
- tion to take advantage of the <STRONG>use=</STRONG> terminfo field, or
- print out a <STRONG>terminfo</STRONG> description from the binary file
- (<STRONG>term</STRONG>) 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.
- <STRONG>Default</STRONG> <STRONG>Options</STRONG>
- If no options are specified and zero or one <EM>termnames</EM> are
- specified, the <STRONG>-I</STRONG> option will be assumed. If more than
- one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
- <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
- terminal <EM>termname</EM> with each of the descriptions given by
- the entries for the other terminal's <EM>termnames</EM>. If a
- capability is defined for only one of the terminals, the
- value returned will depend on the type of the capability:
- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
- <STRONG>NULL</STRONG> for string variables.
- The <STRONG>-d</STRONG> 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 dif-
- ferent people, for the same or similar terminals.
- The <STRONG>-c</STRONG> 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 <STRONG>-u</STRONG> option is worth using.
- The <STRONG>-n</STRONG> option produces a list of each capability that is
- in neither entry. If no <EM>termnames</EM> are given, the environ-
- ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
- This can be used as a quick check to see if anything was
- left out of a description.
- <STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG>
- The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
- for each terminal named.
- <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
- <STRONG>-L</STRONG> use the long C variable name listed in <<STRONG>term.h</STRONG>>
- <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
- <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
- will be used for the terminal name.
- The source produced by the <STRONG>-C</STRONG> option may be used directly
- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
- be changed to the <STRONG>termcap</STRONG> format. <STRONG>infocmp</STRONG> will attempt to
- convert most of the parameterized information, and any-
- thing 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
- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
- tion with a trailing '/') will become optional.
- All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
- which are derivable from other <STRONG>terminfo</STRONG> variables, will be
- output. Not all <STRONG>terminfo</STRONG> capabilities will be translated;
- only those variables which were part of <STRONG>termcap</STRONG> will nor-
- mally be output. Specifying the <STRONG>-r</STRONG> option will take off
- this restriction, allowing all capabilities to be output
- in <EM>termcap</EM> form.
- Note that because padding is collected to the beginning of
- the capability, not all capabilities are output. Manda-
- tory padding is not supported. Because <STRONG>termcap</STRONG> strings
- are not as flexible, it is not always possible to convert
- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
- original <STRONG>terminfo</STRONG> source.
- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
- equivalents, and some terminal types which commonly have
- such sequences, are:
- <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
- ---------------------------------------------------------------
- <STRONG>%p1%c</STRONG> <STRONG>%.</STRONG> adm
- <STRONG>%p1%d</STRONG> <STRONG>%d</STRONG> hp, ANSI standard, vt100
- <STRONG>%p1%'x'%+%c</STRONG> <STRONG>%+x</STRONG> concept
- <STRONG>%i</STRONG> <STRONG>%i</STRONG>q ANSI standard, vt100
- <STRONG>%p1%?%'x'%>%t%p1%'y'%+%;</STRONG> <STRONG>%>xy</STRONG> concept
- <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp
- <STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG>
- The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
- the first terminal <EM>termname</EM> which is relative to the sum
- of the descriptions given by the entries for the other
- terminals <EM>termnames</EM>. It does this by analyzing the dif-
- ferences between the first <EM>termname</EM> and the other
- <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> 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 <STRONG>infocmp</STRONG> will
- show what can be done to change one description to be rel-
- ative to the other.
- A capability will get printed with an at-sign (@) if it no
- longer exists in the first <EM>termname</EM>, but one of the other
- <EM>termname</EM> entries contains a value for it. A capability's
- value gets printed if the value in the first <EM>termname</EM> is
- not found in any of the other <EM>termname</EM> entries, or if the
- first of the other <EM>termname</EM> entries that has this capabil-
- ity gives a different value for the capability than that
- in the first <EM>termname</EM>.
- The order of the other <EM>termname</EM> entries is significant.
- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
- of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
- tain differing entries for the same capabilities will pro-
- duce different results depending on the order that the
- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
- sistencies between the other <EM>termname</EM> entries as they are
- found.
- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
- that contains that capability will cause the second speci-
- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
- description can be a useful check to make sure that every-
- thing was specified correctly in the original source
- description.
- Another error that does not cause incorrect compiled
- files, but will slow down the compilation time, is speci-
- fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
- needed.
- <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
- The location of the compiled <STRONG>terminfo</STRONG> database is taken
- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
- is not defined, or the terminal is not found in that loca-
- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
- <STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
- for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
- for the other <EM>termnames</EM>. 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.
- <STRONG>Other</STRONG> <STRONG>Options</STRONG>
- <STRONG>-1</STRONG> 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.
- <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities
- rather than discarding them. Capabilities are com-
- mented by prefixing them with a period.
- <STRONG>-E</STRONG> Dump the capabilities of the given terminal as
- tables, needed in the C initializer for a TERMTYPE
- structure (the terminal capability structure in the
- <STRONG><term.h></STRONG>). This option is useful for preparing ver-
- sions 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 <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
- options was not needed; but support for extended
- names required making the arrays of terminal capabil-
- ities separate from the TERMTYPE structure.
- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
- initializer for a TERMTYPE structure (the terminal
- capability structure in the <STRONG><term.h></STRONG>). This option
- is useful for preparing versions of the curses
- library hardwired for a given terminal type.
- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
- lowing 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 dif-
- ferences, but resolution can be forced by also speci-
- fying <STRONG>-r</STRONG>.
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for readabil-
- ity.
- <STRONG>-G</STRONG> Display constant literals in decimal form rather than
- their character equivalents.
- <STRONG>-g</STRONG> Display constant character literals in quoted form
- rather than their decimal equivalents.
- <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), 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 spe-
- cial 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 recog-
- nized actions translated into {}-bracketed descrip-
- tions. Here is a list of the DEC/ANSI special
- sequences recognized: i.
- 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
- 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}).
- <STRONG>-l</STRONG> Set output format to terminfo.
- <STRONG>-p</STRONG> Ignore padding specifications when comparing strings.
- <STRONG>-q</STRONG> Make the comparison listing shorter by omitting sub-
- headings, and using "-" for absent capabilities, "@"
- for canceled rather than "NULL".
- <STRONG>-R</STRONG><EM>subset</EM>
- 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 incompati-
- ble with SVr4/XSI. Available terminfo subsets are
- "SVr1", "Ultrix", "HP", and "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- for details. You can also choose the subset "BSD"
- which selects only capabilities with termcap equiva-
- lents recognized by 4.4BSD.
- <STRONG>-s</STRONG> <EM>[d|i|l|c]</EM>
- The <STRONG>-s</STRONG> option sorts the fields within each type
- according to the argument below:
- <STRONG>d</STRONG> leave fields in the order that they are stored
- in the <EM>terminfo</EM> database.
- <STRONG>i</STRONG> sort by <EM>terminfo</EM> name.
- <STRONG>l</STRONG> sort by the long C variable name.
- <STRONG>c</STRONG> sort by the <EM>termcap</EM> name.
- If the <STRONG>-s</STRONG> option is not given, the fields printed out
- will be sorted alphabetically by the <STRONG>terminfo</STRONG> name
- within each type, except in the case of the <STRONG>-C</STRONG> or the
- <STRONG>-L</STRONG> options, which cause the sorting to be done by the
- <STRONG>termcap</STRONG> name or the long C variable name, respec-
- tively.
- <STRONG>-T</STRONG> 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).
- <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
- Normally when translating from terminfo to termcap,
- untranslatable capabilities are commented-out.
- <STRONG>-U</STRONG> tells <STRONG>infocmp</STRONG> 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 <STRONG>infocmp</STRONG> makes
- to fill in missing data.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
- <STRONG>-v</STRONG> <EM>n</EM> prints out tracing information on standard error as
- the program runs. Higher values of n induce greater
- verbosity.
- <STRONG>-w</STRONG> <EM>width</EM>
- changes the output to <EM>width</EM> characters.
- <STRONG>-x</STRONG> print information for user-defined capabilities.
- These are extensions to the terminfo repertoire which
- can be loaded using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
- </PRE>
- <H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
- </PRE>
- <H2>EXTENSIONS</H2><PRE>
- The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</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>
- and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
- The <STRONG>-r</STRONG> 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 <STRONG>-r</STRONG>
- <STRONG>-RBSD</STRONG>.
- </PRE>
- <H2>BUGS</H2><PRE>
- 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.
- </PRE>
- <H2>SEE ALSO</H2><PRE>
- <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>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20081011).
- </PRE>
- <H2>AUTHOR</H2><PRE>
- Eric S. Raymond <esr@snark.thyrsus.com> and
- Thomas E. Dickey <dickey@invisible-island.net>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
- </PRE>
- <HR>
- <ADDRESS>
- Man(1) output converted with
- <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
- </ADDRESS>
- </BODY>
- </HTML>
|