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