Annotation of src/usr.bin/tic/tic.1, Revision 1.9
1.9 ! millert 1: .\" $OpenBSD: tic.1,v 1.8 1999/12/12 04:49:19 millert Exp $
1.1 millert 2: .\"
3: .\"***************************************************************************
1.4 millert 4: .\" Copyright (c) 1998,1999 Free Software Foundation, Inc. *
1.1 millert 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: .\"
1.6 millert 31: .\" $From: tic.1m,v 1.25 1999/03/07 02:07:06 tom Exp $
1.1 millert 32: .TH tic 1 ""
33: .ds n 5
34: .ds d /usr/share/terminfo
35: .SH NAME
36: \fBtic\fR - the \fIterminfo\fR entry-description compiler
37: .SH SYNOPSIS
38: \fBtic\fR
1.3 millert 39: [\fB\-\
1.1 millert 40: 1\
41: C\
42: I\
43: N\
44: R\
45: T\
46: c\
47: f\
48: r\
49: s\
1.9 ! millert 50: x\
1.1 millert 51: \fR]
52: [\fB-e\fR \fInames\fR]
53: [\fB-o\fR \fIdir\fR]
54: [\fB-v\fR[\fIn\fR]]
55: [\fB-w\fR[\fIn\fR]]
56: \fIfile\fR
57: .br
58: .SH DESCRIPTION
59: The command \fBtic\fR translates a \fBterminfo\fR file from source
60: format into compiled format. The compiled format is necessary for use with
61: the library routines in \fBcurses\fR(3).
62: .PP
63: The results are normally placed in the system terminfo
64: directory \fB\*d\fR. There are two ways to change this behavior.
65: .PP
66: First, you may override the system default by setting the variable
67: \fBTERMINFO\fR in your shell environment to a valid (existing) directory name.
68: .PP
69: Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO
70: directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory
71: exists, the entry is placed there.
72: .PP
73: Libraries that read terminfo entries are expected to check for a TERMINFO
74: directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
75: finally look in \fI\*d\fR.
76: .TP
77: \fB-c\fR
78: specifies to only check \fIfile\fR for errors, including syntax problems and
79: bad use links. If you specify \fB-C\fR (\fB-I\fR) with this option, the code
80: will print warnings about entries which, after use resolution, are more than
81: 1023 (4096) bytes long. Due to a fixed buffer length in older termcap
82: libraries (and a documented limit in terminfo), these entries may cause core
83: dumps.
84: .TP
85: \fB-v\fR\fIn\fR
86: specifies that (verbose) output be written to standard error trace
87: information showing \fBtic\fR's progress. The optional integer
88: \fIn\fR is a number from 1 to 10, inclusive, indicating the desired
89: level of detail of information. If \fIn\fR is omitted, the default
90: level is 1. If \fIn\fR is specified and greater than 1, the level of
91: detail is increased.
92: .TP
93: \fB-o\fR\fIdir\fR
94: Write compiled entries to given directory. Overrides the TERMINFO environment
95: variable.
96: .TP
97: \fB-w\fR\fIn\fR
98: specifies the width of the output.
99: .TP
100: \fB-1\fR
101: restricts the output to a single column
102: .TP
103: \fB-C\fR
104: Force source translation to termcap format. Note: this differs from the -C
105: option of \fIinfocmp\fR(1) in that it does not merely translate capability
106: names, but also translates terminfo strings to termcap format. Capabilities
107: that are not translatable are left in the entry under their terminfo names
108: but commented out with two preceding dots.
109: .TP
1.6 millert 110: \fB-G\fR
111: Display constant literals in decimal form
112: rather than their character equivalents.
113: .TP
1.1 millert 114: \fB-I\fR
115: Force source translation to terminfo format.
116: .TP
117: \fB-L\fR
118: Force source translation to terminfo format
119: using the long C variable names listed in <\fBterm.h\fR>
120: .TP
121: \fB-N\fR
1.7 aaron 122: Disable smart defaults.
123: Normally, when translating from termcap to terminfo, the compiler makes
1.1 millert 124: a number of assumptions about the defaults of string capabilities
1.7 aaron 125: \fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
1.1 millert 126: \fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR,
127: \fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts
128: to use obsolete termcap capabilities to deduce correct values. It also
129: normally suppresses output of obsolete termcap capabilities such as \fBbs\fR.
130: This option forces a more literal translation that also preserves the
131: obsolete capabilities.
132: .TP
133: \fB-R\fR\fIsubset\fR
134: Restrict output to a given subset. This option is for use with archaic
135: versions of terminfo like those on SVr1, Ultrix, or HP/UX that don't support
136: the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x
137: that have their own extensions incompatible with SVr4/XSI. Available subsets
138: are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
139: .TP
140: \fB-T\fR
141: eliminates size-restrictions on the generated text.
142: This is mainly useful for testing and analysis, since the compiled
143: descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
144: .TP
145: \fB-r\fR
146: Force entry resolution (so there are no remaining tc capabilities) even
147: when doing translation to termcap format. This may be needed if you are
148: preparing a termcap file for a termcap library (such as GNU termcap up
149: to version 1.3 or BSD termcap up to 4.3BSD) that doesn't handle multiple
150: tc capabilities per entry.
151: .TP
152: \fB-e\fR
153: Limit writes and translations to the following comma-separated list of
154: terminals.
155: If any name or alias of a terminal matches one of the names in
156: the list, the entry will be written or translated as normal.
157: Otherwise no output will be generated for it.
158: The option value is interpreted as a file containing the list if it
159: contains a '/'.
160: (Note: depending on how tic was compiled, this option may require -I or -C.)
161: .TP
162: \fB-f\fR
163: Display complex terminfo strings which contain if/then/else/endif expressions
164: indented for readability.
165: .TP
1.3 millert 166: \fB-g\fR
167: Display constant character literals in quoted form
168: rather than their decimal equivalents.
169: .TP
1.1 millert 170: \fB-s\fR
171: Summarize the compile by showing the directory into which entries
172: are written, and the number of entries which are compiled.
173: .TP
1.9 ! millert 174: \fB-x\fR
! 175: Treat unknown capabilities as user-defined.
! 176: .TP
1.1 millert 177: \fIfile\fR
178: contains one or more \fBterminfo\fR terminal descriptions in source
179: format [see \fBterminfo\fR(\*n)]. Each description in the file
180: describes the capabilities of a particular terminal.
181: .PP
182: The debug flag levels are as follows:
183: .TP
184: 1
185: Names of files created and linked
186: .TP
187: 2
188: Information related to the ``use'' facility
189: .TP
190: 3
191: Statistics from the hashing algorithm
192: .TP
193: 5
194: String-table memory allocations
195: .TP
196: 7
197: Entries into the string-table
198: .TP
199: 8
200: List of tokens encountered by scanner
201: .TP
202: 9
203: All values computed in construction of the hash table
204: .LP
205: If n is not given, it is taken to be one.
206: .PP
207: All but one of the capabilities recognized by \fBtic\fR are documented
208: in \fBterminfo\fR(\*n). The exception is the \fBuse\fR capability.
209:
210: When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a
211: terminal entry currently being compiled, \fBtic\fR reads in the binary
212: from \fB\*d\fR to complete the entry. (Entries created from
213: \fIfile\fR will be used first. If the environment variable
214: \fBTERMINFO\fR is set, that directory is searched instead of
215: \fB\*d\fR.) \fBtic\fR duplicates the capabilities in
216: \fIentry\fR-\fIname\fR for the current entry, with the exception of
217: those capabilities that explicitly are defined in the current entry.
218:
219: When an entry, e.g., \fBentry_name_1\fR, contains a
220: \fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled
221: capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in
222: \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
223: canceled in \fBentry_name_1\fR.
224:
225: If the environment variable \fBTERMINFO\fR is set, the compiled
226: results are placed there instead of \fB\*d\fR.
227:
228: Total compiled entries cannot exceed 4096 bytes. The name field cannot
229: exceed 512 bytes. Terminal names exceeding the maximum alias length
230: (32 characters on systems with long filenames, 14 characters otherwise)
231: will be truncated to the maximum alias length and a warning message will be printed.
232: .SH COMPATIBILITY
233: There is some evidence that historic \fBtic\fR implementations treated
234: description fields with no whitespace in them as additional aliases or
235: short names. This \fBtic\fR does not do that, but it does warn when
236: description fields may be treated that way and check them for dangerous
237: characters.
238: .SH EXTENSIONS
239: Unlike the stock SVr4 \fBtic\fR command, this implementation can actually
240: compile termcap sources. In fact, entries in terminfo and termcap syntax can
241: be mixed in a single source file. See \fBterminfo\fR(\*n) for the list of
242: termcap names taken to be equivalent to terminfo names.
243:
244: The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
245: capabilities.
246: This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
247: in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
248: \fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory
249: (if it exists), or (finally) anywhere in the system's file tree of
250: compiled entries.
251:
252: The error messages from this \fBtic\fR have the same format as GNU C
253: error messages, and can be parsed by GNU Emacs's compile facility.
254:
1.3 millert 255: The
256: \fB-o\fR,
1.6 millert 257: \fB-G\fR,
1.3 millert 258: \fB-I\fR,
259: \fB-C\fR,
260: \fB-N\fR,
261: \fB-R\fR,
262: \fB-e\fR,
263: \fB-f\fR,
264: \fB-g\fR,
265: \fB-T\fR,
1.9 ! millert 266: \fB-r\fR,
! 267: \fB-s\fR and
! 268: \fB-x\fR
1.3 millert 269: options
1.1 millert 270: are not supported under SVr4.
271: The SVr4 -c mode does not report bad use links.
272:
273: System V does not compile entries to or read entries from your
274: \fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
275: .SH FILES
276: .TP 5
277: \fB\*d/?/*\fR
278: Compiled terminal description database.
279: .SH SEE ALSO
1.9 ! millert 280: \fBcaptoinfo\fR(1), \fBinfocmp\fR(1), \fBinfotocap\fR(1),
! 281: \fBcurses\fR(3), \fBterminfo\fR(\*n).
1.1 millert 282: .\"#
283: .\"# The following sets edit modes for GNU EMACS
284: .\"# Local Variables:
285: .\"# mode:nroff
286: .\"# fill-column:79
287: .\"# End: