-<!--
+<!--
****************************************************************************
- * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 1998-2016,2017 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 *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tic.1m,v 1.62 2016/10/01 17:14:50 tom Exp @
+ * @Id: tic.1m,v 1.79 2021/06/17 21:30:22 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tic 1m</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>@TIC@ 1M</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1 class="no-header">tic 1m</H1>
+<H1 class="no-header">@TIC@ 1M</H1>
<PRE>
-<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+<B><A HREF="tic.1M.html">tic(1M)</A></B> <B><A HREF="tic.1M.html">tic(1M)</A></B>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>tic</STRONG> - the <EM>terminfo</EM> entry-description compiler
+ <B>tic</B> - the <I>terminfo</I> entry-description compiler
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVWacfgqrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-Q</STRONG>[<EM>n</EM>]]
- [<STRONG>-R</STRONG> <EM>subset</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
+ <B>tic</B> [<B>-01CDGIKLNTUVWacfgqrstx</B>] [<B>-e</B> <I>names</I>] [<B>-o</B> <I>dir</I>] [<B>-Q</B>[<I>n</I>]] [<B>-R</B> <I>subset</I>]
+ [<B>-v</B>[<I>n</I>]] [<B>-w</B>[<I>n</I>]] <I>file</I>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>tic</STRONG> command translates a <STRONG>terminfo</STRONG> file from source
- format into compiled format. The compiled format is nec-
- essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+ The <B>tic</B> command translates a <B>terminfo</B> file from source format into
+ compiled format. The compiled format is necessary for use with the
+ library routines in <B><A HREF="ncurses.3X.html">ncurses(3X)</A></B>.
- As described in <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, the database may be either a
- directory tree (one file per terminal entry) or a hashed
- database (one record per entry). The <STRONG>tic</STRONG> command writes
- only one type of entry, depending on how it was built:
+ As described in <B><A HREF="term.5.html">term(5)</A></B>, the database may be either a directory tree
+ (one file per terminal entry) or a hashed database (one record per
+ entry). The <B>tic</B> command writes only one type of entry, depending on
+ how it was built:
- <STRONG>o</STRONG> For directory trees, the top-level directory, e.g.,
- /usr/share/terminfo, specifies the location of the
- database.
+ <B>o</B> For directory trees, the top-level directory, e.g.,
+ /usr/share/terminfo, specifies the location of the database.
- <STRONG>o</STRONG> For hashed databases, a filename is needed. If the
- given file is not found by that name, but can be found
- by adding the suffix ".db", then that is used.
+ <B>o</B> For hashed databases, a filename is needed. If the given file is
+ not found by that name, but can be found by adding the suffix
+ ".db", then that is used.
- The default name for the hashed database is the same
- as the default directory name (only adding a ".db"
- suffix).
+ The default name for the hashed database is the same as the default
+ directory name (only adding a ".db" suffix).
- In either case (directory or hashed database), <STRONG>tic</STRONG> will
- create the container if it does not exist. For a direc-
- tory, this would be the "terminfo" leaf, versus a "ter-
- minfo.db" file.
+ In either case (directory or hashed database), <B>tic</B> will create the
+ container if it does not exist. For a directory, this would be the
+ "terminfo" leaf, versus a "terminfo.db" file.
- The results are normally placed in the system terminfo
- database <STRONG>/usr/share/terminfo</STRONG>. The compiled terminal
- description can be placed in a different terminfo data-
- base. There are two ways to achieve this:
+ The results are normally placed in the system terminfo database
+ <B>/usr/share/terminfo</B>. The compiled terminal description can be placed
+ in a different terminfo database. There are two ways to achieve this:
- <STRONG>o</STRONG> First, you may override the system default either by
- using the <STRONG>-o</STRONG> option, or by setting the variable <STRONG>TER-</STRONG>
- <STRONG>MINFO</STRONG> in your shell environment to a valid database
- location.
+ <B>o</B> First, you may override the system default either by using the <B>-o</B>
+ option, or by setting the variable <B>TERMINFO</B> in your shell
+ environment to a valid database location.
- <STRONG>o</STRONG> Secondly, if <STRONG>tic</STRONG> cannot write in <EM>/usr/share/terminfo</EM>
- or the location specified using your TERMINFO vari-
- able, it looks for the directory <EM>$HOME/.terminfo</EM> (or
- hashed database <EM>$HOME/.terminfo.db)</EM>; if that location
- exists, the entry is placed there.
+ <B>o</B> Secondly, if <B>tic</B> cannot write in <I>/usr/share/terminfo</I> or the
+ location specified using your TERMINFO variable, it looks for the
+ directory <I>$HOME/.terminfo</I> (or hashed database <I>$HOME/.terminfo.db)</I>;
+ if that location exists, the entry is placed there.
- Libraries that read terminfo entries are expected to check
- in succession
+ Libraries that read terminfo entries are expected to check in
+ succession
- <STRONG>o</STRONG> a location specified with the TERMINFO environment
- variable,
+ <B>o</B> a location specified with the TERMINFO environment variable,
- <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>,
+ <B>o</B> <I>$HOME/.terminfo</I>,
- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment
- variable,
+ <B>o</B> directories listed in the TERMINFO_DIRS environment variable,
- <STRONG>o</STRONG> a compiled-in list of directories
- (/usr/local/ncurses/share/terminfo:/usr/share/ter-
- minfo), and
+ <B>o</B> a compiled-in list of directories (no default value), and
- <STRONG>o</STRONG> the system terminfo database (<EM>/usr/share/terminfo</EM>).
+ <B>o</B> the system terminfo database (<I>/usr/share/terminfo</I>).
+
+
+</PRE><H3><a name="h3-ALIASES">ALIASES</a></H3><PRE>
+ This is the same program as infotocap and captoinfo; usually those are
+ linked to, or copied from this program:
+
+ <B>o</B> When invoked as infotocap, tic sets the <B>-I</B> option.
+
+ <B>o</B> When invoked as captoinfo, tic sets the <B>-C</B> option.
</PRE><H3><a name="h3-OPTIONS">OPTIONS</a></H3><PRE>
- <STRONG>-0</STRONG> restricts the output to a single line
-
- <STRONG>-1</STRONG> restricts the output to a single column
-
- <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities
- rather than discarding them. Capabilities are com-
- mented by prefixing them with a period. This sets
- the <STRONG>-x</STRONG> option, because it treats the commented-out
- entries as user-defined names. If the source is
- termcap, accept the 2-character names required by
- version 6. Otherwise these are ignored.
-
- <STRONG>-C</STRONG> Force source translation to termcap format. Note:
- this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> 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. For a
- stricter BSD-compatible translation, add the <STRONG>-K</STRONG>
- option.
-
- If this is combined with <STRONG>-c</STRONG>, <STRONG>tic</STRONG> makes additional
- checks to report cases where the terminfo values do
- not have an exact equivalent in termcap form. For
- example:
-
- <STRONG>o</STRONG> <STRONG>sgr</STRONG> 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 ter-
- minfo.
-
- <STRONG>o</STRONG> capabilities with more than one delay or with
- delays before the end of the string will not
- convert completely.
-
- <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including
- syntax problems and bad use links. If you specify
- <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn-
- ings 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 doc-
- umented limit in terminfo), these entries may cause
- core dumps with other implementations.
-
- <STRONG>tic</STRONG> checks string capabilities to ensure that those
- with parameters will be valid expressions. It does
- this check only for the predefined string capabili-
- ties; those which are defined with the <STRONG>-x</STRONG> option
- are ignored.
-
- <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> 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 <STRONG>tic</STRONG> is not able to find a
- writable database location according to the rules
- summarized above, it will print a diagnostic and
- exit with an error rather than printing a list of
- database locations.
-
- <STRONG>-e</STRONG> <EM>names</EM>
- 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 con-
- taining the list if it contains a '/'. (Note:
- depending on how tic was compiled, this option may
- require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
-
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for read-
- ability.
-
- <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> Force source translation to terminfo format.
-
- <STRONG>-K</STRONG> Suppress some longstanding ncurses extensions to
- termcap format, e.g., "\s" for space.
-
- <STRONG>-L</STRONG> Force source translation to terminfo format using
- the long C variable names listed in <<STRONG>term.h</STRONG>>
-
- <STRONG>-N</STRONG> Disable smart defaults. Normally, when translating
- from termcap to terminfo, the compiler makes a num-
- ber of assumptions about the defaults of string
- capabilities <STRONG>reset1_string</STRONG>, <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
- <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>, <STRONG>new-</STRONG>
- <STRONG>line</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
- attempts to use obsolete termcap capabilities to
- deduce correct values. It also normally suppresses
- output of obsolete termcap capabilities such as <STRONG>bs</STRONG>.
- This option forces a more literal translation that
+ <B>-0</B> restricts the output to a single line
+
+ <B>-1</B> restricts the output to a single column
+
+ <B>-a</B> tells <B>tic</B> to retain commented-out capabilities rather than
+ discarding them. Capabilities are commented by prefixing them
+ with a period. This sets the <B>-x</B> option, because it treats the
+ commented-out entries as user-defined names. If the source is
+ termcap, accept the 2-character names required by version 6.
+ Otherwise these are ignored.
+
+ <B>-C</B> Force source translation to termcap format. Note: this differs
+ from the <B>-C</B> option of <B><A HREF="infocmp.1M.html">infocmp(1M)</A></B> 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.
+ For a stricter BSD-compatible translation, add the <B>-K</B> option.
+
+ If this is combined with <B>-c</B>, <B>tic</B> makes additional checks to
+ report cases where the terminfo values do not have an exact
+ equivalent in termcap form. For example:
+
+ <B>o</B> <B>sgr</B> 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.
+
+ <B>o</B> capabilities with more than one delay or with delays before
+ the end of the string will not convert completely.
+
+ <B>-c</B> tells <B>tic</B> to only check <I>file</I> for errors, including syntax
+ problems and bad use-links. If you specify <B>-C</B> (<B>-I</B>) 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
+ terminfo), these entries may cause core dumps with other
+ implementations.
+
+ <B>tic</B> checks string capabilities to ensure that those with
+ parameters will be valid expressions. It does this check only
+ for the predefined string capabilities; those which are defined
+ with the <B>-x</B> option are ignored.
+
+ <B>-D</B> tells <B>tic</B> 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 <B>tic</B> is not able to
+ find a writable database location according to the rules
+ summarized above, it will print a diagnostic and exit with an
+ error rather than printing a list of database locations.
+
+ <B>-e</B> <I>names</I>
+ 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
+ list if it contains a '/'. (Note: depending on how tic was
+ compiled, this option may require <B>-I</B> or <B>-C</B>.)
+
+ <B>-f</B> Display complex terminfo strings which contain
+ if/then/else/endif expressions indented for readability.
+
+ <B>-G</B> Display constant literals in decimal form rather than their
+ character equivalents.
+
+ <B>-g</B> Display constant character literals in quoted form rather than
+ their decimal equivalents.
+
+ <B>-I</B> Force source translation to terminfo format.
+
+ <B>-K</B> Suppress some longstanding ncurses extensions to termcap format,
+ e.g., "\s" for space.
+
+ <B>-L</B> Force source translation to terminfo format using the long C
+ variable names listed in <<B>term.h</B>>
+
+ <B>-N</B> Disable smart defaults. Normally, when translating from termcap
+ to terminfo, the compiler makes a number of assumptions about
+ the defaults of string capabilities <B>reset1_string</B>,
+ <B>carriage_return</B>, <B>cursor_left</B>, <B>cursor_down</B>, <B>scroll_forward</B>, <B>tab</B>,
+ <B>newline</B>, <B>key_backspace</B>, <B>key_left</B>, and <B>key_down</B>, then attempts to
+ use obsolete termcap capabilities to deduce correct values. It
+ also normally suppresses output of obsolete termcap capabilities
+ such as <B>bs</B>. This option forces a more literal translation that
also preserves the obsolete capabilities.
- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location.
- Overrides the TERMINFO environment variable.
+ <B>-o</B><I>dir</I> Write compiled entries to given database location. Overrides
+ the TERMINFO environment variable.
- <STRONG>-Q</STRONG><EM>n</EM> Rather than show source in terminfo (text) format,
- print the compiled (binary) format in hexadecimal
- or base64 form, depending on the option's value:
+ <B>-Q</B><I>n</I> 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
3 hexadecimal and base64
- <STRONG>-q</STRONG> Suppress comments and blank lines when showing
- translated source.
-
- <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 out-
- right 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 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
-
- <STRONG>-r</STRONG> Force entry resolution (so there are no remaining
- tc capabilities) even when doing translation to
- termcap format. This may be needed if you are pre-
- paring 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
+ <B>-q</B> Suppress comments and blank lines when showing translated
+ source.
+
+ <B>-R</B><I>subset</I>
+ 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 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 <B><A HREF="terminfo.5.html">terminfo(5)</A></B> for
+ details.
+
+ <B>-r</B> Force entry resolution (so there are no remaining tc
+ capabilities) 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.
- <STRONG>-s</STRONG> Summarize the compile by showing the database loca-
- tion into which entries are written, and the number
- of entries which are compiled.
+ <B>-s</B> Summarize the compile by showing the database location into
+ which entries are written, and the number of entries which are
+ compiled.
+
+ <B>-T</B> 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> 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).
+ <B>-t</B> tells <B>tic</B> to discard commented-out capabilities. Normally when
+ translating from terminfo to termcap, untranslatable
+ capabilities are commented-out.
- <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
- Normally when translating from terminfo to termcap,
- untranslatable capabilities are commented-out.
+ <B>-U</B> tells <B>tic</B> 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.
- <STRONG>-U</STRONG> tells <STRONG>tic</STRONG> 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 term-
- caps.
+ <B>-V</B> reports the version of ncurses which was used in this program, and
+ exits.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
+ <B>-v</B><I>n</I> specifies that (verbose) output be written to standard error trace
+ information showing <B>tic</B>'s progress.
- <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to stan-
- dard error trace information showing <STRONG>tic</STRONG>'s progress.
- The optional parameter <EM>n</EM> is a number from 1 to 10,
- inclusive, indicating the desired level of detail of
- information. If <EM>n</EM> is omitted, the default level is
- 1. If <EM>n</EM> is specified and greater than 1, the level
- of detail is increased.
+ The optional parameter <I>n</I> 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. If <I>n</I> is omitted, the default level is 1. If <I>n</I> is
+ specified and greater than 1, the level of detail is increased.
The debug flag levels are as follows:
8 List of tokens encountered by scanner
- 9 All values computed in construction of the
- hash table
+ 9 All values computed in construction of the hash table
- If the debug level <EM>n</EM> is not given, it is taken to be
- one.
+ If the debug level <I>n</I> is not given, it is taken to be one.
- <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings
- to be wrapped. Use the <STRONG>-W</STRONG> option to do this.
+ <B>-W</B> By itself, the <B>-w</B> option will not force long strings to be
+ wrapped. Use the <B>-W</B> option to do this.
- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
- optional. If it is omitted, it defaults to 60.
+ If you specify both <B>-f</B> and <B>-W</B> options, the latter is ignored when
+ <B>-f</B> has already split the line.
- <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
- if you supply a capability name which <STRONG>tic</STRONG> 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.
+ <B>-w</B><I>n</I> specifies the width of the output. The parameter is optional. If
+ it is omitted, it defaults to 60.
+
+ <B>-x</B> Treat unknown capabilities as user-defined (see <B>user_caps(5)</B>).
+ That is, if you supply a capability name which <B>tic</B> 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.
</PRE><H3><a name="h3-PARAMETERS">PARAMETERS</a></H3><PRE>
- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
- in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each descrip-
- tion in the file describes the capabilities of a
- particular terminal.
+ <I>file</I> contains one or more <B>terminfo</B> terminal descriptions in source
+ format [see <B><A HREF="terminfo.5.html">terminfo(5)</A></B>]. Each description in the file
+ describes the capabilities of a particular terminal.
- If <EM>file</EM> is "-", then the data is read from the
- standard input. The <EM>file</EM> parameter may also be the
- path of a character-device.
+ If <I>file</I> is "-", then the data is read from the standard input.
+ The <I>file</I> parameter may also be the path of a character-device.
</PRE><H3><a name="h3-PROCESSING">PROCESSING</a></H3><PRE>
- 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.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- <STRONG>/usr/share/terminfo/?/*</STRONG>
+ <B>/usr/share/terminfo/?/*</B>
Compiled terminal description database.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(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="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <B><A HREF="captoinfo.1M.html">captoinfo(1M)</A></B>, <B><A HREF="infocmp.1M.html">infocmp(1M)</A></B>, <B><A HREF="infotocap.1M.html">infotocap(1M)</A></B>, <B><A HREF="toe.1M.html">toe(1M)</A></B>, <B><A HREF="curses.3X.html">curses(3X)</A></B>,
+ <B><A HREF="term.5.html">term(5)</A></B>. <B><A HREF="terminfo.5.html">terminfo(5)</A></B>. <B><A HREF="user_caps.5.html">user_caps(5)</A></B>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161224).
+ This describes <B>ncurses</B> version 6.2 (patch 20210612).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+ <B><A HREF="tic.1M.html">tic(1M)</A></B>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
+<li><a href="#h3-ALIASES">ALIASES</a></li>
<li><a href="#h3-OPTIONS">OPTIONS</a></li>
<li><a href="#h3-PARAMETERS">PARAMETERS</a></li>
<li><a href="#h3-PROCESSING">PROCESSING</a></li>
</ul>
</li>
-<li><a href="#h2-COMPATIBILITY">COMPATIBILITY</a></li>
-<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<ul>
+<li><a href="#h3-COMPATIBILITY">COMPATIBILITY</a></li>
+<li><a href="#h3-EXTENSIONS">EXTENSIONS</a></li>
+</ul>
+</li>
<li><a href="#h2-FILES">FILES</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
<li><a href="#h2-AUTHOR">AUTHOR</a></li>