]> ncurses.scripts.mit.edu Git - ncurses.git/blob - doc/html/man/tic.1m.html
ncurses 6.4 - patch 20231125
[ncurses.git] / doc / html / man / tic.1m.html
1 <!--
2   ****************************************************************************
3   * Copyright 2018-2022,2023 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.101 2023/11/25 23:02:52 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 2023-11-25 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 2023-11-25 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  <STRONG>TERMINFO</STRONG>  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 TERMINFO 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 TERMINFO environment variable,
99
100        <STRONG>o</STRONG>   <EM>$HOME/.terminfo</EM>,
101
102        <STRONG>o</STRONG>   directories listed in the TERMINFO_DIRS 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 ncurses 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 TERMINFO 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 ncurses 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 ncurses 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        <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> 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 ncurses 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 TERMINFO 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 UNIX.
403        According to its manual  pages,  that  system  also  supported  the  <STRONG>-v</STRONG>
404        option.
405
406        Shortly  after  Issue  7  was  released, Tru64 was discontinued.  As of
407        2019, the surviving implementations of <STRONG>tic</STRONG> are  SVr4  (AIX,  HP-UX  and
408        Solaris), ncurses and NetBSD curses.  The SVr4 <STRONG>tic</STRONG> programs all support
409        the <STRONG>-v</STRONG> option.  The NetBSD <STRONG>tic</STRONG> program follows X/Open's  documentation,
410        omitting the <STRONG>-v</STRONG> option.
411
412        The  X/Open  rationale  states  that  some  implementations of <STRONG>tic</STRONG> read
413        terminal descriptions from the standard input if the <EM>file</EM> parameter  is
414        omitted.   None of these implementations do that.  Further, it comments
415        that some  may  choose  to  read  from  "./terminfo.src"  but  that  is
416        obsolescent  behavior  from SVr2, and is not (for example) a documented
417        feature of SVr3.
418
419
420 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
421        System V Release 2 provided  a  <STRONG>tic</STRONG>  utility.   It  accepted  a  single
422        option:  <STRONG>-v</STRONG>  (optionally  followed  by  a  number).   According to Ross
423        Ridge's comment in <EM>mytinfo</EM>, this version of <STRONG>tic</STRONG> was unable to represent
424        cancelled capabilities.
425
426        System  V  Release 3 provided a different <STRONG>tic</STRONG> utility, written by Pavel
427        Curtis, (originally named "compile" in <EM>pcurses</EM>).  This added an  option
428        <STRONG>-c</STRONG>  to check the file for errors, with the caveat that errors in "use="
429        links would not be reported.  System  V  Release  3  documented  a  few
430        warning  messages  which  did not appear in <EM>pcurses</EM>.  While the program
431        itself was changed  little  as  development  continued  with  System  V
432        Release  4,  the  table  of capabilities grew from 180 (<EM>pcurses</EM>) to 464
433        (Solaris).
434
435        In early development of ncurses (1993), Zeyd Ben-Halim used  the  table
436        from  <EM>mytinfo</EM>  to  extend  the  <EM>pcurses</EM>  table to 469 capabilities (456
437        matched SVr4, 8 were only in SVr4, 13 were not in SVr4).  Of those  13,
438        11  were  ultimately  discarded  (perhaps  to match the draft of X/Open
439        Curses).  The exceptions were <STRONG>memory_lock_above</STRONG> and <STRONG>memory_unlock</STRONG>  (see
440        <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
441
442        Eric  Raymond  incorporated  parts of <EM>mytinfo</EM> into ncurses to implement
443        the termcap-to-terminfo source conversion, and extended that  to  begin
444        development of the corresponding terminfo-to-termcap source conversion,
445        Thomas Dickey completed that development over  the  course  of  several
446        years.
447
448        In  1999,  Thomas  Dickey  added  the <STRONG>-x</STRONG> option to support user-defined
449        capabilities.
450
451        In 2010, Roy Marples provided a <STRONG>tic</STRONG> program and  terminfo  library  for
452        NetBSD.   That  implementation  adapts  several  features from ncurses,
453        including <STRONG>tic</STRONG>'s <STRONG>-x</STRONG> option.
454
455        The <STRONG>-c</STRONG> option tells <STRONG>tic</STRONG> to check for problems in  the  terminfo  source
456        file.  Continued development provides additional checks:
457
458        <STRONG>o</STRONG>   <EM>pcurses</EM> had 8 warnings
459
460        <STRONG>o</STRONG>   ncurses in 1996 had 16 warnings
461
462        <STRONG>o</STRONG>   Solaris (SVr4) curses has 28 warnings
463
464        <STRONG>o</STRONG>   NetBSD tic in 2019 has 19 warnings.
465
466        <STRONG>o</STRONG>   ncurses in 2019 has 96 warnings
467
468        The checking done in ncurses' <STRONG>tic</STRONG> helps with the conversion to termcap,
469        as well as pointing out errors and inconsistencies.  It is also used to
470        ensure  consistency  with the user-defined capabilities.  There are 527
471        distinct capabilities in ncurses' terminal database; 128 of  those  are
472        user-defined.
473
474
475 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
476        Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
477        Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
478
479
480 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
481        <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>,
482        <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>
483
484
485
486 ncurses 6.4                       2023-11-25                           <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
487 </PRE>
488 <div class="nav">
489 <ul>
490 <li><a href="#h2-NAME">NAME</a></li>
491 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
492 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
493 <ul>
494 <li><a href="#h3-ALIASES">ALIASES</a></li>
495 </ul>
496 </li>
497 <li><a href="#h2-OPTIONS">OPTIONS</a>
498 <ul>
499 <li><a href="#h3-PARAMETERS">PARAMETERS</a></li>
500 <li><a href="#h3-PROCESSING">PROCESSING</a></li>
501 </ul>
502 </li>
503 <li><a href="#h2-FILES">FILES</a></li>
504 <li><a href="#h2-NOTES">NOTES</a></li>
505 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
506 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
507 <li><a href="#h2-HISTORY">HISTORY</a></li>
508 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
509 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
510 </ul>
511 </div>
512 </BODY>
513 </HTML>