ncurses 5.3
[ncurses.git] / doc / html / man / tic.1m.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <!-- 
3   ****************************************************************************
4   * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
5   *                                                                          *
6   * Permission is hereby granted, free of charge, to any person obtaining a  *
7   * copy of this software and associated documentation files (the            *
8   * "Software"), to deal in the Software without restriction, including      *
9   * without limitation the rights to use, copy, modify, merge, publish,      *
10   * distribute, distribute with modifications, sublicense, and/or sell       *
11   * copies of the Software, and to permit persons to whom the Software is    *
12   * furnished to do so, subject to the following conditions:                 *
13   *                                                                          *
14   * The above copyright notice and this permission notice shall be included  *
15   * in all copies or substantial portions of the Software.                   *
16   *                                                                          *
17   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
18   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
19   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
20   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
21   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
22   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
23   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
24   *                                                                          *
25   * Except as contained in this notice, the name(s) of the above copyright   *
26   * holders shall not be used in advertising or otherwise to promote the     *
27   * sale, use or other dealings in this Software without prior written       *
28   * authorization.                                                           *
29   ****************************************************************************
30   * @Id: tic.1m,v 1.33 2002/10/05 20:06:13 tom Exp @
31 -->
32 <HTML>
33 <HEAD>
34 <TITLE>tic 1m</TITLE>
35 <link rev=made href="mailto:bug-ncurses@gnu.org">
36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
37 </HEAD>
38 <BODY>
39 <H1>tic 1m</H1>
40 <HR>
41 <PRE>
42 <!-- Manpage converted by man2html 3.0.1 -->
43
44 </PRE>
45 <H2>NAME</H2><PRE>
46        <STRONG>tic</STRONG> - the <EM>terminfo</EM> entry-description compiler
47
48
49 </PRE>
50 <H2>SYNOPSIS</H2><PRE>
51        <STRONG>tic</STRONG>  [<STRONG>-1CGILNTVacfgrstx</STRONG>]  [<STRONG>-e</STRONG>  <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>]
52        [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
53
54
55 </PRE>
56 <H2>DESCRIPTION</H2><PRE>
57        The command <STRONG>tic</STRONG> translates a  <STRONG>terminfo</STRONG>  file  from  source
58        format  into compiled format.  The compiled format is nec-
59        essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
60
61        The results are normally placed  in  the  system  terminfo
62        directory  <STRONG>/usr/share/terminfo</STRONG>.   There  are  two  ways to
63        change this behavior.
64
65        First, you may override the system default by setting  the
66        variable  <STRONG>TERMINFO</STRONG>  in  your  shell environment to a valid
67        (existing) directory name.
68
69        Secondly, if <STRONG>tic</STRONG> cannot get access to  <EM>/usr/share/terminfo</EM>
70        or  your  TERMINFO  directory,  it looks for the directory
71        <EM>$HOME/.terminfo</EM>; if that directory exists,  the  entry  is
72        placed there.
73
74        Libraries that read terminfo entries are expected to check
75        for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
76        TERMINFO  is  not set, and finally look in <EM>/usr/share/ter-</EM>
77        <EM>minfo</EM>.
78
79        <STRONG>-1</STRONG>     restricts the output to a single column
80
81        <STRONG>-a</STRONG>     tells  <STRONG>tic</STRONG>  to  retain  commented-out  capabilities
82               rather than discarding them.  Capabilities are com-
83               mented by prefixing them with a period.  This  sets
84               the  <STRONG>-x</STRONG> option, because it treats the commented-out
85               entries as user-defined names.
86
87        <STRONG>-C</STRONG>     Force source translation to termcap format.   Note:
88               this  differs  from the -C option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
89               that it does not merely translate capability names,
90               but  also  translates  terminfo  strings to termcap
91               format.  Capabilities that are not translatable are
92               left  in  the  entry under their terminfo names but
93               commented out with two preceding dots.
94
95        <STRONG>-c</STRONG>     tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors,  including
96               syntax  problems and bad use links.  If you specify
97               <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn-
98               ings about entries which, after use resolution, are
99               more than 1023 (4096) bytes long.  Due to  a  fixed
100               buffer  length  in  older  termcap libraries (and a
101               documented limit in terminfo),  these  entries  may
102               cause core dumps.
103
104        <STRONG>-e</STRONG> <EM>names</EM>
105               Limit  writes  and  translations  to  the following
106               comma-separated list of terminals.  If any name  or
107               alias of a terminal matches one of the names in the
108               list, the entry will be written  or  translated  as
109               normal.   Otherwise no output will be generated for
110               it.  The option value is interpreted as a file con-
111               taining  the  list  if  it  contains a '/'.  (Note:
112               depending on how tic was compiled, this option  may
113               require -I or -C.)
114
115        <STRONG>-f</STRONG>     Display  complex  terminfo  strings  which  contain
116               if/then/else/endif expressions indented  for  read-
117               ability.
118
119        <STRONG>-G</STRONG>     Display  constant  literals  in decimal form rather
120               than their character equivalents.
121
122        <STRONG>-g</STRONG>     Display constant character literals in quoted  form
123               rather than their decimal equivalents.
124
125        <STRONG>-I</STRONG>     Force source translation to terminfo format.
126
127        <STRONG>-L</STRONG>     Force  source  translation to terminfo format using
128               the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
129
130        <STRONG>-N</STRONG>     Disable smart defaults.  Normally, when translating
131               from termcap to terminfo, the compiler makes a num-
132               ber of assumptions about  the  defaults  of  string
133               capabilities  <STRONG>reset1_string</STRONG>,  <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
134               <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>,  <STRONG>scroll_forward</STRONG>,  <STRONG>tab</STRONG>,  <STRONG>new-</STRONG>
135               <STRONG>line</STRONG>,  <STRONG>key_backspace</STRONG>,  <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
136               attempts to use obsolete  termcap  capabilities  to
137               deduce correct values.  It also normally suppresses
138               output of obsolete termcap capabilities such as <STRONG>bs</STRONG>.
139               This  option forces a more literal translation that
140               also preserves the obsolete capabilities.
141
142        <STRONG>-o</STRONG><EM>dir</EM>  Write compiled entries to given  directory.   Over-
143               rides the TERMINFO environment variable.
144
145        <STRONG>-R</STRONG><EM>subset</EM>
146               Restrict  output to a given subset.  This option is
147               for use with  archaic  versions  of  terminfo  like
148               those on SVr1, Ultrix, or HP/UX that do not support
149               the full set of SVR4/XSI Curses terminfo; and  out-
150               right broken ports like AIX 3.x that have their own
151               extensions incompatible with  SVr4/XSI.   Available
152               subsets  are  "SVr1",  "Ultrix",  "HP",  "BSD"  and
153               "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
154
155        <STRONG>-r</STRONG>     Force entry resolution (so there are  no  remaining
156               tc  capabilities)  even  when  doing translation to
157               termcap format.  This may  be  needed  if  you  are
158               preparing  a  termcap  file  for  a termcap library
159               (such as GNU termcap through  version  1.3  or  BSD
160               termcap through 4.3BSD) that does not handle multi-
161               ple tc capabilities per entry.
162
163        <STRONG>-s</STRONG>     Summarize the compile by showing the directory into
164               which  entries  are  written,  and  the  number  of
165               entries which are compiled.
166
167        <STRONG>-T</STRONG>     eliminates size-restrictions on the generated text.
168               This  is  mainly  useful  for testing and analysis,
169               since the compiled descriptions are limited  (e.g.,
170               1023 for termcap, 4096 for terminfo).
171
172        <STRONG>-t</STRONG>     tells  <STRONG>tic</STRONG>  to  discard commented-out capabilities.
173               Normally when translating from terminfo to termcap,
174               untranslatable capabilities are commented-out.
175
176        <STRONG>-V</STRONG>     reports  the  version  of ncurses which was used in
177               this program, and exits.
178
179        <STRONG>-v</STRONG><EM>n</EM>    specifies that (verbose) output be written to stan-
180               dard   error   trace   information   showing  <STRONG>tic</STRONG>'s
181               progress.  The optional integer <EM>n</EM> is a number  from
182               1 to 10, inclusive, indicating the desired level of
183               detail  of  information.   If  <EM>n</EM>  is  omitted,  the
184               default  level is 1.  If <EM>n</EM> is specified and greater
185               than 1, the level of detail is increased.
186
187        <STRONG>-w</STRONG><EM>n</EM>    specifies the width of the output.
188
189        <STRONG>-x</STRONG>     Treat unknown capabilities as  user-defined.   That
190               is,  if you supply a capability name which <STRONG>tic</STRONG> does
191               not recognize, it will  infer  its  type  (boolean,
192               number  or  string)  from  the  syntax  and make an
193               extended table entry for that.
194
195        <EM>file</EM>   contains one or more <STRONG>terminfo</STRONG> terminal descriptions
196               in  source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>].  Each descrip-
197               tion in the file describes the  capabilities  of  a
198               particular terminal.
199
200        The debug flag levels are as follows:
201
202        1      Names of files created and linked
203
204        2      Information related to the ``use'' facility
205
206        3      Statistics from the hashing algorithm
207
208        5      String-table memory allocations
209
210        7      Entries into the string-table
211
212        8      List of tokens encountered by scanner
213
214        9      All  values  computed  in  construction of the hash
215               table
216
217        If the debug level <EM>n</EM> is not given, it is taken to be  one.
218
219        All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
220        umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  The exception is the <STRONG>use</STRONG> capabil-
221        ity.
222
223        When  a  <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM>  field is discovered in a terminal
224        entry currently being compiled, <STRONG>tic</STRONG> reads  in  the  binary
225        from  <STRONG>/usr/share/terminfo</STRONG> to complete the entry.  (Entries
226        created from <EM>file</EM> will be used first.  If the  environment
227        variable  <STRONG>TERMINFO</STRONG>  is  set,  that  directory  is searched
228        instead of <STRONG>/usr/share/terminfo</STRONG>.)  <STRONG>tic</STRONG> duplicates the capa-
229        bilities  in  <EM>entry</EM>-<EM>name</EM>  for  the current entry, with the
230        exception  of  those  capabilities  that  explicitly   are
231        defined in the current entry.
232
233        When    an   entry,   e.g.,   <STRONG>entry_name_1</STRONG>,   contains   a
234        <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM>  field,  any  canceled  capabilities   in
235        <EM>entry</EM>_<EM>name</EM>_<EM>2</EM>  must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
236        for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
237
238        If the environment variable <STRONG>TERMINFO</STRONG> is set, the  compiled
239        results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
240
241        Total compiled entries cannot exceed 4096 bytes.  The name
242        field cannot exceed 512 bytes.  Terminal  names  exceeding
243        the  maximum  alias  length (32 characters on systems with
244        long filenames, 14 characters otherwise) will be truncated
245        to  the maximum alias length and a warning message will be
246        printed.
247
248
249 </PRE>
250 <H2>COMPATIBILITY</H2><PRE>
251        There is some evidence that historic  <STRONG>tic</STRONG>  implementations
252        treated  description  fields with no whitespace in them as
253        additional aliases or short names.  This <STRONG>tic</STRONG> does  not  do
254        that,  but  it  does  warn  when description fields may be
255        treated that way and check them for dangerous  characters.
256
257
258 </PRE>
259 <H2>EXTENSIONS</H2><PRE>
260        Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can
261        actually compile termcap sources.   In  fact,  entries  in
262        terminfo  and  termcap  syntax  can  be  mixed in a single
263        source file.  See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  for  the  list  of  termcap
264        names taken to be equivalent to terminfo names.
265
266        The  SVr4  manual  pages  are  not clear on the resolution
267        rules for <STRONG>use</STRONG> capabilities.  This  implementation  of  <STRONG>tic</STRONG>
268        will find <STRONG>use</STRONG> targets anywhere in the source file, or any-
269        where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG>  is
270        defined),  or  in the user's <EM>$HOME/.terminfo</EM> directory (if
271        it exists), or (finally) anywhere  in  the  system's  file
272        tree of compiled entries.
273
274        The  error  messages from this <STRONG>tic</STRONG> have the same format as
275        GNU C error messages, and can be  parsed  by  GNU  Emacs's
276        compile facility.
277
278        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>,
279        <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under  SVr4.   The
280        SVr4 -c mode does not report bad use links.
281
282        System  V does not compile entries to or read entries from
283        your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is  explic-
284        itly set to it.
285
286
287 </PRE>
288 <H2>FILES</H2><PRE>
289        <STRONG>/usr/share/terminfo/?/*</STRONG>
290             Compiled terminal description database.
291
292
293 </PRE>
294 <H2>SEE ALSO</H2><PRE>
295        <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>,
296        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328 </PRE>
329 <HR>
330 <ADDRESS>
331 Man(1) output converted with
332 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
333 </ADDRESS>
334 </BODY>
335 </HTML>