Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 1 | .\"*************************************************************************** |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 2 | .\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 3 | .\" * |
| 4 | .\" Permission is hereby granted, free of charge, to any person obtaining a * |
| 5 | .\" copy of this software and associated documentation files (the * |
| 6 | .\" "Software"), to deal in the Software without restriction, including * |
| 7 | .\" without limitation the rights to use, copy, modify, merge, publish, * |
| 8 | .\" distribute, distribute with modifications, sublicense, and/or sell * |
| 9 | .\" copies of the Software, and to permit persons to whom the Software is * |
| 10 | .\" furnished to do so, subject to the following conditions: * |
| 11 | .\" * |
| 12 | .\" The above copyright notice and this permission notice shall be included * |
| 13 | .\" in all copies or substantial portions of the Software. * |
| 14 | .\" * |
| 15 | .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| 16 | .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| 17 | .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| 18 | .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| 19 | .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| 20 | .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| 21 | .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| 22 | .\" * |
| 23 | .\" Except as contained in this notice, the name(s) of the above copyright * |
| 24 | .\" holders shall not be used in advertising or otherwise to promote the * |
| 25 | .\" sale, use or other dealings in this Software without prior written * |
| 26 | .\" authorization. * |
| 27 | .\"*************************************************************************** |
| 28 | .\" |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 29 | .\" $Id: tic.1m,v 1.60 2014/05/24 22:00:11 tom Exp $ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 30 | .TH @TIC@ 1M "" |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 31 | .ie \n(.g .ds `` \(lq |
| 32 | .el .ds `` `` |
| 33 | .ie \n(.g .ds '' \(rq |
| 34 | .el .ds '' '' |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 35 | .ds n 5 |
| 36 | .ds d @TERMINFO@ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 37 | .de bP |
| 38 | .IP \(bu 4 |
| 39 | .. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 40 | .SH NAME |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 41 | \fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 42 | .SH SYNOPSIS |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 43 | \fB@TIC@\fR |
| 44 | [\fB\-\ |
| 45 | 0\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 46 | 1\ |
| 47 | C\ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 48 | D\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 49 | G\ |
| 50 | I\ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 51 | K\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 52 | L\ |
| 53 | N\ |
| 54 | T\ |
| 55 | U\ |
| 56 | V\ |
| 57 | a\ |
| 58 | c\ |
| 59 | f\ |
| 60 | g\ |
| 61 | r\ |
| 62 | s\ |
| 63 | t\ |
| 64 | x\ |
| 65 | \fR] |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 66 | [\fB\-e\fR \fInames\fR] |
| 67 | [\fB\-o\fR \fIdir\fR] |
| 68 | [\fB\-R\fR \fIsubset\fR] |
| 69 | [\fB\-v\fR[\fIn\fR]] |
| 70 | [\fB\-w\fR[\fIn\fR]] |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 71 | \fIfile\fR |
| 72 | .br |
| 73 | .SH DESCRIPTION |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 74 | The \fB@TIC@\fR command translates a \fBterminfo\fR file from source |
| 75 | format into compiled format. |
| 76 | The compiled format is necessary for use with |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 77 | the library routines in \fBncurses\fR(3X). |
| 78 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 79 | As described in \fBterm\fR(\*n), the database may be either a directory |
| 80 | tree (one file per terminal entry) or a hashed database (one record per entry). |
| 81 | The \fB@TIC@\fR command writes only one type of entry, |
| 82 | depending on how it was built: |
| 83 | .bP |
| 84 | For directory trees, the top-level directory, e.g., /usr/share/terminfo, |
| 85 | specifies the location of the database. |
| 86 | .bP |
| 87 | For hashed databases, a filename is needed. |
| 88 | If the given file is not found by that name, |
| 89 | but can be found by adding the suffix ".db", |
| 90 | then that is used. |
| 91 | .IP |
| 92 | The default name for the hashed database is the same as the |
| 93 | default directory name (only adding a ".db" suffix). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 94 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 95 | In either case (directory or hashed database), |
| 96 | \fB@TIC@\fP will create the container if it does not exist. |
| 97 | For a directory, this would be the "terminfo" leaf, |
| 98 | versus a "terminfo.db" file. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 99 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 100 | The results are normally placed in the system terminfo database \fB\*d\fR. |
| 101 | The compiled terminal description can be placed |
| 102 | in a different terminfo database. |
| 103 | There are two ways to achieve this: |
| 104 | .bP |
| 105 | First, you may override the system default either by |
| 106 | using the \fB\-o\fP option, |
| 107 | or by setting the variable \fBTERMINFO\fR |
| 108 | in your shell environment to a valid database location. |
| 109 | .bP |
| 110 | Secondly, if \fB@TIC@\fR cannot write in \fI\*d\fR |
| 111 | or the location specified using your TERMINFO variable, |
| 112 | it looks for the directory \fI$HOME/.terminfo\fR |
| 113 | (or hashed database \fI$HOME/.terminfo.db)\fR; |
| 114 | if that location exists, the entry is placed there. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 115 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 116 | Libraries that read terminfo entries are expected to check in succession |
| 117 | .bP |
| 118 | a location specified with the TERMINFO environment variable, |
| 119 | .bP |
| 120 | \fI$HOME/.terminfo\fR, |
| 121 | .bP |
| 122 | directories listed in the TERMINFO_DIRS environment variable, |
| 123 | .bP |
| 124 | a compiled-in list of directories (@TERMINFO_DIRS@), and |
| 125 | .bP |
| 126 | the system terminfo database (\fI\*d\fR). |
| 127 | .SS OPTIONS |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 128 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 129 | \fB\-0\fR |
| 130 | restricts the output to a single line |
| 131 | .TP |
| 132 | \fB\-1\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 133 | restricts the output to a single column |
| 134 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 135 | \fB\-a\fR |
| 136 | tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding |
| 137 | them. |
| 138 | Capabilities are commented by prefixing them with a period. |
| 139 | This sets the \fB\-x\fR option, because it treats the commented-out |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 140 | entries as user-defined names. |
| 141 | If the source is termcap, accept the 2-character names required by version 6. |
| 142 | Otherwise these are ignored. |
| 143 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 144 | \fB\-C\fR |
| 145 | Force source translation to termcap format. |
| 146 | Note: this differs from the \fB\-C\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 147 | option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 148 | names, but also translates terminfo strings to termcap format. |
| 149 | Capabilities |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 150 | that are not translatable are left in the entry under their terminfo names |
| 151 | but commented out with two preceding dots. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 152 | The actual format used incorporates some improvements for escaped characters |
| 153 | from terminfo format. |
| 154 | For a stricter BSD-compatible translation, add the \fB\-K\fR option. |
| 155 | .IP |
| 156 | If this is combined with \fB\-c\fR, \fB@TIC@\fR makes additional checks |
| 157 | to report cases where the terminfo values do not have an exact equivalent |
| 158 | in termcap form. |
| 159 | For example: |
| 160 | .RS |
| 161 | .bP |
| 162 | \fBsgr\fP usually will not convert, because termcap lacks the ability to |
| 163 | work with more than two parameters, and because termcap lacks many of |
| 164 | the arithmetic/logical operators used in terminfo. |
| 165 | .bP |
| 166 | capabilities with more than one delay or with delays before the end of |
| 167 | the string will not convert completely. |
| 168 | .RE |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 169 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 170 | \fB\-c\fR |
| 171 | tells \fB@TIC@\fP to only check \fIfile\fR for errors, including syntax problems and |
| 172 | bad use links. |
| 173 | If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 174 | will print warnings about entries which, after use resolution, are more than |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 175 | 1023 (4096) bytes long. |
| 176 | Due to a fixed buffer length in older termcap libraries, |
| 177 | as well as buggy checking for the buffer length |
| 178 | (and a documented limit in terminfo), |
| 179 | these entries may cause core |
| 180 | dumps with other implementations. |
| 181 | .IP |
| 182 | \fB@TIC@\fP checks string capabilities to ensure that those with parameters |
| 183 | will be valid expressions. |
| 184 | It does this check only for the predefined string capabilities; |
| 185 | those which are defined with the \fB\-x\fP option are ignored. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 186 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 187 | \fB\-D\fR |
| 188 | tells \fB@TIC@\fP to print the database locations that it knows about, and exit. |
| 189 | The first location shown is the one to which it would write compiled |
| 190 | terminal descriptions. |
| 191 | If \fB@TIC@\fP is not able to find a writable database location |
| 192 | according to the rules summarized above, |
| 193 | it will print a diagnostic and exit with an error rather than |
| 194 | printing a list of database locations. |
| 195 | .TP |
| 196 | \fB\-e \fR\fInames\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 197 | Limit writes and translations to the following comma-separated list of |
| 198 | terminals. |
| 199 | If any name or alias of a terminal matches one of the names in |
| 200 | the list, the entry will be written or translated as normal. |
| 201 | Otherwise no output will be generated for it. |
| 202 | The option value is interpreted as a file containing the list if it |
| 203 | contains a '/'. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 204 | (Note: depending on how tic was compiled, this option may require \fB\-I\fR or \fB\-C\fR.) |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 205 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 206 | \fB\-f\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 207 | Display complex terminfo strings which contain if/then/else/endif expressions |
| 208 | indented for readability. |
| 209 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 210 | \fB\-G\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 211 | Display constant literals in decimal form |
| 212 | rather than their character equivalents. |
| 213 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 214 | \fB\-g\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 215 | Display constant character literals in quoted form |
| 216 | rather than their decimal equivalents. |
| 217 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 218 | \fB\-I\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 219 | Force source translation to terminfo format. |
| 220 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 221 | \fB\-K\fR |
| 222 | Suppress some longstanding ncurses extensions to termcap format, |
| 223 | e.g., "\\s" for space. |
| 224 | .TP |
| 225 | \fB\-L\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 226 | Force source translation to terminfo format |
| 227 | using the long C variable names listed in <\fBterm.h\fR> |
| 228 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 229 | \fB\-N\fR |
| 230 | Disable smart defaults. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 231 | Normally, when translating from termcap to terminfo, the compiler makes |
| 232 | a number of assumptions about the defaults of string capabilities |
| 233 | \fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR, |
| 234 | \fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR, |
| 235 | \fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 236 | to use obsolete termcap capabilities to deduce correct values. |
| 237 | It also |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 238 | normally suppresses output of obsolete termcap capabilities such as \fBbs\fR. |
| 239 | This option forces a more literal translation that also preserves the |
| 240 | obsolete capabilities. |
| 241 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 242 | \fB\-o\fR\fIdir\fR |
| 243 | Write compiled entries to given database location. |
| 244 | Overrides the TERMINFO environment variable. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 245 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 246 | \fB\-R\fR\fIsubset\fR |
| 247 | Restrict output to a given subset. |
| 248 | This option is for use with archaic |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 249 | versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support |
| 250 | the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 251 | that have their own extensions incompatible with SVr4/XSI. |
| 252 | Available subsets |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 253 | are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details. |
| 254 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 255 | \fB\-r\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 256 | Force entry resolution (so there are no remaining tc capabilities) even |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 257 | when doing translation to termcap format. |
| 258 | This may be needed if you are |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 259 | preparing a termcap file for a termcap library (such as GNU termcap through |
| 260 | version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple |
| 261 | tc capabilities per entry. |
| 262 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 263 | \fB\-s\fR |
| 264 | Summarize the compile by showing the database location into which entries |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 265 | are written, and the number of entries which are compiled. |
| 266 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 267 | \fB\-T\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 268 | eliminates size-restrictions on the generated text. |
| 269 | This is mainly useful for testing and analysis, since the compiled |
| 270 | descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). |
| 271 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 272 | \fB\-t\fR |
| 273 | tells \fB@TIC@\fP to discard commented-out capabilities. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 274 | Normally when translating from terminfo to termcap, |
| 275 | untranslatable capabilities are commented-out. |
| 276 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 277 | \fB\-U\fR |
| 278 | tells \fB@TIC@\fP to not post-process the data after parsing the source file. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 279 | Normally, it infers data which is commonly missing in older terminfo data, |
| 280 | or in termcaps. |
| 281 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 282 | \fB\-V\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 283 | reports the version of ncurses which was used in this program, and exits. |
| 284 | .TP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 285 | \fB\-v\fR\fIn\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 286 | specifies that (verbose) output be written to standard error trace |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 287 | information showing \fB@TIC@\fR's progress. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 288 | The optional parameter \fIn\fR is a number from 1 to 10, inclusive, |
| 289 | indicating the desired level of detail of information. |
| 290 | If \fIn\fR is omitted, the default level is 1. |
| 291 | If \fIn\fR is specified and greater than 1, the level of |
| 292 | detail is increased. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 293 | .RS |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 294 | .PP |
| 295 | The debug flag levels are as follows: |
| 296 | .TP |
| 297 | 1 |
| 298 | Names of files created and linked |
| 299 | .TP |
| 300 | 2 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 301 | Information related to the \*(``use\*('' facility |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 302 | .TP |
| 303 | 3 |
| 304 | Statistics from the hashing algorithm |
| 305 | .TP |
| 306 | 5 |
| 307 | String-table memory allocations |
| 308 | .TP |
| 309 | 7 |
| 310 | Entries into the string-table |
| 311 | .TP |
| 312 | 8 |
| 313 | List of tokens encountered by scanner |
| 314 | .TP |
| 315 | 9 |
| 316 | All values computed in construction of the hash table |
| 317 | .LP |
| 318 | If the debug level \fIn\fR is not given, it is taken to be one. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 319 | .RE |
| 320 | .TP |
| 321 | \fB\-w\fR\fIn\fR |
| 322 | specifies the width of the output. |
| 323 | The parameter is optional. |
| 324 | If it is omitted, it defaults to 60. |
| 325 | .TP |
| 326 | \fB\-x\fR |
| 327 | Treat unknown capabilities as user-defined. |
| 328 | That is, if you supply a capability name which \fB@TIC@\fP does not recognize, |
| 329 | it will infer its type (boolean, number or string) from the syntax and |
| 330 | make an extended table entry for that. |
| 331 | User-defined capability strings |
| 332 | whose name begins with \*(``k\*('' are treated as function keys. |
| 333 | .SS PARAMETERS |
| 334 | .TP |
| 335 | \fIfile\fR |
| 336 | contains one or more \fBterminfo\fR terminal descriptions in source |
| 337 | format [see \fBterminfo\fR(\*n)]. |
| 338 | Each description in the file |
| 339 | describes the capabilities of a particular terminal. |
| 340 | .IP |
| 341 | If \fIfile\fR is \*(``-\*('', then the data is read from the standard input. |
| 342 | The \fIfile\fR parameter may also be the path of a character-device. |
| 343 | .SS PROCESSING |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 344 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 345 | All but one of the capabilities recognized by \fB@TIC@\fR are documented |
| 346 | in \fBterminfo\fR(\*n). |
| 347 | The exception is the \fBuse\fR capability. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 348 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 349 | When a \fBuse\fR=\fIentry\fR\-\fIname\fR field is discovered in a |
| 350 | terminal entry currently being compiled, \fB@TIC@\fR reads in the binary |
| 351 | from \fB\*d\fR to complete the entry. |
| 352 | (Entries created from |
| 353 | \fIfile\fR will be used first. |
| 354 | \fB@TIC@\fR duplicates the capabilities in |
| 355 | \fIentry\fR\-\fIname\fR for the current entry, with the exception of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 356 | those capabilities that explicitly are defined in the current entry. |
| 357 | .PP |
| 358 | When an entry, e.g., \fBentry_name_1\fR, contains a |
| 359 | \fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled |
| 360 | capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in |
| 361 | \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be |
| 362 | canceled in \fBentry_name_1\fR. |
| 363 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 364 | Total compiled entries cannot exceed 4096 bytes. |
| 365 | The name field cannot |
| 366 | exceed 512 bytes. |
| 367 | Terminal names exceeding the maximum alias length |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 368 | (32 characters on systems with long filenames, 14 characters otherwise) |
| 369 | will be truncated to the maximum alias length and a warning message will be printed. |
| 370 | .SH COMPATIBILITY |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 371 | There is some evidence that historic \fB@TIC@\fR implementations treated |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 372 | description fields with no whitespace in them as additional aliases or |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 373 | short names. |
| 374 | This \fB@TIC@\fR does not do that, but it does warn when |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 375 | description fields may be treated that way and check them for dangerous |
| 376 | characters. |
| 377 | .SH EXTENSIONS |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 378 | Unlike the SVr4 \fB@TIC@\fR command, this implementation can actually |
| 379 | compile termcap sources. |
| 380 | In fact, entries in terminfo and termcap syntax can |
| 381 | be mixed in a single source file. |
| 382 | See \fBterminfo\fR(\*n) for the list of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 383 | termcap names taken to be equivalent to terminfo names. |
| 384 | .PP |
| 385 | The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR |
| 386 | capabilities. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 387 | This implementation of \fB@TIC@\fR will find \fBuse\fR targets anywhere |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 388 | in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 389 | \fBTERMINFO\fR is defined), |
| 390 | or in the user's \fI$HOME/.terminfo\fR database |
| 391 | (if it exists), |
| 392 | or (finally) anywhere in the system's file tree of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 393 | compiled entries. |
| 394 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 395 | The error messages from this \fB@TIC@\fR have the same format as GNU C |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 396 | error messages, and can be parsed by GNU Emacs's compile facility. |
| 397 | .PP |
| 398 | The |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 399 | \fB\-0\fR, |
| 400 | \fB\-1\fR, |
| 401 | \fB\-C\fR, |
| 402 | \fB\-G\fR, |
| 403 | \fB\-I\fR, |
| 404 | \fB\-N\fR, |
| 405 | \fB\-R\fR, |
| 406 | \fB\-T\fR, |
| 407 | \fB\-V\fR, |
| 408 | \fB\-a\fR, |
| 409 | \fB\-e\fR, |
| 410 | \fB\-f\fR, |
| 411 | \fB\-g\fR, |
| 412 | \fB\-o\fR, |
| 413 | \fB\-r\fR, |
| 414 | \fB\-s\fR, |
| 415 | \fB\-t\fR and |
| 416 | \fB\-x\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 417 | options |
| 418 | are not supported under SVr4. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 419 | The SVr4 \fB\-c\fR mode does not report bad use links. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 420 | .PP |
| 421 | System V does not compile entries to or read entries from your |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 422 | \fI$HOME/.terminfo\fR database unless TERMINFO is explicitly set to it. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 423 | .SH FILES |
| 424 | .TP 5 |
| 425 | \fB\*d/?/*\fR |
| 426 | Compiled terminal description database. |
| 427 | .SH SEE ALSO |
| 428 | \fB@INFOCMP@\fR(1M), |
| 429 | \fB@CAPTOINFO@\fR(1M), |
| 430 | \fB@INFOTOCAP@\fR(1M), |
| 431 | \fB@TOE@\fR(1M), |
| 432 | \fBcurses\fR(3X), |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 433 | \fBterm\fR(\*n). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 434 | \fBterminfo\fR(\*n). |
| 435 | .PP |
| 436 | This describes \fBncurses\fR |
| 437 | version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 438 | .SH AUTHOR |
| 439 | Eric S. Raymond <esr@snark.thyrsus.com> |
| 440 | and |
| 441 | .br |
| 442 | Thomas E. Dickey <dickey@invisible-island.net> |