X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Finfocmp.1m.html;h=44cb12fb7122ba8c05caaa7dd880a44d75c13ee0;hb=HEAD;hp=170819a0ae4e3edcf52354e0c7d66c2f50a4d9f9;hpb=0de8912c1c0746eb37b733e9e6fdf852aab9506a;p=ncurses.git diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html index 170819a0..5877cf6a 100644 --- a/doc/html/man/infocmp.1m.html +++ b/doc/html/man/infocmp.1m.html @@ -1,7 +1,8 @@ -
--infocmp(1m) infocmp(1m) +infocmp(1m) User commands infocmp(1m) @@ -51,39 +52,38 @@
- infocmp [-1CDEFGIKLTUVWcdegilnpqrtux] - [-v n] [-s d| i| l| c] [-Q n] [-R subset] - [-w width] [-A directory] [-B directory] - [termname...] + infocmp [-1cCdDeEFgGiIKlLnpqrtTuUVWx] [-A directory] [-B directory] + [-Q encoding] [-R subset] [-s key] [-v level] [-w width] + [terminal-type ... ]
- infocmp can be used to compare a binary terminfo entry with other ter- - minfo entries, rewrite a terminfo description to take advantage of the - use= terminfo field, or print out a terminfo description from the - binary file (term) in a variety of formats. In all cases, the boolean + infocmp can be used to compare a binary terminfo entry with other + terminfo entries, rewrite a terminfo description to take advantage of + the use= terminfo field, or print out a terminfo description from the + binary file (term) 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.
- If no options are specified and zero or one termnames are specified, - the -I option will be assumed. If more than one termname is specified, - the -d option will be assumed. + If no options are specified and zero or one terminal-types are + specified, the -I option will be assumed. If more than one terminal- + type is specified, the -d option will be assumed. -
+
infocmp compares the terminfo description of the first terminal - termname with each of the descriptions given by the entries for the - other terminal's termnames. If a capability is defined for only one of - the terminals, the value returned depends on the type of the capabil- - ity: + terminal-type with each of the descriptions given by the entries for + the other terminal's terminal-types. If a capability is defined for + only one of the terminals, the value returned depends on the type of + the capability: - o F for missing boolean variables + o F for missing Boolean variables o NULL for missing integer or string variables - Use the -q option to show the distinction between absent and cancelled + Use the -q option to show the distinction between absent and canceled capabilities. These options produce a list which you can use to compare two or more @@ -95,12 +95,12 @@ -c produces a list of each capability that is common between two or more entries. Missing capabilities are ignored. Each item in the - list shows "=" after the capability name, followed by the capabil- - ity value. + list shows "=" after the capability name, followed by the + capability value. - The -u option provides a related output, showing the first termi- - nal description rewritten to use the second as a building block - via the "use=" clause. + The -u option provides a related output, showing the first + terminal description rewritten to use the second as a building + block via the "use=" clause. -n produces a list of each capability that is in none of the given entries. Each item in the list shows "!" before the capability @@ -110,22 +110,22 @@ option to add the BSD-compatibility capabilities (names prefixed with "OT"). - If no termnames are given, infocmp uses the environment variable - TERM for each of the termnames. + If no terminal-types are given, infocmp uses the environment + variable TERM for each of the terminal-types. -
- The -I, -L, and -C options will produce a source listing for each ter- - minal named. +
+ The -I, -L, and -C options will produce a source listing for each + terminal named. - -I use the terminfo names - -L use the long C variable name listed in <term.h> - -C use the termcap names - -r when using -C, put out all capabilities in termcap form - -K modifies the -C option, improving BSD-compatibility. + -I use terminfo capability codes + -L use "long" capability names + -C use termcap capability codes + -r with -C, include nonstandard capabilities + -K with -C, improve BSD compatibility - If no termnames are given, the environment variable TERM will be used - for the terminal name. + If no terminal-types are given, the environment variable TERM will be + used for the terminal name. The source produced by the -C option may be used directly as a termcap entry, but not all parameterized strings can be changed to the termcap @@ -142,94 +142,96 @@ excess whitespace (use the -0 option for that). All padding information for strings will be collected together and - placed at the beginning of the string where termcap expects it. Manda- - tory padding (padding information with a trailing "/") will become + placed at the beginning of the string where termcap expects it. + Mandatory padding (padding information with a trailing "/") will become optional. All termcap variables no longer supported by terminfo, but which are - derivable from other terminfo variables, will be output. Not all ter- - minfo capabilities will be translated; only those variables which were - part of termcap will normally be output. Specifying the -r option will - take off this restriction, allowing all capabilities to be output in - termcap form. Normally you would use both the -C and -r options. The - actual format used incorporates some improvements for escaped charac- - ters from terminfo format. For a stricter BSD-compatible translation, - use the -K option rather than -C. - - Note that because padding is collected to the beginning of the capabil- - ity, not all capabilities are output. Mandatory padding is not sup- - ported. Because termcap strings are not as flexible, it is not always - possible to convert a terminfo string capability into an equivalent - termcap format. A subsequent conversion of the termcap file back into - terminfo format will not necessarily reproduce the original terminfo - source. + derivable from other terminfo variables, will be output. Not all + terminfo capabilities will be translated; only those variables which + were part of termcap will normally be output. Specifying the -r option + will take off this restriction, allowing all capabilities to be output + in termcap form. Normally you would use both the -C and -r options. + The actual format used incorporates some improvements for escaped + characters from terminfo format. For a stricter BSD-compatible + translation, use the -K option rather than -C. + + Note that because padding is collected to the beginning of the + capability, not all capabilities are output. Mandatory padding is not + supported. Because termcap strings are not as flexible, it is not + always possible to convert a terminfo string capability into an + equivalent termcap format. A subsequent conversion of the termcap file + back into terminfo format will not necessarily reproduce the original + terminfo source. Some common terminfo parameter sequences, their termcap equivalents, and some terminal types which commonly have such sequences, are: - terminfo termcap Representative Terminals - --------------------------------------------------------------- - %p1%c %. adm - %p1%d %d hp, ANSI standard, vt100 - %p1%'x'%+%c %+x concept - %i %iq ANSI standard, vt100 - %p1%?%'x'%>%t%p1%'y'%+%; %>xy concept - %p2 is printed before %p1 %r hp - - -
- The -u option produces a terminfo source description of the first ter- - minal termname which is relative to the sum of the descriptions given - by the entries for the other terminals termnames. It does this by ana- - lyzing the differences between the first termname and the other - termnames and producing a description with use= 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 infocmp 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 termname, but one of the other termname entries - contains a value for it. A capability's value gets printed if the - value in the first termname is not found in any of the other termname - entries, or if the first of the other termname entries that has this - capability gives a different value for the capability than that in the - first termname. - - The order of the other termname entries is significant. Since the ter- - minfo compiler tic does a left-to-right scan of the capabilities, spec- - ifying two use= entries that contain differing entries for the same + terminfo termcap Terminal Types + ---------------------------------------------------- + %p1%c %. ansi-m + %p1%d %d ansi, vt100 + %p1%' '%+%c %+x vt52 + %i %iq ansi, vt100 + %p1%?%'x'%>%t%p1%'y'%+%; %>xy annarbor4080 + %p2...%p1 %r hpgeneric + + +
+ The -u option produces a terminfo source description of the first + terminal terminal-type which is relative to the sum of the descriptions + given by the entries for the other terminal-types. It does this by + analyzing the differences between the first terminal-types and the + other terminal-types and producing a description with use= 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 + infocmp will show what can be done to change one description to be + relative to the other. + + A capability will be printed with an at-sign (@) if it no longer exists + in the first terminal-type, but one of the other terminal-type entries + contains a value for it. A capability's value will be printed if the + value in the first terminal-type is not found in any of the other + terminal-type entries, or if the first of the other terminal-type + entries that has this capability gives a different value for the + capability than that in the first terminal-type. + + The order of the other terminal-type entries is significant. Since the + terminfo compiler tic does a left-to-right scan of the capabilities, + specifying two use= entries that contain differing entries for the same capabilities will produce different results depending on the order that - the entries are given in. infocmp will flag any such inconsistencies - between the other termname entries as they are found. + the entries are given in. infocmp will flag any such inconsistencies + between the other terminal-type entries as they are found. Alternatively, specifying a capability after a use= entry that contains - that capability will cause the second specification to be ignored. - Using infocmp to recreate a description can be a useful check to make - sure that everything was specified correctly in the original source + that capability will cause the second specification to be ignored. + Using infocmp to recreate a description can be a useful check to make + sure that everything 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 specifying extra use= fields that - are superfluous. infocmp will flag any other termname use= fields that - were not needed. + Another error that does not cause incorrect compiled files, but will + slow down the compilation time, is specifying extra use= fields that + are superfluous. infocmp will flag any other terminal-type use= fields + that were not needed. - Changing Databases [-A directory] [-B directory] - Like other ncurses utilities, infocmp looks for the terminal descrip- - tions in several places. You can use the TERMINFO and TERMINFO_DIRS - environment variables to override the compiled-in default list of - places to search (see curses(3x) for details). + Changing Databases [-A directory] [-B directory] + Like other ncurses utilities, infocmp looks for the terminal + descriptions in several places. You can use the TERMINFO and + TERMINFO_DIRS environment variables to override the compiled-in default + list of places to search. See curses(3x), as well as the Fetching + Compiled Descriptions section in terminfo(5). You can also use the options -A and -B to override the list of places to search when comparing terminal descriptions: - o The -A option sets the location for the first termname + o The -A option sets the location for the first terminal-type - o The -B option sets the location for the other termnames. + o The -B option sets the location for the other terminal-types. - Using these options, it is possible to compare descriptions for a ter- - minal with the same name located in two different databases. For + Using these options, it is possible to compare descriptions for a + terminal with the same name located in two different databases. For instance, you can use this feature for comparing descriptions for the same terminal created by different people. @@ -249,114 +251,114 @@ and exit. -E Dump the capabilities of the given terminal as tables, needed in - the C initializer for a TERMTYPE structure (the terminal capabil- - ity structure in the <term.h>). This option is useful for prepar- - ing 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 -e and -E options was - not needed; but support for extended names required making the - arrays of terminal capabilities separate from the TERMTYPE struc- - ture. + the C initializer for a TERMTYPE structure (the terminal + capability structure in the <term.h>). 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 -e and -E options was + not needed; but support for extended names required making the + arrays of terminal capabilities separate from the TERMTYPE + structure. -e Dump the capabilities of the given terminal as a C initializer for - a TERMTYPE structure (the terminal capability structure in the - <term.h>). This option is useful for preparing versions of the + a TERMTYPE structure (the terminal capability structure in the + <term.h>). This option is useful for preparing versions of the curses library hardwired for a given terminal type. -F 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, + 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 -r. - -f Display complex terminfo strings which contain if/then/else/endif + -f Display complex terminfo strings which contain if/then/else/endif expressions indented for readability. - -G Display constant literals in decimal form rather than their char- - acter equivalents. + -G Display constant literals in decimal form rather than their + character equivalents. - -g Display constant character literals in quoted form rather than + -g Display constant character literals in quoted form rather than their decimal equivalents. - -i Analyze the initialization (is1, is2, is3), and reset (rs1, rs2, - rs3), strings in the entry, as well as those used for start- - ing/stopping cursor-positioning mode (smcup, rmcup) as well as - starting/stopping keymap mode (smkx, rmkx). + -i Analyze the initialization (is1, is2, is3), and reset (rs1, rs2, + rs3), strings in the entry, as well as those used for + starting/stopping cursor-positioning mode (smcup, rmcup) as well + as starting/stopping keymap mode (smkx, rmkx). - For each string, the code tries to analyze it into actions in - terms of the other capabilities in the entry, certain X3.64/ISO + 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 + (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: - 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 - - o "+" (turn on) or - - o "-" (turn off). - - An SGR0 designates an empty highlight sequence (equivalent to - {SGR:NORMAL}). + 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 + + o "+" (turn on) or + + o "-" (turn off). + + An SGR0 designates an empty highlight sequence (equivalent to + {SGR:NORMAL}). -l Set output format to terminfo. -p Ignore padding specifications when comparing strings. - -Q n Rather than show source in terminfo (text) format, print the com- - piled (binary) format in hexadecimal or base64 form, depending on - the option's value: + -Q n Rather than show source in terminfo (text) format, print the + compiled (binary) format in hexadecimal or base64 form, depending + on the option's value: 1 hexadecimal @@ -365,7 +367,7 @@ 3 hexadecimal and base64 For example, this prints the compiled terminfo value as a string - which could be assigned to the TERMINFO environment variable: + which could be assigned to the TERMINFO environment variable: infocmp -0 -q -Q2 @@ -375,14 +377,14 @@ and using "-" for absent capabilities, "@" for canceled rather than "NULL". - o However, show differences between absent and cancelled capa- - bilities. + o However, show differences between absent and canceled + capabilities. o Omit the "Reconstructed from" comment for source listings. -Rsubset Restrict output to a given subset. This option is for use with - archaic versions of terminfo like those on SVr1, Ultrix, or HP/UX + 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. @@ -390,20 +392,27 @@ o Available terminfo subsets are "SVr1", "Ultrix", "HP", and "AIX"; see terminfo(5) for details. - o You can also choose the subset "BSD" which selects only capa- - bilities with termcap equivalents recognized by 4.4BSD. The - -C option sets the "BSD" subset as a side-effect. + o You can also choose the subset "BSD" which selects only + capabilities with termcap equivalents recognized by 4.4BSD. + + o If you select any other value for -R, it is the same as no + subset, i.e., all capabilities are used. + + A few options override the subset selected with -R, if they are + processed later in the command parameters: + + -C sets the "BSD" subset as a side-effect. + + -I sets the subset to all capabilities. - o If you select any other value for -R, it is the same as no - subset, i.e., all capabilities are used. The -I option like- - wise selects no subset as a side-effect. + -r sets the subset to all capabilities. -s [d|i|l|c] - The -s option sorts the fields within each type according to the + The -s option sorts the fields within each type according to the argument below: - d leave fields in the order that they are stored in the ter- - minfo database. + d leave fields in the order that they are stored in the + terminfo database. i sort by terminfo name. @@ -411,86 +420,116 @@ c sort by the termcap name. - If the -s option is not given, the fields printed out will be - sorted alphabetically by the terminfo name within each type, - except in the case of the -C or the -L options, which cause the - sorting to be done by the termcap name or the long C variable + If the -s option is not given, the fields printed out will be + sorted alphabetically by the terminfo name within each type, + except in the case of the -C or the -L options, which cause the + sorting to be done by the termcap name or the long C variable name, respectively. - -T eliminates size-restrictions on the generated text. This is + -T 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 ter- - minfo). + descriptions are limited (e.g., 1023 for termcap, 4096 for + terminfo). - -t tells tic to discard commented-out capabilities. Normally when - translating from terminfo to termcap, untranslatable capabilities + -t tells tic to discard commented-out capabilities. Normally when + translating from terminfo to termcap, untranslatable capabilities are commented-out. - -U tells infocmp to not post-process the data after parsing the - source file. This feature helps when comparing the actual con- - tents of two source files, since it excludes the inferences that - infocmp makes to fill in missing data. + -U tells infocmp 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 infocmp makes to fill in missing data. - -V reports the version of ncurses which was used in this program, and + -V reports the version of ncurses which was used in this program, and exits. - -v n prints out tracing information on standard error as the program + -v n prints out tracing information on standard error as the program runs. - The optional parameter n is a number from 1 to 10, inclusive, - indicating the desired level of detail of information. If ncurses - is built without tracing support, the optional parameter is + The optional parameter n is a number from 1 to 10, inclusive, + indicating the desired level of detail of information. If ncurses + is built without tracing support, the optional parameter is ignored. - -W By itself, the -w option will not force long strings to be + -W By itself, the -w option will not force long strings to be wrapped. Use the -W option to do this. -w width changes the output to width characters. - -x print information for user-defined capabilities. These are exten- - sions to the terminfo repertoire which can be loaded using the -x - option of tic. + -x print information for user-defined capabilities (see user_caps(5). + These are extensions to the terminfo repertoire which can be + loaded using the -x option of tic.
- /usr/share/terminfo Compiled terminal description database. + /usr/share/terminfo + compiled terminal description database
- The -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q - and -t options are not supported in SVr4 curses. + The -0, -1, -a, -e, -E, -f, -F, -g, -G, -i, -l, -p, -q, -Q, -R, -t, -T, + and -V options are ncurses extensions. - SVr4 infocmp does not distinguish between absent and cancelled capabil- - ities. Also, it shows missing integer capabilities as -1 (the internal - value used to represent missing integers). This implementation shows - those as "NULL", for consistency with missing strings. - The -r 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 -r -RBSD. +
+ X/Open Curses, Issue 7 (2009) specifies infocmp. It does not mention + options for producing descriptions in termcap format. + SVr4 infocmp does not distinguish between absent and canceled + capabilities. It furthermore reports missing integer capabilities as + -1 (its internal representation). ncurses shows these as "NULL" for + consistency with missing string capabilities. -
- The -F option of infocmp(1m) should be a toe(1m) mode. + The -r option of ncurses infocmp uses SVr4's notion of of "termcap" + capabilities. BSD curses had a more restricted set. To see only those + present in 4.4BSD, use "-r -RBSD". -
- captoinfo(1m), infotocap(1m), tic(1m), toe(1m), curses(3x), ter- - minfo(5). +
+ Although System V Release 2 provided a terminfo library, it had no + documented tool for decompiling the terminal descriptions. Tony Hansen + (AT&T) wrote the first infocmp in early 1984, for System V Release 3. - https://invisible-island.net/ncurses/tctest.html + Eric Raymond used the AT&T documentation in 1995 to provide an + equivalent infocmp for ncurses. In addition, he added a few new + features such as: + + o the -e option, to support fallback (compiled-in) terminal + descriptions + + o the -i option, to help with analysis - This describes ncurses version 6.1 (patch 20190323). + Later, Thomas Dickey added the -x (user-defined capabilities) option, + and the -E option to support fallback entries with user-defined + capabilities. + + For a complete list, see the EXTENSIONS section. + + In 2010, Roy Marples provided an infocmp program for NetBSD. It is + less capable than the SVr4 or ncurses versions (e.g., it lacks the + sorting options documented in X/Open), but does include the -x option + adapted from ncurses. + + +
+ The -F option of infocmp(1m) should be a toe(1m) mode. -
+
Eric S. Raymond <esr@snark.thyrsus.com> and Thomas E. Dickey <dickey@invisible-island.net> +
+ captoinfo(1m), infotocap(1m), tic(1m), toe(1m), curses(3x), + terminfo(5), user_caps(5) + + https://invisible-island.net/ncurses/tctest.html + + - infocmp(1m) +ncurses 6.5 2024-09-21 infocmp(1m)