<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 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.45 2010/07/31 16:08:48 tom Exp @
+ * @Id: tic.1m,v 1.53 2011/12/17 23:13:19 tom Exp @
-->
<HTML>
<HEAD>
</PRE>
<H2>SYNOPSIS</H2><PRE>
- <STRONG>tic</STRONG> [<STRONG>-1CGILNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>]
- [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
+ <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>sub-</EM>
+ <EM>set</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
- The command <STRONG>tic</STRONG> translates a <STRONG>terminfo</STRONG> file from source
+ 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 results are normally placed in the system terminfo
- directory <STRONG>/usr/share/terminfo</STRONG>. There are two ways to
- change this behavior.
+ 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> writes only one
+ type of entry, depending on how it was built:
- First, you may override the system default by setting the
- variable <STRONG>TERMINFO</STRONG> in your shell environment to a valid
- (existing) directory name.
+ <STRONG>o</STRONG> For directory trees, the top-level directory, e.g.,
+ /usr/share/terminfo, specifies the location of the
+ database.
- Secondly, if <STRONG>tic</STRONG> cannot get access to <EM>/usr/share/terminfo</EM>
- or your TERMINFO directory, it looks for the directory
- <EM>$HOME/.terminfo</EM>; if that directory exists, the entry is
- placed there.
+ <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.
+
+ The default name for the hashed database is the same
+ as the default directory name (only adding a ".db"
+ suffix).
+
+ 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
+ database. There are two ways to achieve this:
+
+ <STRONG>o</STRONG> First, you may override the system default by setting
+ the variable <STRONG>TERMINFO</STRONG> in your shell environment to a
+ valid database location, e.g., an existing directory
+ (for directory trees) or valid location for a hashed
+ database.
+
+ <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.
Libraries that read terminfo entries are expected to check
- for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
- TERMINFO is not set, and finally look in <EM>/usr/share/ter-</EM>
- <EM>minfo</EM>.
+ for a location specified with the TERMINFO variable first,
+ look at <EM>$HOME/.terminfo</EM> if TERMINFO is not set, and
+ finally look in <EM>/usr/share/terminfo</EM>.
+
+ <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
+ 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
+ <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
+ 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.
-
- <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
+ 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.
+
+ <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 (and a
- documented limit in terminfo), these entries may
- cause core dumps.
+ 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>-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
+ 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
+ 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
+ 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-
+ if/then/else/endif expressions indented for read-
ability.
- <STRONG>-G</STRONG> Display constant literals in decimal form rather
+ <STRONG>-G</STRONG> Display constant literals in decimal form rather
than their character equivalents.
- <STRONG>-g</STRONG> Display constant character literals in quoted form
+ <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>>
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
- also preserves the obsolete capabilities.
-
- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given directory. Over-
- rides the TERMINFO environment variable.
+ <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>,
+ <STRONG>newline</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 sup-
+ presses output of obsolete termcap capabilities
+ such as <STRONG>bs</STRONG>. This option forces a more literal
+ translation that also preserves the obsolete capa-
+ bilities.
+
+ <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location.
+ Overrides the TERMINFO environment variable.
<STRONG>-R</STRONG><EM>subset</EM>
- Restrict output to a given subset. This option is
- for use with archaic versions of terminfo like
+ 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-
+ 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
+ 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
- capabilities per entry.
+ <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
+ 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 multi-
+ ple tc capabilities per entry.
- <STRONG>-s</STRONG> Summarize the compile by showing the directory into
- which entries are written, and the number of
- entries which are compiled.
+ <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.
<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.,
+ 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> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
+ <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
- <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-
+ <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.
<STRONG>-V</STRONG> reports the version of ncurses which was used in this
program, and exits.
- <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
+ <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.
- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
+ <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
optional. If it is omitted, it defaults to 60.
<STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
- if you supply a capability name which <STRONG>tic</STRONG> does not
+ 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
+ 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
+ whose name begins with ``k'' are treated as function
keys.
- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
+ <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 description
- in the file describes the capabilities of a particu-
+ in the file describes the capabilities of a particu-
lar terminal.
The debug flag levels are as follows:
9 All values computed in construction of the hash ta-
ble
- If the debug level <EM>n</EM> is not given, it is taken to be one.
+ If the debug level <EM>n</EM> is not given, it is taken to be one.
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-
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. If the environment
- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
- instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa-
- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
- exception of those capabilities that explicitly are
+ variable <STRONG>TERMINFO</STRONG> is set, that database location is
+ searched instead of <STRONG>/usr/share/terminfo</STRONG>.) <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
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.
+ treated that way and check them for dangerous characters.
</PRE>
<H2>EXTENSIONS</H2><PRE>
Unlike the stock SVr4 <STRONG>tic</STRONG> 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 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap
+ actually compile termcap sources. In fact, entries in
+ terminfo 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>
+ 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> directory (if
- it exists), or (finally) anywhere in the system's file
- tree of compiled entries.
+ 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
+ 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>-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.
+ 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> directory unless TERMINFO is explic-
+ 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.
</PRE>
<H2>SEE ALSO</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="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <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>.
+
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20120107).
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20100731).
+
+</PRE>
+<H2>AUTHOR</H2><PRE>
+ Eric S. Raymond <esr@snark.thyrsus.com> and
+ Thomas E. Dickey <dickey@invisible-island.net>