- All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
- umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil-
- ity.
-
- When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
- entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
- from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
- created from <EM>file</EM> will be used first. <STRONG>tic</STRONG> duplicates the
- capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
- exception of those capabilities that explicitly are
- defined in the current entry.
-
- When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
- <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
- <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
- for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
-
- Total compiled entries cannot exceed 4096 bytes. The name
- field cannot exceed 512 bytes. Terminal names exceeding
- the maximum alias length (32 characters on systems with
- long filenames, 14 characters otherwise) will be truncated
- to the maximum alias length and a warning message will be
- printed.
-
-
-</PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
- There is some evidence that historic <STRONG>tic</STRONG> implementations
- treated description fields with no whitespace in them as
- additional aliases or short names. This <STRONG>tic</STRONG> does not do
- that, but it does warn when description fields may be
- treated that way and check them for dangerous characters.
-
-
-</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can actu-
- ally compile termcap sources. In fact, entries in ter-
- minfo and termcap syntax can be mixed in a single source
- file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> 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 <STRONG>use</STRONG> capabilities. This implementation of <STRONG>tic</STRONG>
- will find <STRONG>use</STRONG> targets anywhere in the source file, or any-
- where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is
- defined), or in the user's <EM>$HOME/.terminfo</EM> database (if it
- exists), or (finally) anywhere in the system's file tree
- of compiled entries.
-
- The error messages from this <STRONG>tic</STRONG> have the same format as
- GNU C error messages, and can be parsed by GNU Emacs's
- compile facility.
-
- The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>,
- <STRONG>-o</STRONG>, <STRONG>-r</STRONG>, <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under
- SVr4. The SVr4 <STRONG>-c</STRONG> mode does not report bad use links.
-
- System V does not compile entries to or read entries from
- your <EM>$HOME/.terminfo</EM> database unless TERMINFO is explic-
- itly set to it.
+ All but one of the capabilities recognized by <B>tic</B> are documented in
+ <B><A HREF="terminfo.5.html">terminfo(5)</A></B>. The exception is the <B>use</B> capability.
+
+ When a <B>use</B>=<I>entry</I>-<I>name</I> field is discovered in a terminal entry currently
+ being compiled, <B>tic</B> reads in the binary from <B>/usr/share/terminfo</B> to
+ complete the entry. (Entries created from <I>file</I> will be used first.
+ <B>tic</B> duplicates the capabilities in <I>entry</I>-<I>name</I> for the current entry,
+ with the exception of those capabilities that explicitly are defined in
+ the current entry.
+
+ When an entry, e.g., <B>entry_name_1</B>, contains a <B>use=</B><I>entry</I>_<I>name</I>_<I>2</I> field,
+ any canceled capabilities in <I>entry</I>_<I>name</I>_<I>2</I> must also appear in
+ <B>entry_name_1</B> before <B>use=</B> for these capabilities to be canceled in
+ <B>entry_name_1</B>.
+
+ Total compiled entries cannot exceed 4096 bytes. The name field cannot
+ exceed 512 bytes. Terminal names exceeding the maximum alias length
+ (32 characters on systems with long filenames, 14 characters otherwise)
+ will be truncated to the maximum alias length and a warning message
+ will be printed.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ System V Release 2 provided a <B>tic</B> utility. It accepted a single
+ option: <B>-v</B> (optionally followed by a number). According to Ross
+ Ridge's comment in <I>mytinfo</I>, this version of <B>tic</B> was unable to represent
+ cancelled capabilities.
+
+ System V Release 3 provided a different <B>tic</B> utility, written by Pavel
+ Curtis, (originally named "compile" in <I>pcurses</I>). This added an option
+ <B>-c</B> 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
+ warning messages which did not appear in <I>pcurses</I>. While the program
+ itself was changed little as development continued with System V
+ Release 4, the table of capabilities grew from 180 (<I>pcurses</I>) to 464
+ (Solaris).
+
+ In early development of ncurses (1993), Zeyd Ben-Halim used the table
+ from <I>mytinfo</I> to extend the <I>pcurses</I> 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 <B>memory_lock_above</B> and <B>memory_unlock</B> (see
+ <B><A HREF="user_caps.5.html">user_caps(5)</A></B>).
+
+ Eric Raymond incorporated parts of <I>mytinfo</I> 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 <B>-x</B> option to support user-defined
+ capabilities.
+
+ In 2010, Roy Marples provided a <B>tic</B> program and terminfo library for
+ NetBSD. That implementation adapts several features from ncurses,
+ including <B>tic</B>'s <B>-x</B> option.
+
+ The <B>-c</B> option tells <B>tic</B> to check for problems in the terminfo source
+ file. Continued development provides additional checks:
+
+ <B>o</B> <I>pcurses</I> had 8 warnings
+
+ <B>o</B> ncurses in 1996 had 16 warnings
+
+ <B>o</B> Solaris (SVr4) curses has 28 warnings
+
+ <B>o</B> NetBSD tic in 2019 has 19 warnings.
+
+ <B>o</B> ncurses in 2019 has 96 warnings
+
+ The checking done in ncurses' <B>tic</B> 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.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 7 (2009) provides a brief description of <B>tic</B>. It
+ lists one option: <B>-c</B>. The omission of <B>-v</B> is unexpected. The change
+ history states that the description is derived from True64 UNIX.
+ According to its manual pages, that system also supported the <B>-v</B>
+ option.
+
+ Shortly after Issue 7 was released, Tru64 was discontinued. As of
+ 2019, the surviving implementations of <B>tic</B> are SVr4 (AIX, HP-UX and
+ Solaris), ncurses and NetBSD curses. The SVr4 <B>tic</B> programs all support
+ the <B>-v</B> option. The NetBSD <B>tic</B> program follows X/Open's documentation,
+ omitting the <B>-v</B> option.
+
+ The X/Open rationale states that some implementations of <B>tic</B> read
+ terminal descriptions from the standard input if the <I>file</I> parameter is
+ omitted. None of these implementations do that. Further, it comments
+ that some may choose to read from "./terminfo.src" but that is
+ obsolescent behavior from SVr2, and is not (for example) a documented
+ feature of SVr3.
+
+
+</PRE><H3><a name="h3-COMPATIBILITY">COMPATIBILITY</a></H3><PRE>
+ There is some evidence that historic <B>tic</B> implementations treated
+ description fields with no whitespace in them as additional aliases or
+ short names. This <B>tic</B> does not do that, but it does warn when
+ description fields may be treated that way and check them for dangerous
+ characters.
+
+
+</PRE><H3><a name="h3-EXTENSIONS">EXTENSIONS</a></H3><PRE>
+ Unlike the SVr4 <B>tic</B> 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 <B><A HREF="terminfo.5.html">terminfo(5)</A></B> 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 <B>use</B>
+ capabilities. This implementation of <B>tic</B> will find <B>use</B> targets
+ anywhere in the source file, or anywhere in the file tree rooted at
+ <B>TERMINFO</B> (if <B>TERMINFO</B> is defined), or in the user's <I>$HOME/.terminfo</I>
+ database (if it exists), or (finally) anywhere in the system's file
+ tree of compiled entries.
+
+ The error messages from this <B>tic</B> have the same format as GNU C error
+ messages, and can be parsed by GNU Emacs's compile facility.
+
+ Aside from <B>-c</B> and <B>-v</B>, options are not portable:
+
+ <B>o</B> Most of tic's options are not supported by SVr4 <B>tic</B>:
+
+ <B>-0</B> <B>-1</B> <B>-C</B> <B>-G</B> <B>-I</B> <B>-N</B> <B>-R</B> <B>-T</B> <B>-V</B> <B>-a</B> <B>-e</B> <B>-f</B> <B>-g</B> <B>-o</B> <B>-r</B> <B>-s</B> <B>-t</B> <B>-x</B>
+
+ <B>o</B> The NetBSD <B>tic</B> supports a few of the ncurses options
+
+ <B>-a</B> <B>-o</B> <B>-x</B>
+
+ and adds <B>-S</B> (a feature which does the same thing as infocmp's <B>-e</B>
+ and <B>-E</B> options).
+
+ The SVr4 <B>-c</B> mode does not report bad "use=" links.
+
+ System V does not compile entries to or read entries from your
+ <I>$HOME/.terminfo</I> database unless TERMINFO is explicitly set to it.