Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 1 | .\"*************************************************************************** |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 2 | .\" Copyright 2018-2023,2024 Thomas E. Dickey * |
| 3 | .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 4 | .\" * |
| 5 | .\" Permission is hereby granted, free of charge, to any person obtaining a * |
| 6 | .\" copy of this software and associated documentation files (the * |
| 7 | .\" "Software"), to deal in the Software without restriction, including * |
| 8 | .\" without limitation the rights to use, copy, modify, merge, publish, * |
| 9 | .\" distribute, distribute with modifications, sublicense, and/or sell * |
| 10 | .\" copies of the Software, and to permit persons to whom the Software is * |
| 11 | .\" furnished to do so, subject to the following conditions: * |
| 12 | .\" * |
| 13 | .\" The above copyright notice and this permission notice shall be included * |
| 14 | .\" in all copies or substantial portions of the Software. * |
| 15 | .\" * |
| 16 | .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| 17 | .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| 18 | .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| 19 | .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| 20 | .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| 21 | .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| 22 | .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| 23 | .\" * |
| 24 | .\" Except as contained in this notice, the name(s) of the above copyright * |
| 25 | .\" holders shall not be used in advertising or otherwise to promote the * |
| 26 | .\" sale, use or other dealings in this Software without prior written * |
| 27 | .\" authorization. * |
| 28 | .\"*************************************************************************** |
| 29 | .\" |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 30 | .\" $Id: tic.1m,v 1.110 2024/04/27 17:57:06 tom Exp $ |
| 31 | .TH @TIC@ 1M 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" |
| 32 | .ie \n(.g \{\ |
| 33 | .ds `` \(lq |
| 34 | .ds '' \(rq |
| 35 | .\} |
| 36 | .el \{\ |
| 37 | .ie t .ds `` `` |
| 38 | .el .ds `` "" |
| 39 | .ie t .ds '' '' |
| 40 | .el .ds '' "" |
| 41 | .\} |
| 42 | . |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 43 | .de bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 44 | .ie n .IP \(bu 4 |
| 45 | .el .IP \(bu 2 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 46 | .. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 47 | . |
| 48 | .ds d @TERMINFO@ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 49 | .SH NAME |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 50 | \fB\%@TIC@\fP \- |
| 51 | compile terminal descriptions for \fIterminfo\fR or \fItermcap\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 52 | .SH SYNOPSIS |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 53 | \fB@TIC@\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 54 | [\fB\-\ |
| 55 | 0\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 56 | 1\ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 57 | a\ |
| 58 | c\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 59 | C\ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 60 | D\ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 61 | f\ |
| 62 | g\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 63 | G\ |
| 64 | I\ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 65 | K\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 66 | L\ |
| 67 | N\ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 68 | q\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 69 | r\ |
| 70 | s\ |
| 71 | t\ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 72 | T\ |
| 73 | U\ |
| 74 | V\ |
| 75 | W\ |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 76 | x\ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 77 | \fP] |
| 78 | [\fB\-e\fP \fIterminal-type-list\fP] |
| 79 | [\fB\-o\fP \fIdir\fP] |
| 80 | [\fB\-Q\fP[\fIn\fP]] |
| 81 | [\fB\-R\fP \fIsubset\fP] |
| 82 | [\fB\-v\fP[\fIn\fP]] |
| 83 | [\fB\-w\fP[\fIn\fP]] |
| 84 | \fIfile\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 85 | .SH DESCRIPTION |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 86 | The \fB@TIC@\fP command translates a \fBterminfo\fP file from source |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 87 | format into compiled format. |
| 88 | The compiled format is necessary for use with |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 89 | the library routines in \fB\%ncurses\fP(3X). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 90 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 91 | As described in \fBterm\fP(5), the database may be either a directory |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 92 | tree (one file per terminal entry) or a hashed database (one record per entry). |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 93 | The \fB@TIC@\fP command writes only one type of entry, |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 94 | depending on how it was built: |
| 95 | .bP |
| 96 | For directory trees, the top-level directory, e.g., /usr/share/terminfo, |
| 97 | specifies the location of the database. |
| 98 | .bP |
| 99 | For hashed databases, a filename is needed. |
| 100 | If the given file is not found by that name, |
| 101 | but can be found by adding the suffix ".db", |
| 102 | then that is used. |
| 103 | .IP |
| 104 | The default name for the hashed database is the same as the |
| 105 | default directory name (only adding a ".db" suffix). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 106 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 107 | In either case (directory or hashed database), |
| 108 | \fB@TIC@\fP will create the container if it does not exist. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 109 | For a directory, this would be the \*(``terminfo\*('' leaf, |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 110 | versus a "terminfo.db" file. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 111 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 112 | The results are normally placed in the system terminfo database \fB\*d\fP. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 113 | The compiled terminal description can be placed |
| 114 | in a different terminfo database. |
| 115 | There are two ways to achieve this: |
| 116 | .bP |
| 117 | First, you may override the system default either by |
| 118 | using the \fB\-o\fP option, |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 119 | or by setting the variable \fI\%TERMINFO\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 120 | in your shell environment to a valid database location. |
| 121 | .bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 122 | Secondly, if \fB@TIC@\fP cannot write in \fI\*d\fP |
| 123 | or the location specified using your \fI\%TERMINFO\fP variable, |
| 124 | it looks for the directory \fI$HOME/.terminfo\fP |
| 125 | (or hashed database \fI$HOME/.terminfo.db)\fP; |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 126 | if that location exists, the entry is placed there. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 127 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 128 | Libraries that read terminfo entries are expected to check in succession |
| 129 | .bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 130 | a location specified with the \fI\%TERMINFO\fP environment variable, |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 131 | .bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 132 | \fI$HOME/.terminfo\fP, |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 133 | .bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 134 | directories listed in the \fI\%TERMINFO_DIRS\fP environment variable, |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 135 | .bP |
| 136 | a compiled-in list of directories (@TERMINFO_DIRS@), and |
| 137 | .bP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 138 | the system terminfo database (\fI\*d\fP). |
| 139 | .PP |
| 140 | The \fIFetching Compiled Descriptions\fP section in the \fBterminfo\fR(5) |
| 141 | manual goes into further detail. |
| 142 | .SS Aliases |
| 143 | This is the same program as @INFOTOCAP@ and @CAPTOINFO@; |
| 144 | usually those are linked to, or copied from this program: |
| 145 | .bP |
| 146 | When invoked as @INFOTOCAP@, @TIC@ sets the \fB\-I\fP option. |
| 147 | .bP |
| 148 | When invoked as @CAPTOINFO@, @TIC@ sets the \fB\-C\fP option. |
| 149 | .SH OPTIONS |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 150 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 151 | \fB\-0\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 152 | restricts the output to a single line |
| 153 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 154 | \fB\-1\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 155 | restricts the output to a single column |
| 156 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 157 | \fB\-a\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 158 | tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding |
| 159 | them. |
| 160 | Capabilities are commented by prefixing them with a period. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 161 | This sets the \fB\-x\fP option, because it treats the commented-out |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 162 | entries as user-defined names. |
| 163 | If the source is termcap, accept the 2-character names required by version 6. |
| 164 | Otherwise these are ignored. |
| 165 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 166 | \fB\-C\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 167 | Force source translation to termcap format. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 168 | Note: this differs from the \fB\-C\fP |
| 169 | option of \fB@INFOCMP@\fP(1M) in that it does not merely translate capability |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 170 | names, but also translates terminfo strings to termcap format. |
| 171 | Capabilities |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 172 | that are not translatable are left in the entry under their terminfo names |
| 173 | but commented out with two preceding dots. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 174 | The actual format used incorporates some improvements for escaped characters |
| 175 | from terminfo format. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 176 | For a stricter BSD-compatible translation, add the \fB\-K\fP option. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 177 | .IP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 178 | If this is combined with \fB\-c\fP, \fB@TIC@\fP makes additional checks |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 179 | to report cases where the terminfo values do not have an exact equivalent |
| 180 | in termcap form. |
| 181 | For example: |
| 182 | .RS |
| 183 | .bP |
| 184 | \fBsgr\fP usually will not convert, because termcap lacks the ability to |
| 185 | work with more than two parameters, and because termcap lacks many of |
| 186 | the arithmetic/logical operators used in terminfo. |
| 187 | .bP |
| 188 | capabilities with more than one delay or with delays before the end of |
| 189 | the string will not convert completely. |
| 190 | .RE |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 191 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 192 | \fB\-c\fP |
| 193 | tells \fB@TIC@\fP to only check \fIfile\fP for errors, |
| 194 | including syntax problems and bad use-links. |
| 195 | If you specify \fB\-C\fP (\fB\-I\fP) with this option, the code |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 196 | will print warnings about entries which, after use resolution, are more than |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 197 | 1023 (4096) bytes long. |
| 198 | Due to a fixed buffer length in older termcap libraries, |
| 199 | as well as buggy checking for the buffer length |
| 200 | (and a documented limit in terminfo), |
| 201 | these entries may cause core |
| 202 | dumps with other implementations. |
| 203 | .IP |
| 204 | \fB@TIC@\fP checks string capabilities to ensure that those with parameters |
| 205 | will be valid expressions. |
| 206 | It does this check only for the predefined string capabilities; |
| 207 | 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] | 208 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 209 | \fB\-D\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 210 | tells \fB@TIC@\fP to print the database locations that it knows about, and exit. |
| 211 | The first location shown is the one to which it would write compiled |
| 212 | terminal descriptions. |
| 213 | If \fB@TIC@\fP is not able to find a writable database location |
| 214 | according to the rules summarized above, |
| 215 | it will print a diagnostic and exit with an error rather than |
| 216 | printing a list of database locations. |
| 217 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 218 | \fB\-e \fIlist\fR |
| 219 | Limit writes and translations to the comma-separated \fIlist\fP of |
| 220 | terminal types. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 221 | If any name or alias of a terminal matches one of the names in |
| 222 | the list, the entry will be written or translated as normal. |
| 223 | Otherwise no output will be generated for it. |
| 224 | The option value is interpreted as a file containing the list if it |
| 225 | contains a '/'. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 226 | (Note: depending on how @TIC@ was compiled, |
| 227 | this option may require \fB\-I\fP or \fB\-C\fP.) |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 228 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 229 | \fB\-f\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 230 | Display complex terminfo strings which contain if/then/else/endif expressions |
| 231 | indented for readability. |
| 232 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 233 | \fB\-G\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 234 | Display constant literals in decimal form |
| 235 | rather than their character equivalents. |
| 236 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 237 | \fB\-g\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 238 | Display constant character literals in quoted form |
| 239 | rather than their decimal equivalents. |
| 240 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 241 | \fB\-I\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 242 | Force source translation to terminfo format. |
| 243 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 244 | \fB\-K\fP |
| 245 | Suppress some longstanding \fI\%ncurses\fP extensions to termcap format, |
| 246 | e.g., "\es" for space. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 247 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 248 | \fB\-L\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 249 | Force source translation to terminfo format |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 250 | using the long C variable names listed in <\fBterm.h\fP> |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 251 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 252 | \fB\-N\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 253 | Disable smart defaults. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 254 | Normally, when translating from termcap to terminfo, the compiler makes |
| 255 | a number of assumptions about the defaults of string capabilities |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 256 | \fBreset1_string\fP, \fBcarriage_return\fP, \fBcursor_left\fP, |
| 257 | \fBcursor_down\fP, \fBscroll_forward\fP, \fBtab\fP, \fBnewline\fP, |
| 258 | \fBkey_backspace\fP, \fBkey_left\fP, and \fBkey_down\fP, then attempts |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 259 | to use obsolete termcap capabilities to deduce correct values. |
| 260 | It also |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 261 | normally suppresses output of obsolete termcap capabilities such as \fBbs\fP. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 262 | This option forces a more literal translation that also preserves the |
| 263 | obsolete capabilities. |
| 264 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 265 | \fB\-o\fIdir\fR |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 266 | Write compiled entries to given database location. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 267 | Overrides the \fI\%TERMINFO\fP environment variable. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 268 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 269 | \fB\-Q\fIn\fR |
| 270 | Rather than show source in terminfo (text) format, |
| 271 | print the compiled (binary) format in hexadecimal or base64 form, |
| 272 | depending on the option's value: |
| 273 | .RS 8 |
| 274 | .TP 3 |
| 275 | 1 |
| 276 | hexadecimal |
| 277 | .TP 3 |
| 278 | 2 |
| 279 | base64 |
| 280 | .TP 3 |
| 281 | 3 |
| 282 | hexadecimal and base64 |
| 283 | .RE |
| 284 | .TP |
| 285 | \fB\-q\fP |
| 286 | Suppress comments and blank lines when showing translated source. |
| 287 | .TP |
| 288 | \fB\-R\fIsubset\fR |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 289 | Restrict output to a given subset. |
| 290 | This option is for use with archaic |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 291 | versions of terminfo like those on SVr1, Ultrix, or HP-UX that do not support |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 292 | 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] | 293 | that have their own extensions incompatible with SVr4/XSI. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 294 | .IP |
| 295 | Available subsets are |
| 296 | .RS |
| 297 | \*(``SVr1\*('', |
| 298 | \*(``Ultrix\*('', |
| 299 | \*(``HP\*('', |
| 300 | \*(``BSD\*('', and |
| 301 | \*(``AIX\*('' |
| 302 | .RE |
| 303 | .IP |
| 304 | See \fBterminfo\fP(5) for details. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 305 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 306 | \fB\-r\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 307 | Force entry resolution (so there are no remaining tc capabilities) even |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 308 | when doing translation to termcap format. |
| 309 | This may be needed if you are |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 310 | preparing a termcap file for a termcap library (such as GNU termcap through |
| 311 | version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple |
| 312 | tc capabilities per entry. |
| 313 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 314 | \fB\-s\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 315 | Summarize the compile by showing the database location into which entries |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 316 | are written, and the number of entries which are compiled. |
| 317 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 318 | \fB\-T\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 319 | eliminates size-restrictions on the generated text. |
| 320 | This is mainly useful for testing and analysis, since the compiled |
| 321 | descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). |
| 322 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 323 | \fB\-t\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 324 | tells \fB@TIC@\fP to discard commented-out capabilities. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 325 | Normally when translating from terminfo to termcap, |
| 326 | untranslatable capabilities are commented-out. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 327 | .TP |
| 328 | \fB\-U\fP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 329 | 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] | 330 | Normally, it infers data which is commonly missing in older terminfo data, |
| 331 | or in termcaps. |
| 332 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 333 | \fB\-V\fP |
| 334 | reports the version of \fI\%ncurses\fP which was used in this program, |
| 335 | and exits. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 336 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 337 | \fB\-v\fIn\fR |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 338 | specifies that (verbose) output be written to standard error trace |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 339 | information showing \fB@TIC@\fP's progress. |
| 340 | .IP |
| 341 | The optional parameter \fIn\fP is a number from 1 to 9, inclusive, |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 342 | indicating the desired level of detail of information. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 343 | .RS |
| 344 | .bP |
| 345 | If \fI\%ncurses\fP is built without tracing support, |
| 346 | the optional parameter is ignored. |
| 347 | .bP |
| 348 | If \fIn\fP is omitted, the default level is 1. |
| 349 | .bP |
| 350 | If \fIn\fP is specified and greater than 1, the level of |
| 351 | detail is increased, and the output is written (with tracing information) |
| 352 | to the \*(``trace\*('' file. |
| 353 | .RE |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 354 | .RS |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 355 | .PP |
| 356 | The debug flag levels are as follows: |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 357 | .TP 4 |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 358 | 1 |
| 359 | Names of files created and linked |
| 360 | .TP |
| 361 | 2 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 362 | Information related to the \*(``use\*('' facility |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 363 | .TP |
| 364 | 3 |
| 365 | Statistics from the hashing algorithm |
| 366 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 367 | 4 |
| 368 | Details of extended capabilities |
| 369 | .TP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 370 | 5 |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 371 | (unused) |
| 372 | .TP |
| 373 | 6 |
| 374 | (unused) |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 375 | .TP |
| 376 | 7 |
| 377 | Entries into the string-table |
| 378 | .TP |
| 379 | 8 |
| 380 | List of tokens encountered by scanner |
| 381 | .TP |
| 382 | 9 |
| 383 | All values computed in construction of the hash table |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 384 | .RE |
| 385 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 386 | \fB\-W\fP |
| 387 | By itself, the \fB\-w\fP option will not force long strings to be wrapped. |
| 388 | Use the \fB\-W\fP option to do this. |
| 389 | .IP |
| 390 | If you specify both \fB\-f\fP and \fB\-W\fP options, |
| 391 | the latter is ignored when \fB\-f\fP has already split the line. |
| 392 | .TP |
| 393 | \fB\-w\fIn\fR |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 394 | specifies the width of the output. |
| 395 | The parameter is optional. |
| 396 | If it is omitted, it defaults to 60. |
| 397 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 398 | \fB\-x\fP |
| 399 | Treat unknown capabilities as user-defined (see \fBuser_caps\fP(5)). |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 400 | That is, if you supply a capability name which \fB@TIC@\fP does not recognize, |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 401 | it will infer its type (Boolean, number or string) from the syntax and |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 402 | make an extended table entry for that. |
| 403 | User-defined capability strings |
| 404 | whose name begins with \*(``k\*('' are treated as function keys. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 405 | .SS Parameters |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 406 | .TP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 407 | \fIfile\fP |
| 408 | contains one or more \fBterminfo\fP terminal descriptions in source |
| 409 | format [see \fBterminfo\fP(5)]. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 410 | Each description in the file |
| 411 | describes the capabilities of a particular terminal. |
| 412 | .IP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 413 | If \fIfile\fP is \*(``-\*('', then the data is read from the standard input. |
| 414 | The \fIfile\fP parameter may also be the path of a character-device. |
| 415 | .SS Processing |
| 416 | All but one of the capabilities recognized by \fB@TIC@\fP are documented |
| 417 | in \fBterminfo\fP(5). |
| 418 | The exception is the \fBuse\fP capability. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 419 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 420 | When a \fBuse\fP=\fIentry\fP\-\fIname\fP field is discovered in a |
| 421 | terminal entry currently being compiled, \fB@TIC@\fP reads in the binary |
| 422 | from \fB\*d\fP to complete the entry. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 423 | (Entries created from |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 424 | \fIfile\fP will be used first. |
| 425 | \fB@TIC@\fP duplicates the capabilities in |
| 426 | \fIentry\fP\-\fIname\fP for the current entry, with the exception of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 427 | those capabilities that explicitly are defined in the current entry. |
| 428 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 429 | When an entry, e.g., \fBentry_name_1\fP, contains a |
| 430 | \fBuse=\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled |
| 431 | capabilities in \fIentry\fR_\fIname\fR_\fI2\fP must also appear in |
| 432 | \fBentry_name_1\fP before \fBuse=\fP for these capabilities to be |
| 433 | canceled in \fBentry_name_1\fP. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 434 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 435 | Total compiled entries cannot exceed |
| 436 | 4096 bytes in the legacy storage format, or |
| 437 | 32768 using the extended number format. |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 438 | The name field cannot |
| 439 | exceed 512 bytes. |
| 440 | Terminal names exceeding the maximum alias length |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 441 | (32 characters on systems with long filenames, 14 characters otherwise) |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 442 | will be truncated to the maximum alias length |
| 443 | and a warning message will be printed. |
| 444 | .SH FILES |
| 445 | .TP |
| 446 | .I \*d |
| 447 | compiled terminal description database |
| 448 | .SH NOTES |
| 449 | There is some evidence that historic \fB@TIC@\fP implementations treated |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 450 | description fields with no whitespace in them as additional aliases or |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 451 | short names. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 452 | This \fB@TIC@\fP does not do that, but it does warn when |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 453 | description fields may be treated that way and check them for dangerous |
| 454 | characters. |
| 455 | .SH EXTENSIONS |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 456 | Unlike the SVr4 \fB@TIC@\fP command, this implementation can actually |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 457 | compile termcap sources. |
| 458 | In fact, entries in terminfo and termcap syntax can |
| 459 | be mixed in a single source file. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 460 | See \fBterminfo\fP(5) for the list of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 461 | termcap names taken to be equivalent to terminfo names. |
| 462 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 463 | The SVr4 manual pages are not clear on the resolution rules for \fBuse\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 464 | capabilities. |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 465 | This implementation of \fB@TIC@\fP will find \fBuse\fP targets anywhere |
| 466 | in the source file, |
| 467 | or anywhere in the file tree rooted at |
| 468 | \fI\%TERMINFO\fP |
| 469 | (if |
| 470 | \fI\%TERMINFO\fP is defined), |
| 471 | or in the user's \fI$HOME/.terminfo\fP database |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 472 | (if it exists), |
| 473 | or (finally) anywhere in the system's file tree of |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 474 | compiled entries. |
| 475 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 476 | The error messages from this \fB@TIC@\fP have the same format as GNU C |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 477 | error messages, and can be parsed by GNU Emacs's compile facility. |
| 478 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 479 | Aside from \fB\-c\fP and \fB\-v\fP, options are not portable: |
| 480 | .bP |
| 481 | Most of @TIC@'s options |
| 482 | are not supported by SVr4 \fBtic\fP: |
| 483 | .sp |
| 484 | .RS |
| 485 | \fB\-0\fP |
| 486 | \fB\-1\fP |
| 487 | \fB\-C\fP |
| 488 | \fB\-G\fP |
| 489 | \fB\-I\fP |
| 490 | \fB\-N\fP |
| 491 | \fB\-R\fP |
| 492 | \fB\-T\fP |
| 493 | \fB\-V\fP |
| 494 | \fB\-a\fP |
| 495 | \fB\-e\fP |
| 496 | \fB\-f\fP |
| 497 | \fB\-g\fP |
| 498 | \fB\-o\fP |
| 499 | \fB\-r\fP |
| 500 | \fB\-s\fP |
| 501 | \fB\-t\fP |
| 502 | \fB\-x\fP |
| 503 | .RE |
| 504 | .bP |
| 505 | The NetBSD \fBtic\fP supports a few of the \fI\%ncurses\fP options |
| 506 | .sp |
| 507 | .RS |
| 508 | \fB\-a\fP |
| 509 | \fB\-o\fP |
| 510 | \fB\-x\fP |
| 511 | .RE |
| 512 | .IP |
| 513 | and adds \fB\-S\fP |
| 514 | (a feature which does the same thing |
| 515 | as @INFOCMP@'s \fB\-e\fP and \fB\-E\fP options). |
| 516 | .PP |
| 517 | The SVr4 \fB\-c\fP mode does not report bad \*(``use=\*('' links. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 518 | .PP |
| 519 | System V does not compile entries to or read entries from your |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 520 | \fI$HOME/.terminfo\fP database unless \fI\%TERMINFO\fP is explicitly set |
| 521 | to it. |
| 522 | .SH PORTABILITY |
| 523 | X/Open Curses, Issue 7 (2009) provides a brief description of \fBtic\fP. |
| 524 | It lists one option: \fB\-c\fP. |
| 525 | The omission of \fB\-v\fP is unexpected. |
| 526 | The change history states that the description is derived from Tru64. |
| 527 | According to its manual pages, that system also supported the \fB\-v\fP option. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 528 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 529 | Shortly after Issue 7 was released, Tru64 was discontinued. |
| 530 | As of 2019, the surviving implementations of \fBtic\fP |
| 531 | are SVr4 (AIX, HP-UX and Solaris), |
| 532 | \fI\%ncurses\fP |
| 533 | and NetBSD curses. |
| 534 | The SVr4 \fBtic\fP programs all support the \fB\-v\fP option. |
| 535 | The NetBSD \fBtic\fP program follows X/Open's documentation, |
| 536 | omitting the \fB\-v\fP option. |
| 537 | .PP |
| 538 | The X/Open rationale states that some implementations of \fBtic\fP |
| 539 | read terminal descriptions from the standard input if the \fIfile\fP |
| 540 | parameter is omitted. |
| 541 | None of these implementations do that. |
| 542 | Further, it comments that some may choose to read from \*(''./terminfo.src\*('' |
| 543 | but that is obsolescent behavior from SVr2, |
| 544 | and is not (for example) a documented feature of SVr3. |
| 545 | .SH HISTORY |
| 546 | System V Release 2 provided a \fBtic\fP utility. |
| 547 | It accepted a single option: \fB\-v\fP (optionally followed by a number). |
| 548 | According to Ross Ridge's comment in \fImytinfo\fP, |
| 549 | this version of \fBtic\fP was |
| 550 | unable to represent cancelled capabilities. |
| 551 | .PP |
| 552 | System V Release 3 provided a different \fBtic\fP utility, |
| 553 | written by Pavel Curtis, |
| 554 | (originally named \*(``compile\*('' in \fIpcurses\fP). |
| 555 | This added an option \fB\-c\fP to check the file for |
| 556 | errors, with the caveat that errors in \*(``use=\*('' links |
| 557 | would not be reported. |
| 558 | System V Release 3 documented a few warning messages which |
| 559 | did not appear in \fIpcurses\fP. |
| 560 | While the program itself was changed little as development |
| 561 | continued with System V Release 4, |
| 562 | the table of capabilities grew from 180 (\fIpcurses\fP) to 464 (Solaris). |
| 563 | .PP |
| 564 | In early development of \fI\%ncurses\fP (1993), |
| 565 | Zeyd Ben-Halim used the table from \fImytinfo\fP to |
| 566 | extend the \fIpcurses\fP table to 469 capabilities |
| 567 | (456 matched SVr4, 8 were only in SVr4, 13 were not in SVr4). |
| 568 | Of those 13, 11 were ultimately discarded |
| 569 | (perhaps to match the draft of X/Open Curses). |
| 570 | The exceptions were |
| 571 | \fB\%memory_lock_above\fP and |
| 572 | \fB\%memory_unlock\fP (see \fB\%user_caps\fP(5)). |
| 573 | .PP |
| 574 | Eric Raymond incorporated parts of \fImytinfo\fP into \fI\%ncurses\fP |
| 575 | to implement the termcap-to-terminfo source conversion, |
| 576 | and extended that to begin development of |
| 577 | the corresponding terminfo-to-termcap source conversion, |
| 578 | Thomas Dickey completed that development over the course of several years. |
| 579 | .PP |
| 580 | In 1999, Thomas Dickey added the \fB\-x\fP option |
| 581 | to support user-defined capabilities. |
| 582 | .PP |
| 583 | In 2010, Roy Marples provided a \fBtic\fP program |
| 584 | and terminfo library for NetBSD. |
| 585 | That implementation adapts several features from \fI\%ncurses\fP, |
| 586 | including \fB@TIC@\fP's \fB\-x\fP option. |
| 587 | .PP |
| 588 | The \fB\-c\fP option tells \fB@TIC@\fP to check for problems in the |
| 589 | terminfo source file. |
| 590 | Continued development provides additional checks: |
| 591 | .bP |
| 592 | \fIpcurses\fP had 8 warnings |
| 593 | .bP |
| 594 | \fI\%ncurses\fP in 1996 had 16 warnings |
| 595 | .bP |
| 596 | Solaris (SVr4) curses has 28 warnings |
| 597 | .bP |
| 598 | NetBSD tic in 2019 has 19 warnings. |
| 599 | .bP |
| 600 | \fI\%ncurses\fP in 2019 has 96 warnings |
| 601 | .PP |
| 602 | The checking done in \fI\%ncurses\fP' \fB@TIC@\fP helps with the |
| 603 | conversion to termcap, |
| 604 | as well as pointing out errors and inconsistencies. |
| 605 | It is also used to ensure consistency with the user-defined capabilities. |
| 606 | There are 527 distinct capabilities in \fI\%ncurses\fP' terminal |
| 607 | database; |
| 608 | 128 of those are user-defined. |
| 609 | .SH AUTHORS |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 610 | Eric S. Raymond <esr@snark.thyrsus.com> |
| 611 | and |
| 612 | .br |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 613 | Thomas E. Dickey <dickey@invisible\-island.net> |
| 614 | .SH SEE ALSO |
| 615 | \fB\%@CAPTOINFO@\fP(1M), |
| 616 | \fB\%@INFOCMP@\fP(1M), |
| 617 | \fB\%@INFOTOCAP@\fP(1M), |
| 618 | \fB\%@TOE@\fP(1M), |
| 619 | \fB\%curses\fP(3X), |
| 620 | \fB\%term\fP(5), |
| 621 | \fB\%terminfo\fP(5), |
| 622 | \fB\%user_caps\fP(5) |