X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftic.1m.html;h=fefcf98e047d89d088b172b433d67f3a07adc14c;hb=790a85dbd4a81d5f5d8dd02a44d84f01512ef443;hp=38270188e5779f0eacfe50a730b9f9ba928c7d12;hpb=321b81e6b3fa425daddac02420d862100dc3aac8;p=ncurses.git diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html index 38270188..fefcf98e 100644 --- a/doc/html/man/tic.1m.html +++ b/doc/html/man/tic.1m.html @@ -1,6 +1,7 @@ @@ -34,7 +35,7 @@
+ This is the same program as infotocap and captoinfo; usually those are + linked to, or copied from this program: + + o When invoked as infotocap, tic sets the -I option. + + o When invoked as captoinfo, tic sets the -C option. + +
-0 restricts the output to a single line -1 restricts the output to a single column - -a tells tic to retain commented-out capabilities rather than dis- + -a tells tic to retain commented-out capabilities rather than dis- carding them. Capabilities are commented by prefixing them with - a period. This sets the -x option, because it treats the com- - mented-out entries as user-defined names. If the source is - termcap, accept the 2-character names required by version 6. + a period. This sets the -x option, because it treats the com- + mented-out entries as user-defined names. If the source is + termcap, accept the 2-character names required by version 6. Otherwise these are ignored. - -C Force source translation to termcap format. Note: this differs - from the -C option of infocmp(1m) in that it does not merely + -C Force source translation to termcap format. Note: this differs + from the -C option of infocmp(1m) in that it does not merely translate capability names, but also translates terminfo strings - to termcap format. Capabilities that are not translatable are - left in the entry under their terminfo names but commented out - with two preceding dots. The actual format used incorporates - some improvements for escaped characters from terminfo format. + to termcap format. Capabilities that are not translatable are + left in the entry under their terminfo names but commented out + with two preceding dots. The actual format used incorporates + some improvements for escaped characters from terminfo format. For a stricter BSD-compatible translation, add the -K option. - If this is combined with -c, tic makes additional checks to - report cases where the terminfo values do not have an exact + If this is combined with -c, tic makes additional checks to + report cases where the terminfo values do not have an exact equivalent in termcap form. For example: - o sgr usually will not convert, because termcap lacks the - ability to work with more than two parameters, and because - termcap lacks many of the arithmetic/logical operators used + o sgr usually will not convert, because termcap lacks the + ability to work with more than two parameters, and because + termcap lacks many of the arithmetic/logical operators used in terminfo. - o capabilities with more than one delay or with delays before + o capabilities with more than one delay or with delays before the end of the string will not convert completely. - -c tells tic to only check file for errors, including syntax prob- - lems and bad use-links. If you specify -C (-I) with this - option, the code will print warnings about entries which, after - use resolution, are more than 1023 (4096) bytes long. Due to a + -c tells tic to only check file for errors, including syntax prob- + lems and bad use-links. If you specify -C (-I) with this + option, the code will print warnings about entries which, after + use resolution, are more than 1023 (4096) bytes long. Due to a fixed buffer length in older termcap libraries, as well as buggy - checking for the buffer length (and a documented limit in ter- - minfo), these entries may cause core dumps with other implemen- + checking for the buffer length (and a documented limit in ter- + minfo), these entries may cause core dumps with other implemen- tations. tic checks string capabilities to ensure that those with parame- @@ -153,29 +163,29 @@ predefined string capabilities; those which are defined with the -x option are ignored. - -D tells tic to print the database locations that it knows about, + -D tells tic to print the database locations that it knows about, and exit. The first location shown is the one to which it would - write compiled terminal descriptions. If tic is not able to - find a writable database location according to the rules summa- - rized above, it will print a diagnostic and exit with an error + write compiled terminal descriptions. If tic is not able to + find a writable database location according to the rules summa- + rized above, it will print a diagnostic and exit with an error rather than printing a list of database locations. -e names - Limit writes and translations to the following comma-separated - list of terminals. If any name or alias of a terminal matches - one of the names in the list, the entry will be written or + Limit writes and translations to the following comma-separated + list of terminals. If any name or alias of a terminal matches + one of the names in the list, the entry will be written or translated as normal. Otherwise no output will be generated for - it. The option value is interpreted as a file containing the + it. The option value is interpreted as a file containing the list if it contains a '/'. (Note: depending on how tic was com- piled, this option may require -I or -C.) - -f Display complex terminfo strings which contain + -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 + -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 Force source translation to terminfo format. @@ -183,24 +193,24 @@ -K Suppress some longstanding ncurses extensions to termcap format, e.g., "\s" for space. - -L Force source translation to terminfo format using the long C + -L Force source translation to terminfo format using the long C variable names listed in <term.h> -N Disable smart defaults. Normally, when translating from termcap - to terminfo, the compiler makes a number of assumptions about - the defaults of string capabilities reset1_string, car- + to terminfo, the compiler makes a number of assumptions about + the defaults of string capabilities reset1_string, car- riage_return, cursor_left, cursor_down, scroll_forward, tab, newline, key_backspace, key_left, and key_down, then attempts to - use obsolete termcap capabilities to deduce correct values. It + use obsolete termcap capabilities to deduce correct values. It also normally suppresses output of obsolete termcap capabilities - such as bs. This option forces a more literal translation that + such as bs. This option forces a more literal translation that also preserves the obsolete capabilities. - -odir Write compiled entries to given database location. Overrides + -odir Write compiled entries to given database location. Overrides the TERMINFO environment variable. - -Qn Rather than show source in terminfo (text) format, print the - compiled (binary) format in hexadecimal or base64 form, depend- + -Qn Rather than show source in terminfo (text) format, print the + compiled (binary) format in hexadecimal or base64 form, depend- ing on the option's value: 1 hexadecimal @@ -213,35 +223,35 @@ source. -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 ter- - minfo; and outright broken ports like AIX 3.x that have their - own extensions incompatible with SVr4/XSI. Available subsets + 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 ter- + minfo; and outright broken ports like AIX 3.x that have their + own extensions incompatible with SVr4/XSI. Available subsets are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see terminfo(5) for details. - -r Force entry resolution (so there are no remaining tc capabili- - ties) even when doing translation to termcap format. This may - be needed if you are preparing a termcap file for a termcap - library (such as GNU termcap through version 1.3 or BSD termcap - through 4.3BSD) that does not handle multiple tc capabilities + -r Force entry resolution (so there are no remaining tc capabili- + ties) even when doing translation to termcap format. This may + be needed if you are preparing a termcap file for a termcap + library (such as GNU termcap through version 1.3 or BSD termcap + through 4.3BSD) that does not handle multiple tc capabilities per entry. - -s Summarize the compile by showing the database location into - which entries are written, and the number of entries which are + -s Summarize the compile by showing the database location into + which entries are written, and the number of entries which are compiled. - -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- + -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). - -t tells tic to discard commented-out capabilities. Normally when - translating from terminfo to termcap, untranslatable capabili- + -t tells tic to discard commented-out capabilities. Normally when + translating from terminfo to termcap, untranslatable capabili- ties are commented-out. - -U tells tic to not post-process the data after parsing the source + -U tells tic to not post-process the data after parsing the source file. Normally, it infers data which is commonly missing in older terminfo data, or in termcaps. @@ -251,9 +261,9 @@ -vn specifies that (verbose) output be written to standard error trace information showing tic's progress. - The optional parameter n is a number from 1 to 10, inclusive, + 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 + is built without tracing support, the optional parameter is ignored. If n is omitted, the default level is 1. If n is speci- fied and greater than 1, the level of detail is increased. @@ -275,20 +285,21 @@ If the debug level n is not given, it is taken to be one. - -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. - If you specify both -f and -W options, the latter is ignored when + If you specify both -f and -W options, the latter is ignored when -f has already split the line. -wn specifies the width of the output. The parameter is optional. If it is omitted, it defaults to 60. - -x Treat unknown capabilities as user-defined. That is, if you sup- - ply a capability name which tic does not recognize, it will infer - its type (boolean, number or string) from the syntax and make an - extended table entry for that. User-defined capability strings - whose name begins with "k" are treated as function keys. + -x Treat unknown capabilities as user-defined (see user_caps(5)). + That is, if you supply a capability name which tic does not recog- + nize, it will infer its type (boolean, number or string) from the + syntax and make an extended table entry for that. User-defined + capability strings whose name begins with "k" are treated as func- + tion keys.
@@ -323,33 +334,119 @@ will be printed. -
- There is some evidence that historic tic implementations treated - description fields with no whitespace in them as additional aliases or +
+ System V Release 2 provided a tic utility. It accepted a single + option: -v (optionally followed by a number). According to Ross + Ridge's comment in mytinfo, this version of tic was unable to represent + cancelled capabilities. + + System V Release 3 provided a different tic utility, written by Pavel + Curtis, (originally named "compile" in pcurses). This added an option + -c to check the file for errors, with the caveat that errors in "use=" + links would not be reported. System V Release 3 documented a few warn- + ing messages which did not appear in pcurses. While the program itself + was changed little as development continued with System V Release 4, + the table of capabilities grew from 180 (pcurses) to 464 (Solaris). + + In early development of ncurses (1993), Zeyd Ben-Halim used the table + from mytinfo to extend the pcurses table to 469 capabilities (456 + matched SVr4, 8 were only in SVr4, 13 were not in SVr4). Of those 13, + 11 were ultimately discarded (perhaps to match the draft of X/Open + Curses). The exceptions were memory_lock_above and memory_unlock (see + user_caps(5)). + + Eric Raymond incorporated parts of mytinfo into ncurses to implement + the termcap-to-terminfo source conversion, and extended that to begin + development of the corresponding terminfo-to-termcap source conversion, + Thomas Dickey completed that development over the course of several + years. + + In 1999, Thomas Dickey added the -x option to support user-defined + capabilities. + + In 2010, Roy Marples provided a tic program and terminfo library for + NetBSD. That implementation adapts several features from ncurses, + including tic's -x option. + + The -c option tells tic to check for problems in the terminfo source + file. Continued development provides additional checks: + + o pcurses had 8 warnings + + o ncurses in 1996 had 16 warnings + + o Solaris (SVr4) curses has 28 warnings + + o NetBSD tic in 2019 has 19 warnings. + + o ncurses in 2019 has 96 warnings + + The checking done in ncurses' tic helps with the conversion to termcap, + as well as pointing out errors and inconsistencies. It is also used to + ensure consistency with the user-defined capabilities. There are 527 + distinct capabilities in ncurses' terminal database; 128 of those are + user-defined. + + +
+ X/Open Curses, Issue 7 (2009) provides a brief description of tic. It + lists one option: -c. The omission of -v is unexpected. The change + history states that the description is derived from True64 UNIX. + According to its manual pages, that system also supported the -v + option. + + Shortly after Issue 7 was released, Tru64 was discontinued. As of + 2019, the surviving implementations of tic are SVr4 (AIX, HP-UX and + Solaris), ncurses and NetBSD curses. The SVr4 tic programs all support + the -v option. The NetBSD tic program follows X/Open's documentation, + omitting the -v option. + + The X/Open rationale states that some implementations of tic read ter- + minal descriptions from the standard input if the file parameter is + omitted. None of these implementations do that. Further, it comments + that some may choose to read from "./terminfo.src" but that is obsoles- + cent behavior from SVr2, and is not (for example) a documented feature + of SVr3. + + +
+ There is some evidence that historic tic implementations treated + description fields with no whitespace in them as additional aliases or short names. This tic does not do that, but it does warn when descrip- - tion fields may be treated that way and check them for dangerous char- + tion fields may be treated that way and check them for dangerous char- acters. -
- Unlike the SVr4 tic command, this implementation can actually compile - termcap sources. In fact, entries in terminfo and termcap syntax can - be mixed in a single source file. See terminfo(5) for the list of +
+ Unlike the SVr4 tic command, this implementation can actually compile + termcap sources. In fact, entries in terminfo and termcap syntax can + be mixed in a single source file. See terminfo(5) for the list of termcap names taken to be equivalent to terminfo names. - The SVr4 manual pages are not clear on the resolution rules for use - capabilities. This implementation of tic will find use targets any- - where in the source file, or anywhere in the file tree rooted at TER- - MINFO (if TERMINFO is defined), or in the user's $HOME/.terminfo data- + The SVr4 manual pages are not clear on the resolution rules for use + capabilities. This implementation of tic will find use targets any- + where in the source file, or anywhere in the file tree rooted at TER- + MINFO (if TERMINFO is defined), or in the user's $HOME/.terminfo data- base (if it exists), or (finally) anywhere in the system's file tree of compiled entries. - The error messages from this tic have the same format as GNU C error + The error messages from this tic have the same format as GNU C error messages, and can be parsed by GNU Emacs's compile facility. - The -0, -1, -C, -G, -I, -N, -R, -T, -V, -a, -e, -f, -g, -o, -r, -s, -t - and -x options are not supported under SVr4. The SVr4 -c mode does not - report bad use links. + Aside from -c and -v, options are not portable: + + o Most of tic's options are not supported by SVr4 tic: + + -0 -1 -C -G -I -N -R -T -V -a -e -f -g -o -r -s -t -x + + o The NetBSD tic supports a few of the ncurses options + + -a -o -x + + and adds -S (a feature which does the same thing as infocmp's -e + and -E options). + + The SVr4 -c mode does not report bad "use=" links. System V does not compile entries to or read entries from your $HOME/.terminfo database unless TERMINFO is explicitly set to it. @@ -362,9 +459,9 @@
infocmp(1m), captoinfo(1m), infotocap(1m), toe(1m), curses(3x), - term(5). terminfo(5). + term(5). terminfo(5). user_caps(5). - This describes ncurses version 6.1 (patch 20181208). + This describes ncurses version 6.2 (patch 20200516).
@@ -381,13 +478,19 @@