X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Finfocmp.1m.html;h=1551b5b2bddb8bb4f03a94e9d57f56782d1c6782;hb=2bcad5fdfc4aa83a1479bd1d21dadc32dad8c2a8;hp=dbf8e17e0039f164ca83fd2657ea08f3b034d454;hpb=bca50d0d8592defee6c584fdedd25f4b1a31345b;p=ncurses.git diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html index dbf8e17e..1551b5b2 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) @@ -58,9 +59,9 @@
- 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 + 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. @@ -76,8 +77,8 @@ 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: + the terminals, the value returned depends on the type of the + capability: o F for missing boolean variables @@ -95,12 +96,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 @@ -115,8 +116,8 @@
- 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> @@ -142,27 +143,27 @@ 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: @@ -178,10 +179,10 @@
- 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 + The -u option produces a terminfo source description of the first + terminal termname which is relative to the sum of the descriptions + given by the entries for the other terminals termnames. It does this + by analyzing 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 @@ -189,37 +190,37 @@ 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 + A capability will be 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 will be 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 + 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 + the entries are given in. infocmp will flag any such inconsistencies between the other termname 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 + 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. 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). + 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: @@ -228,8 +229,8 @@ o The -B option sets the location for the other termnames. - 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 +250,115 @@ 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 @@ -364,41 +366,53 @@ 3 hexadecimal and base64 + For example, this prints the compiled terminfo value as a string + which could be assigned to the TERMINFO environment variable: + + infocmp -0 -q -Q2 + -q This makes the output a little shorter: - o Make the comparison listing shorter by omitting subheadings, + o Make the comparison listing shorter by omitting subheadings, 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 cancelled + 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 - that do not support the full set of SVR4/XSI Curses terminfo; and - variants such as AIX that have their own extensions incompatible + Restrict output to a given subset. This option is for use with + archaic versions of terminfo like those on SVr1, Ultrix, or HP-UX + that do not support the full set of SVR4/XSI Curses terminfo; and + variants such as AIX that have their own extensions incompatible with SVr4/XSI. - o Available terminfo subsets are "SVr1", "Ultrix", "HP", and + 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. The -I option like- - wise selects no subset as a side-effect. + 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. + + -r sets the subset to all capabilities. -s [d|i|l|c] 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. @@ -414,17 +428,17 @@ -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 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. + 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 exits. @@ -443,23 +457,55 @@ -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. +
+ 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. + + 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 + + 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. + + +
+ X/Open Curses, Issue 7 (2009) provides a description of infocmp. It + does not mention the options used for converting to termcap format. + +
- The -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q + 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. - 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. + SVr4 infocmp does not distinguish between absent and cancelled + capabilities. 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 @@ -471,12 +517,12 @@
- captoinfo(1m), infotocap(1m), tic(1m), toe(1m), curses(3x), ter- - minfo(5). + captoinfo(1m), infotocap(1m), tic(1m), toe(1m), curses(3x), + terminfo(5). user_caps(5). https://invisible-island.net/ncurses/tctest.html - This describes ncurses version 6.0 (patch 20180106). + This describes ncurses version 6.4 (patch 20230902).
@@ -485,7 +531,7 @@ - infocmp(1m) +ncurses 6.4 2023-09-02 infocmp(1m)