| .\"*************************************************************************** |
| .\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * |
| .\" * |
| .\" Permission is hereby granted, free of charge, to any person obtaining a * |
| .\" copy of this software and associated documentation files (the * |
| .\" "Software"), to deal in the Software without restriction, including * |
| .\" without limitation the rights to use, copy, modify, merge, publish, * |
| .\" distribute, distribute with modifications, sublicense, and/or sell * |
| .\" copies of the Software, and to permit persons to whom the Software is * |
| .\" furnished to do so, subject to the following conditions: * |
| .\" * |
| .\" The above copyright notice and this permission notice shall be included * |
| .\" in all copies or substantial portions of the Software. * |
| .\" * |
| .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| .\" * |
| .\" Except as contained in this notice, the name(s) of the above copyright * |
| .\" holders shall not be used in advertising or otherwise to promote the * |
| .\" sale, use or other dealings in this Software without prior written * |
| .\" authorization. * |
| .\"*************************************************************************** |
| .\" |
| .\" $Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp $ |
| .TH @TIC@ 1M "" |
| .ds n 5 |
| .ds d @TERMINFO@ |
| .SH NAME |
| \fBtic\fR - the \fIterminfo\fR entry-description compiler |
| .SH SYNOPSIS |
| \fBtic\fR |
| [\fB-\ |
| 1\ |
| C\ |
| G\ |
| I\ |
| L\ |
| N\ |
| T\ |
| U\ |
| V\ |
| a\ |
| c\ |
| f\ |
| g\ |
| r\ |
| s\ |
| t\ |
| x\ |
| \fR] |
| [\fB-e\fR \fInames\fR] |
| [\fB-o\fR \fIdir\fR] |
| [\fB-R\fR \fIsubset\fR] |
| [\fB-v\fR[\fIn\fR]] |
| [\fB-w\fR[\fIn\fR]] |
| \fIfile\fR |
| .br |
| .SH DESCRIPTION |
| The command \fBtic\fR translates a \fBterminfo\fR file from source |
| format into compiled format. The compiled format is necessary for use with |
| the library routines in \fBncurses\fR(3X). |
| .PP |
| The results are normally placed in the system terminfo |
| directory \fB\*d\fR. There are two ways to change this behavior. |
| .PP |
| First, you may override the system default by setting the variable |
| \fBTERMINFO\fR in your shell environment to a valid (existing) directory name. |
| .PP |
| Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO |
| directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory |
| exists, the entry is placed there. |
| .PP |
| Libraries that read terminfo entries are expected to check for a TERMINFO |
| directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and |
| finally look in \fI\*d\fR. |
| .TP |
| \fB-1\fR |
| restricts the output to a single column |
| .TP |
| \fB-a\fR |
| tells \fBtic\fP to retain commented-out capabilities rather than discarding |
| them. Capabilities are commented by prefixing them with a period. |
| This sets the \fB-x\fR option, because it treats the commented-out |
| entries as user-defined names. |
| If the source is termcap, accept the 2-character names required by version 6. |
| Otherwise these are ignored. |
| .TP |
| \fB-C\fR |
| Force source translation to termcap format. Note: this differs from the \fB-C\fR |
| option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability |
| names, but also translates terminfo strings to termcap format. Capabilities |
| that are not translatable are left in the entry under their terminfo names |
| but commented out with two preceding dots. |
| .TP |
| \fB-c\fR |
| tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and |
| bad use links. If you specify \fB-C\fR (\fB-I\fR) with this option, the code |
| will print warnings about entries which, after use resolution, are more than |
| 1023 (4096) bytes long. Due to a fixed buffer length in older termcap |
| libraries (and a documented limit in terminfo), these entries may cause core |
| dumps. |
| .TP |
| \fB-e \fR\fInames\fR |
| Limit writes and translations to the following comma-separated list of |
| terminals. |
| If any name or alias of a terminal matches one of the names in |
| the list, the entry will be written or translated as normal. |
| Otherwise no output will be generated for it. |
| The option value is interpreted as a file containing the list if it |
| contains a '/'. |
| (Note: depending on how tic was compiled, this option may require \fB-I\fR or \fB-C\fR.) |
| .TP |
| \fB-f\fR |
| Display complex terminfo strings which contain if/then/else/endif expressions |
| indented for readability. |
| .TP |
| \fB-G\fR |
| Display constant literals in decimal form |
| rather than their character equivalents. |
| .TP |
| \fB-g\fR |
| Display constant character literals in quoted form |
| rather than their decimal equivalents. |
| .TP |
| \fB-I\fR |
| Force source translation to terminfo format. |
| .TP |
| \fB-L\fR |
| Force source translation to terminfo format |
| using the long C variable names listed in <\fBterm.h\fR> |
| .TP |
| \fB-N\fR |
| Disable smart defaults. |
| Normally, when translating from termcap to terminfo, the compiler makes |
| a number of assumptions about the defaults of string capabilities |
| \fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR, |
| \fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR, |
| \fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts |
| to use obsolete termcap capabilities to deduce correct values. It also |
| normally suppresses output of obsolete termcap capabilities such as \fBbs\fR. |
| This option forces a more literal translation that also preserves the |
| obsolete capabilities. |
| .TP |
| \fB-o\fR\fIdir\fR |
| Write compiled entries to given directory. Overrides the TERMINFO environment |
| variable. |
| .TP |
| \fB-R\fR\fIsubset\fR |
| Restrict output to a given subset. This option is for use with archaic |
| versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support |
| the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x |
| that have their own extensions incompatible with SVr4/XSI. Available subsets |
| are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details. |
| .TP |
| \fB-r\fR |
| Force entry resolution (so there are no remaining tc capabilities) even |
| when doing translation to termcap format. This may be needed if you are |
| preparing a termcap file for a termcap library (such as GNU termcap through |
| version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple |
| tc capabilities per entry. |
| .TP |
| \fB-s\fR |
| Summarize the compile by showing the directory into which entries |
| are written, and the number of entries which are compiled. |
| .TP |
| \fB-T\fR |
| eliminates size-restrictions on the generated text. |
| This is mainly useful for testing and analysis, since the compiled |
| descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). |
| .TP |
| \fB-t\fR |
| tells \fBtic\fP to discard commented-out capabilities. |
| Normally when translating from terminfo to termcap, |
| untranslatable capabilities are commented-out. |
| .TP 5 |
| \fB-U\fR |
| tells \fBtic\fP to not post-process the data after parsing the source file. |
| Normally, it infers data which is commonly missing in older terminfo data, |
| or in termcaps. |
| .TP |
| \fB-V\fR |
| reports the version of ncurses which was used in this program, and exits. |
| .TP |
| \fB-v\fR\fIn\fR |
| specifies that (verbose) output be written to standard error trace |
| information showing \fBtic\fR's progress. |
| The optional parameter \fIn\fR is a number from 1 to 10, inclusive, |
| indicating the desired level of detail of information. |
| If \fIn\fR is omitted, the default level is 1. |
| If \fIn\fR is specified and greater than 1, the level of |
| detail is increased. |
| .TP |
| \fB-w\fR\fIn\fR |
| specifies the width of the output. |
| The parameter is optional. |
| If it is omitted, it defaults to 60. |
| .TP |
| \fB-x\fR |
| Treat unknown capabilities as user-defined. |
| That is, if you supply a capability name which \fBtic\fP does not recognize, |
| it will infer its type (boolean, number or string) from the syntax and |
| make an extended table entry for that. |
| User-defined capability strings |
| whose name begins with ``k'' are treated as function keys. |
| .TP |
| \fIfile\fR |
| contains one or more \fBterminfo\fR terminal descriptions in source |
| format [see \fBterminfo\fR(\*n)]. Each description in the file |
| describes the capabilities of a particular terminal. |
| .PP |
| The debug flag levels are as follows: |
| .TP |
| 1 |
| Names of files created and linked |
| .TP |
| 2 |
| Information related to the ``use'' facility |
| .TP |
| 3 |
| Statistics from the hashing algorithm |
| .TP |
| 5 |
| String-table memory allocations |
| .TP |
| 7 |
| Entries into the string-table |
| .TP |
| 8 |
| List of tokens encountered by scanner |
| .TP |
| 9 |
| All values computed in construction of the hash table |
| .LP |
| If the debug level \fIn\fR is not given, it is taken to be one. |
| .PP |
| All but one of the capabilities recognized by \fBtic\fR are documented |
| in \fBterminfo\fR(\*n). The exception is the \fBuse\fR capability. |
| .PP |
| When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a |
| terminal entry currently being compiled, \fBtic\fR reads in the binary |
| from \fB\*d\fR to complete the entry. (Entries created from |
| \fIfile\fR will be used first. If the environment variable |
| \fBTERMINFO\fR is set, that directory is searched instead of |
| \fB\*d\fR.) \fBtic\fR duplicates the capabilities in |
| \fIentry\fR-\fIname\fR for the current entry, with the exception of |
| those capabilities that explicitly are defined in the current entry. |
| .PP |
| When an entry, e.g., \fBentry_name_1\fR, contains a |
| \fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled |
| capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in |
| \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be |
| canceled in \fBentry_name_1\fR. |
| .PP |
| If the environment variable \fBTERMINFO\fR is set, the compiled |
| results are placed there instead of \fB\*d\fR. |
| .PP |
| Total compiled entries cannot exceed 4096 bytes. The name field cannot |
| exceed 512 bytes. Terminal names exceeding the maximum alias length |
| (32 characters on systems with long filenames, 14 characters otherwise) |
| will be truncated to the maximum alias length and a warning message will be printed. |
| .SH COMPATIBILITY |
| There is some evidence that historic \fBtic\fR implementations treated |
| description fields with no whitespace in them as additional aliases or |
| short names. This \fBtic\fR does not do that, but it does warn when |
| description fields may be treated that way and check them for dangerous |
| characters. |
| .SH EXTENSIONS |
| Unlike the stock SVr4 \fBtic\fR command, this implementation can actually |
| compile termcap sources. In fact, entries in terminfo and termcap syntax can |
| be mixed in a single source file. See \fBterminfo\fR(\*n) for the list of |
| termcap names taken to be equivalent to terminfo names. |
| .PP |
| The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR |
| capabilities. |
| This implementation of \fBtic\fR will find \fBuse\fR targets anywhere |
| in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if |
| \fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory |
| (if it exists), or (finally) anywhere in the system's file tree of |
| compiled entries. |
| .PP |
| The error messages from this \fBtic\fR have the same format as GNU C |
| error messages, and can be parsed by GNU Emacs's compile facility. |
| .PP |
| The |
| \fB-C\fR, |
| \fB-G\fR, |
| \fB-I\fR, |
| \fB-N\fR, |
| \fB-R\fR, |
| \fB-T\fR, |
| \fB-V\fR, |
| \fB-a\fR, |
| \fB-e\fR, |
| \fB-f\fR, |
| \fB-g\fR, |
| \fB-o\fR, |
| \fB-r\fR, |
| \fB-s\fR, |
| \fB-t\fR and |
| \fB-x\fR |
| options |
| are not supported under SVr4. |
| The SVr4 \fB-c\fR mode does not report bad use links. |
| .PP |
| System V does not compile entries to or read entries from your |
| \fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it. |
| .SH FILES |
| .TP 5 |
| \fB\*d/?/*\fR |
| Compiled terminal description database. |
| .SH SEE ALSO |
| \fB@INFOCMP@\fR(1M), |
| \fB@CAPTOINFO@\fR(1M), |
| \fB@INFOTOCAP@\fR(1M), |
| \fB@TOE@\fR(1M), |
| \fBcurses\fR(3X), |
| \fBterminfo\fR(\*n). |
| .PP |
| This describes \fBncurses\fR |
| version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). |
| .\"# |
| .\"# The following sets edit modes for GNU EMACS |
| .\"# Local Variables: |
| .\"# mode:nroff |
| .\"# fill-column:79 |
| .\"# End: |