123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- .\"***************************************************************************
- .\" 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:
|