| <!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> |