]> ncurses.scripts.mit.edu Git - ncurses.git/blob - doc/html/man/tic.1m.html
ncurses 6.4 - patch 20240420
[ncurses.git] / doc / html / man / tic.1m.html
1 <!--
2   ****************************************************************************
3   * Copyright 2018-2023,2024 Thomas E. Dickey                                *
4   * Copyright 1998-2016,2017 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.108 2024/03/16 15:35:01 tom Exp @
31 -->
32 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
33 <HTML>
34 <HEAD>
35 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
36 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
37 <TITLE>tic 1m 2024-03-16 ncurses 6.4 User commands</TITLE>
38 <link rel="author" href="mailto:bug-ncurses@gnu.org">
39
40 </HEAD>
41 <BODY>
42 <H1 class="no-header">tic 1m 2024-03-16 ncurses 6.4 User commands</H1>
43 <PRE>
44 <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>                          User commands                         <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
45
46
47
48
49 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
50        <STRONG>tic</STRONG> - compile terminal descriptions for <EM>terminfo</EM> or <EM>termcap</EM>
51
52
53 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
54        <STRONG>tic</STRONG>  [<STRONG>-01acCDfgGIKLNqrstTUVWx</STRONG>] [<STRONG>-e</STRONG> <EM>terminal-type-list</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-Q</STRONG>[<EM>n</EM>]]
55        [<STRONG>-R</STRONG> <EM>subset</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
56
57
58 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
59        The <STRONG>tic</STRONG> command translates a <STRONG>terminfo</STRONG>  file  from  source  format  into
60        compiled  format.   The  compiled  format is necessary for use with the
61        library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
62
63        As described in <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, the database may be either  a  directory  tree
64        (one  file  per  terminal  entry)  or a hashed database (one record per
65        entry).  The <STRONG>tic</STRONG> command writes only one type of  entry,  depending  on
66        how it was built:
67
68        <STRONG>o</STRONG>   For    directory    trees,    the    top-level   directory,   e.g.,
69            /usr/share/terminfo, specifies the location of the database.
70
71        <STRONG>o</STRONG>   For hashed databases, a filename is needed.  If the given  file  is
72            not  found  by  that  name,  but  can be found by adding the suffix
73            ".db", then that is used.
74
75            The default name for the hashed database is the same as the default
76            directory name (only adding a ".db" suffix).
77
78        In  either  case  (directory  or  hashed database), <STRONG>tic</STRONG> will create the
79        container if it does not exist.  For a directory,  this  would  be  the
80        "terminfo" leaf, versus a "terminfo.db" file.
81
82        The  results  are  normally  placed  in  the  system  terminfo database
83        <STRONG>/usr/share/terminfo</STRONG>.  The compiled terminal description can  be  placed
84        in a different terminfo database.  There are two ways to achieve this:
85
86        <STRONG>o</STRONG>   First,  you  may override the system default either by using the <STRONG>-o</STRONG>
87            option,  or  by  setting  the  variable  <EM>TERMINFO</EM>  in  your   shell
88            environment to a valid database location.
89
90        <STRONG>o</STRONG>   Secondly,  if  <STRONG>tic</STRONG>  cannot  write  in  <EM>/usr/share/terminfo</EM>  or  the
91            location specified using your <EM>TERMINFO</EM> variable, it looks  for  the
92            directory  <EM>$HOME/.terminfo</EM> (or hashed database <EM>$HOME/.terminfo.db)</EM>;
93            if that location exists, the entry is placed there.
94
95        Libraries  that  read  terminfo  entries  are  expected  to  check   in
96        succession
97
98        <STRONG>o</STRONG>   a location specified with the <EM>TERMINFO</EM> environment variable,
99
100        <STRONG>o</STRONG>   <EM>$HOME/.terminfo</EM>,
101
102        <STRONG>o</STRONG>   directories listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable,
103
104        <STRONG>o</STRONG>   a compiled-in list of directories (/usr/share/terminfo), and
105
106        <STRONG>o</STRONG>   the system terminfo database (<EM>/usr/share/terminfo</EM>).
107
108        The  <EM>Fetching</EM>  <EM>Compiled</EM>  <EM>Descriptions</EM> section in the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> manual
109        goes into further detail.
110
111
112 </PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
113        This is the same program as infotocap and captoinfo; usually those  are
114        linked to, or copied from this program:
115
116        <STRONG>o</STRONG>   When invoked as infotocap, tic sets the <STRONG>-I</STRONG> option.
117
118        <STRONG>o</STRONG>   When invoked as captoinfo, tic sets the <STRONG>-C</STRONG> option.
119
120
121 </PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
122        <STRONG>-0</STRONG>     restricts the output to a single line
123
124        <STRONG>-1</STRONG>     restricts the output to a single column
125
126        <STRONG>-a</STRONG>     tells  <STRONG>tic</STRONG>  to  retain  commented-out  capabilities  rather than
127               discarding them.  Capabilities are commented by  prefixing  them
128               with  a  period.  This sets the <STRONG>-x</STRONG> option, because it treats the
129               commented-out entries as user-defined names.  If the  source  is
130               termcap,  accept  the  2-character  names required by version 6.
131               Otherwise these are ignored.
132
133        <STRONG>-C</STRONG>     Force source translation to termcap format.  Note: this  differs
134               from  the  <STRONG>-C</STRONG>  option  of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in that it does not merely
135               translate capability names, but also translates terminfo strings
136               to  termcap  format.  Capabilities that are not translatable are
137               left in the entry under their terminfo names but  commented  out
138               with  two  preceding  dots.  The actual format used incorporates
139               some improvements for escaped characters from  terminfo  format.
140               For a stricter BSD-compatible translation, add the <STRONG>-K</STRONG> option.
141
142               If  this  is  combined  with  <STRONG>-c</STRONG>, <STRONG>tic</STRONG> makes additional checks to
143               report cases where the terminfo values  do  not  have  an  exact
144               equivalent in termcap form.  For example:
145
146               <STRONG>o</STRONG>   <STRONG>sgr</STRONG>  usually  will  not  convert,  because termcap lacks the
147                   ability to work with more than two parameters,  and  because
148                   termcap  lacks many of the arithmetic/logical operators used
149                   in terminfo.
150
151               <STRONG>o</STRONG>   capabilities with more than one delay or with delays  before
152                   the end of the string will not convert completely.
153
154        <STRONG>-c</STRONG>     tells  <STRONG>tic</STRONG>  to  only  check  <EM>file</EM>  for  errors, including syntax
155               problems and bad use-links.  If you specify <STRONG>-C</STRONG>  (<STRONG>-I</STRONG>)  with  this
156               option,  the code will print warnings about entries which, after
157               use resolution, are more than 1023 (4096) bytes long.  Due to  a
158               fixed buffer length in older termcap libraries, as well as buggy
159               checking for the  buffer  length  (and  a  documented  limit  in
160               terminfo),  these  entries  may  cause  core  dumps  with  other
161               implementations.
162
163               <STRONG>tic</STRONG>  checks  string  capabilities  to  ensure  that  those  with
164               parameters  will  be valid expressions.  It does this check only
165               for the predefined string capabilities; those which are  defined
166               with the <STRONG>-x</STRONG> option are ignored.
167
168        <STRONG>-D</STRONG>     tells  <STRONG>tic</STRONG>  to print the database locations that it knows about,
169               and exit.  The first location shown is the one to which it would
170               write  compiled  terminal  descriptions.   If <STRONG>tic</STRONG> is not able to
171               find  a  writable  database  location  according  to  the  rules
172               summarized  above,  it  will print a diagnostic and exit with an
173               error rather than printing a list of database locations.
174
175        <STRONG>-e</STRONG> <EM>list</EM>
176               Limit writes and translations to  the  comma-separated  <EM>list</EM>  of
177               terminal  types.  If any name or alias of a terminal matches one
178               of the  names  in  the  list,  the  entry  will  be  written  or
179               translated as normal.  Otherwise no output will be generated for
180               it.  The option value is interpreted as a  file  containing  the
181               list  if  it  contains  a  '/'.  (Note: depending on how tic was
182               compiled, this option may require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
183
184        <STRONG>-f</STRONG>     Display    complex    terminfo     strings     which     contain
185               if/then/else/endif expressions indented for readability.
186
187        <STRONG>-G</STRONG>     Display  constant  literals  in  decimal  form rather than their
188               character equivalents.
189
190        <STRONG>-g</STRONG>     Display constant character literals in quoted form  rather  than
191               their decimal equivalents.
192
193        <STRONG>-I</STRONG>     Force source translation to terminfo format.
194
195        <STRONG>-K</STRONG>     Suppress some longstanding <EM>ncurses</EM> extensions to termcap format,
196               e.g., "\s" for space.
197
198        <STRONG>-L</STRONG>     Force source translation to terminfo format  using  the  long  C
199               variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
200
201        <STRONG>-N</STRONG>     Disable smart defaults.  Normally, when translating from termcap
202               to terminfo, the compiler makes a number  of  assumptions  about
203               the    defaults    of    string    capabilities   <STRONG>reset1_string</STRONG>,
204               <STRONG>carriage_return</STRONG>, <STRONG>cursor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>,  <STRONG>tab</STRONG>,
205               <STRONG>newline</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then attempts to
206               use obsolete termcap capabilities to deduce correct values.   It
207               also normally suppresses output of obsolete termcap capabilities
208               such as <STRONG>bs</STRONG>.  This option forces a more literal translation  that
209               also preserves the obsolete capabilities.
210
211        <STRONG>-o</STRONG><EM>dir</EM>  Write  compiled  entries  to given database location.  Overrides
212               the <EM>TERMINFO</EM> environment variable.
213
214        <STRONG>-Q</STRONG><EM>n</EM>    Rather than show source in terminfo  (text)  format,  print  the
215               compiled   (binary)   format  in  hexadecimal  or  base64  form,
216               depending on the option's value:
217
218                1  hexadecimal
219
220                2  base64
221
222                3  hexadecimal and base64
223
224        <STRONG>-q</STRONG>     Suppress  comments  and  blank  lines  when  showing  translated
225               source.
226
227        <STRONG>-R</STRONG><EM>subset</EM>
228               Restrict  output to a given subset.  This option is for use with
229               archaic versions of terminfo like those on SVr1, Ultrix, or  HP-
230               UX that do not support the full set of SVR4/XSI Curses terminfo;
231               and outright broken ports like  AIX  3.x  that  have  their  own
232               extensions incompatible with SVr4/XSI.
233
234               Available subsets are
235               "SVr1", "Ultrix", "HP", "BSD", and "AIX"
236
237               See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
238
239        <STRONG>-r</STRONG>     Force   entry   resolution   (so   there  are  no  remaining  tc
240               capabilities) even when doing  translation  to  termcap  format.
241               This  may  be  needed  if you are preparing a termcap file for a
242               termcap library (such as GNU termcap through version 1.3 or  BSD
243               termcap  through  4.3BSD)  that  does  not  handle  multiple  tc
244               capabilities per entry.
245
246        <STRONG>-s</STRONG>     Summarize the compile by  showing  the  database  location  into
247               which  entries  are written, and the number of entries which are
248               compiled.
249
250        <STRONG>-T</STRONG>     eliminates size-restrictions on the  generated  text.   This  is
251               mainly  useful  for  testing  and  analysis,  since the compiled
252               descriptions are limited  (e.g.,  1023  for  termcap,  4096  for
253               terminfo).
254
255        <STRONG>-t</STRONG>     tells  <STRONG>tic</STRONG> to discard commented-out capabilities.  Normally when
256               translating   from   terminfo   to    termcap,    untranslatable
257               capabilities are commented-out.
258
259        <STRONG>-U</STRONG>   tells  <STRONG>tic</STRONG>  to  not post-process the data after parsing the source
260             file.  Normally, it infers data which is commonly missing in older
261             terminfo data, or in termcaps.
262
263        <STRONG>-V</STRONG>   reports the version of <EM>ncurses</EM> which was used in this program, and
264             exits.
265
266        <STRONG>-v</STRONG><EM>n</EM>  specifies that (verbose) output be written to standard error trace
267             information showing <STRONG>tic</STRONG>'s progress.
268
269             The  optional  parameter  <EM>n</EM>  is  a  number from 1 to 9, inclusive,
270             indicating the desired level of detail of information.
271
272             <STRONG>o</STRONG>   If <EM>ncurses</EM> is built  without  tracing  support,  the  optional
273                 parameter is ignored.
274
275             <STRONG>o</STRONG>   If <EM>n</EM> is omitted, the default level is 1.
276
277             <STRONG>o</STRONG>   If  <EM>n</EM>  is specified and greater than 1, the level of detail is
278                 increased,  and  the   output   is   written   (with   tracing
279                 information) to the "trace" file.
280
281             The debug flag levels are as follows:
282
283             1   Names of files created and linked
284
285             2   Information related to the "use" facility
286
287             3   Statistics from the hashing algorithm
288
289             4   Details of extended capabilities
290
291             5   (unused)
292
293             6   (unused)
294
295             7   Entries into the string-table
296
297             8   List of tokens encountered by scanner
298
299             9   All values computed in construction of the hash table
300
301        <STRONG>-W</STRONG>   By  itself,  the  <STRONG>-w</STRONG>  option  will  not  force  long strings to be
302             wrapped.  Use the <STRONG>-W</STRONG> option to do this.
303
304             If you specify both <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options, the latter is ignored  when
305             <STRONG>-f</STRONG> has already split the line.
306
307        <STRONG>-w</STRONG><EM>n</EM>  specifies the width of the output.  The parameter is optional.  If
308             it is omitted, it defaults to 60.
309
310        <STRONG>-x</STRONG>   Treat unknown capabilities  as  user-defined  (see  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
311             That  is,  if  you  supply  a  capability  name which <STRONG>tic</STRONG> does not
312             recognize, it will infer its type (Boolean, number or string) from
313             the  syntax  and  make  an  extended  table entry for that.  User-
314             defined capability strings whose name begins with "k" are  treated
315             as function keys.
316
317
318 </PRE><H3><a name="h3-Parameters">Parameters</a></H3><PRE>
319        <EM>file</EM>   contains  one  or  more <STRONG>terminfo</STRONG> terminal descriptions in source
320               format  [see  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>].   Each  description  in   the   file
321               describes the capabilities of a particular terminal.
322
323               If  <EM>file</EM>  is "-", then the data is read from the standard input.
324               The <EM>file</EM> parameter may also be the path of a character-device.
325
326
327 </PRE><H3><a name="h3-Processing">Processing</a></H3><PRE>
328        All but one of the capabilities recognized by  <STRONG>tic</STRONG>  are  documented  in
329        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  The exception is the <STRONG>use</STRONG> capability.
330
331        When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal entry currently
332        being compiled, <STRONG>tic</STRONG> reads in the  binary  from  <STRONG>/usr/share/terminfo</STRONG>  to
333        complete  the  entry.   (Entries  created from <EM>file</EM> will be used first.
334        <STRONG>tic</STRONG> duplicates the capabilities in <EM>entry</EM>-<EM>name</EM> for  the  current  entry,
335        with the exception of those capabilities that explicitly are defined in
336        the current entry.
337
338        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,
339        any   canceled   capabilities  in  <EM>entry</EM>_<EM>name</EM>_<EM>2</EM>  must  also  appear  in
340        <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG> for  these  capabilities  to  be  canceled  in
341        <STRONG>entry_name_1</STRONG>.
342
343        Total  compiled  entries cannot exceed 4096 bytes in the legacy storage
344        format, or 32768 using the extended  number  format.   The  name  field
345        cannot  exceed  512  bytes.  Terminal names exceeding the maximum alias
346        length (32 characters on systems with  long  filenames,  14  characters
347        otherwise)  will be truncated to the maximum alias length and a warning
348        message will be printed.
349
350
351 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
352        <EM>/usr/share/terminfo</EM>
353               compiled terminal description database
354
355
356 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
357        There is  some  evidence  that  historic  <STRONG>tic</STRONG>  implementations  treated
358        description  fields with no whitespace in them as additional aliases or
359        short names.  This <STRONG>tic</STRONG>  does  not  do  that,  but  it  does  warn  when
360        description fields may be treated that way and check them for dangerous
361        characters.
362
363
364 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
365        Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can  actually  compile
366        termcap  sources.   In fact, entries in terminfo and termcap syntax can
367        be mixed in a single source file.  See  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  for  the  list  of
368        termcap names taken to be equivalent to terminfo names.
369
370        The  SVr4  manual  pages  are not clear on the resolution rules for <STRONG>use</STRONG>
371        capabilities.   This  implementation  of  <STRONG>tic</STRONG>  will  find  <STRONG>use</STRONG>  targets
372        anywhere  in  the  source  file, or anywhere in the file tree rooted at
373        <EM>TERMINFO</EM> (if <EM>TERMINFO</EM> is defined), or  in  the  user's  <EM>$HOME/.terminfo</EM>
374        database  (if  it  exists),  or (finally) anywhere in the system's file
375        tree of compiled entries.
376
377        The error messages from this <STRONG>tic</STRONG> have the same format as  GNU  C  error
378        messages, and can be parsed by GNU Emacs's compile facility.
379
380        Aside from <STRONG>-c</STRONG> and <STRONG>-v</STRONG>, options are not portable:
381
382        <STRONG>o</STRONG>   Most of tic's options are not supported by SVr4 <STRONG>tic</STRONG>:
383
384            <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> <STRONG>-x</STRONG>
385
386        <STRONG>o</STRONG>   The NetBSD <STRONG>tic</STRONG> supports a few of the <EM>ncurses</EM> options
387
388            <STRONG>-a</STRONG> <STRONG>-o</STRONG> <STRONG>-x</STRONG>
389
390            and  adds  <STRONG>-S</STRONG>  (a feature which does the same thing as infocmp's <STRONG>-e</STRONG>
391            and <STRONG>-E</STRONG> options).
392
393        The SVr4 <STRONG>-c</STRONG> mode does not report bad "use=" links.
394
395        System V does  not  compile  entries  to  or  read  entries  from  your
396        <EM>$HOME/.terminfo</EM> database unless <EM>TERMINFO</EM> is explicitly set to it.
397
398
399 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
400        X/Open  Curses, Issue 7 (2009) provides a brief description of <STRONG>tic</STRONG>.  It
401        lists one option: <STRONG>-c</STRONG>.  The omission of <STRONG>-v</STRONG> is  unexpected.   The  change
402        history  states  that the description is derived from Tru64.  According
403        to its manual pages, that system also supported the <STRONG>-v</STRONG> option.
404
405        Shortly after Issue 7 was released,  Tru64  was  discontinued.   As  of
406        2019,  the  surviving  implementations  of <STRONG>tic</STRONG> are SVr4 (AIX, HP-UX and
407        Solaris), <EM>ncurses</EM> and NetBSD curses.  The SVr4 <STRONG>tic</STRONG> programs all support
408        the  <STRONG>-v</STRONG> option.  The NetBSD <STRONG>tic</STRONG> program follows X/Open's documentation,
409        omitting the <STRONG>-v</STRONG> option.
410
411        The X/Open rationale states  that  some  implementations  of  <STRONG>tic</STRONG>  read
412        terminal  descriptions from the standard input if the <EM>file</EM> parameter is
413        omitted.  None of these implementations do that.  Further, it  comments
414        that  some  may  choose  to  read  from  "./terminfo.src"  but  that is
415        obsolescent behavior from SVr2, and is not (for example)  a  documented
416        feature of SVr3.
417
418
419 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
420        System  V  Release  2  provided  a  <STRONG>tic</STRONG>  utility.  It accepted a single
421        option: <STRONG>-v</STRONG> (optionally  followed  by  a  number).   According  to  Ross
422        Ridge's comment in <EM>mytinfo</EM>, this version of <STRONG>tic</STRONG> was unable to represent
423        cancelled capabilities.
424
425        System V Release 3 provided a different <STRONG>tic</STRONG> utility, written  by  Pavel
426        Curtis,  (originally named "compile" in <EM>pcurses</EM>).  This added an option
427        <STRONG>-c</STRONG> to check the file for errors, with the caveat that errors in  "use="
428        links  would  not  be  reported.   System  V Release 3 documented a few
429        warning messages which did not appear in <EM>pcurses</EM>.   While  the  program
430        itself  was  changed  little  as  development  continued  with System V
431        Release 4, the table of capabilities grew from  180  (<EM>pcurses</EM>)  to  464
432        (Solaris).
433
434        In  early  development of <EM>ncurses</EM> (1993), Zeyd Ben-Halim used the table
435        from <EM>mytinfo</EM> to extend the  <EM>pcurses</EM>  table  to  469  capabilities  (456
436        matched  SVr4, 8 were only in SVr4, 13 were not in SVr4).  Of those 13,
437        11 were ultimately discarded (perhaps to  match  the  draft  of  X/Open
438        Curses).   The exceptions were <STRONG>memory_lock_above</STRONG> and <STRONG>memory_unlock</STRONG> (see
439        <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
440
441        Eric Raymond incorporated parts of <EM>mytinfo</EM> into  <EM>ncurses</EM>  to  implement
442        the  termcap-to-terminfo  source conversion, and extended that to begin
443        development of the corresponding terminfo-to-termcap source conversion,
444        Thomas  Dickey  completed  that  development over the course of several
445        years.
446
447        In 1999, Thomas Dickey added the  <STRONG>-x</STRONG>  option  to  support  user-defined
448        capabilities.
449
450        In  2010,  Roy  Marples provided a <STRONG>tic</STRONG> program and terminfo library for
451        NetBSD.  That implementation  adapts  several  features  from  <EM>ncurses</EM>,
452        including <STRONG>tic</STRONG>'s <STRONG>-x</STRONG> option.
453
454        The  <STRONG>-c</STRONG>  option  tells <STRONG>tic</STRONG> to check for problems in the terminfo source
455        file.  Continued development provides additional checks:
456
457        <STRONG>o</STRONG>   <EM>pcurses</EM> had 8 warnings
458
459        <STRONG>o</STRONG>   <EM>ncurses</EM> in 1996 had 16 warnings
460
461        <STRONG>o</STRONG>   Solaris (SVr4) curses has 28 warnings
462
463        <STRONG>o</STRONG>   NetBSD tic in 2019 has 19 warnings.
464
465        <STRONG>o</STRONG>   <EM>ncurses</EM> in 2019 has 96 warnings
466
467        The checking done in <EM>ncurses</EM>' <STRONG>tic</STRONG> helps with the conversion to termcap,
468        as well as pointing out errors and inconsistencies.  It is also used to
469        ensure consistency with the user-defined capabilities.  There  are  527
470        distinct  capabilities  in <EM>ncurses</EM>' terminal database; 128 of those are
471        user-defined.
472
473
474 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
475        Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
476        Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
477
478
479 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
480        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(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>,
481        <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
482
483
484
485 ncurses 6.4                       2024-03-16                           <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
486 </PRE>
487 <div class="nav">
488 <ul>
489 <li><a href="#h2-NAME">NAME</a></li>
490 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
491 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
492 <ul>
493 <li><a href="#h3-Aliases">Aliases</a></li>
494 </ul>
495 </li>
496 <li><a href="#h2-OPTIONS">OPTIONS</a>
497 <ul>
498 <li><a href="#h3-Parameters">Parameters</a></li>
499 <li><a href="#h3-Processing">Processing</a></li>
500 </ul>
501 </li>
502 <li><a href="#h2-FILES">FILES</a></li>
503 <li><a href="#h2-NOTES">NOTES</a></li>
504 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
505 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
506 <li><a href="#h2-HISTORY">HISTORY</a></li>
507 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
508 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
509 </ul>
510 </div>
511 </BODY>
512 </HTML>