Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
tic(1M)								       tic(1M)

       tic - the terminfo entry-description compiler

       tic  [-01CDGIKLNTUVacfgrstx]  [-e  names]  [-o dir] [-R subset] [-v[n]]
       [-w[n]] file

       The tic command translates a terminfo file from source format into com-
       piled  format.	The  compiled format is	necessary for use with the li-
       brary routines in ncurses(3X).

       As described in term(5),	the database may be either  a  directory  tree
       (one  file per terminal entry) or a hashed database (one	record per en-
       try).  The tic command writes only one type of entry, depending on  how
       it was built:

       o   For directory trees,	the top-level directory, e.g., /usr/share/ter-
	   minfo, specifies the	location of the	database.

       o   For hashed databases, a filename is needed.	If the given  file  is
	   not	found  by  that	 name,	but  can be found by adding the	suffix
	   ".db", then that is used.

	   The default name for	the hashed database is the same	as the default
	   directory name (only	adding a ".db" suffix).

       In either case (directory or hashed database), tic will create the con-
       tainer if it does not exist.  For a directory, this would be the	 "ter-
       minfo" leaf, versus a "terminfo.db" file.

       The  results  are  normally  placed  in	the  system  terminfo database
       /usr/local/share/misc/terminfo.	The compiled terminal description  can
       be  placed  in  a  different  terminfo database.	 There are two ways to
       achieve this:

       o   First, you may override the system default either by	using  the  -o
	   option,  or by setting the variable TERMINFO	in your	shell environ-
	   ment	to a valid database location.

       o   Secondly, if	tic cannot write in /usr/local/share/misc/terminfo  or
	   the	location  specified using your TERMINFO	variable, it looks for
	   the	directory  $HOME/.terminfo  (or	 hashed	 database  $HOME/.ter-
	   minfo.db); if that location exists, the entry is placed there.

       Libraries  that	read terminfo entries are expected to check in succes-

       o   a location specified	with the TERMINFO environment variable,

       o   $HOME/.terminfo,

       o   directories listed in the TERMINFO_DIRS environment variable,

       o   a compiled-in list of directories ("no default value"), and

       o   the system terminfo database	(/usr/local/share/misc/terminfo).

       -0     restricts	the output to a	single line

       -1     restricts	the output to a	single column

       -a     tells tic	to retain commented-out	capabilities rather than  dis-
	      carding them.  Capabilities are commented	by prefixing them with
	      a	period.	 This sets the -x option, because it treats  the  com-
	      mented-out  entries  as  user-defined  names.   If the source is
	      termcap, accept the 2-character names  required  by  version  6.
	      Otherwise	these are ignored.

       -C     Force  source translation	to termcap format.  Note: this differs
	      from the -C option of infocmp(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.	The actual  format  used  incorporates
	      some  improvements  for escaped characters from terminfo format.
	      For a stricter BSD-compatible translation, add the -K option.

	      If this is combined with -c, tic makes additional	checks to  re-
	      port cases where the terminfo values do not have an exact	equiv-
	      alent in termcap form.  For example:

	      o	  sgr usually will not	convert,  because  termcap  lacks  the
		  ability  to  work with more than two parameters, and because
		  termcap lacks	many of	the arithmetic/logical operators  used
		  in terminfo.

	      o	  capabilities	with more than one delay or with delays	before
		  the end of the string	will not convert completely.

       -c     tells tic	to only	check file for errors, including syntax	 prob-
	      lems  and	 bad  use links.  If you specify -C (-I) with this op-
	      tion, 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, as well as buggy
	      checking	for  the buffer	length (and a documented limit in ter-
	      minfo), these entries may	cause core dumps with other  implemen-

	      tic checks string	capabilities to	ensure that those with parame-
	      ters will	be valid expressions.  It does this check only for the
	      predefined string	capabilities; those which are defined with the
	      -x option	are ignored.

       -D     tells tic	to print the database locations	that it	 knows	about,
	      and exit.	 The first location shown is the one to	which it would
	      write compiled terminal descriptions.  If	tic  is	 not  able  to
	      find  a writable database	location according to the rules	summa-
	      rized above, it will print a diagnostic and exit with  an	 error
	      rather than printing a list of database locations.

       -e names
	      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 com-
	      piled, this option may require -I	or -C.)

       -f     Display  complex terminfo	strings	which contain if/then/else/en-
	      dif expressions indented for readability.

       -G     Display constant literals	in  decimal  form  rather  than	 their
	      character	equivalents.

       -g     Display  constant	 character literals in quoted form rather than
	      their decimal equivalents.

       -I     Force source translation to terminfo format.

       -K     Suppress some longstanding ncurses extensions to termcap format,
	      e.g., "\s" for space.

       -L     Force  source  translation  to  terminfo format using the	long C
	      variable names listed in <term.h>

       -N     Disable smart defaults.  Normally, when translating from termcap
	      to  terminfo,  the  compiler makes a number of assumptions about
	      the defaults of string capabilities reset1_string,  carriage_re-
	      turn,  cursor_left,  cursor_down,	 scroll_forward, tab, newline,
	      key_backspace, key_left, and key_down, then attempts to use  ob-
	      solete  termcap  capabilities to deduce correct values.  It also
	      normally suppresses output of obsolete termcap capabilities such
	      as  bs.  This option forces a more literal translation that also
	      preserves	the obsolete capabilities.

       -odir  Write compiled entries to	given  database	 location.   Overrides
	      the TERMINFO environment variable.

	      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 ter-
	      minfo; 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 terminfo(5) for

       -r     Force  entry  resolution (so there are no	remaining tc capabili-
	      ties) even when doing translation	to termcap format.   This  may
	      be  needed if you	are preparing a	termcap	file for a termcap li-
	      brary (such as GNU termcap through version 1.3  or  BSD  termcap
	      through  4.3BSD)	that  does not handle multiple tc capabilities
	      per entry.

       -s     Summarize	the compile by	showing	 the  database	location  into
	      which  entries  are written, and the number of entries which are

       -T     eliminates size-restrictions on the  generated  text.   This  is
	      mainly  useful  for testing and analysis,	since the compiled de-
	      scriptions are limited (e.g., 1023 for termcap,  4096  for  ter-

       -t     tells  tic to discard commented-out capabilities.	 Normally when
	      translating from terminfo	to termcap,  untranslatable  capabili-
	      ties are commented-out.

       -U   tells  tic	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.

       -V   reports the	version	of ncurses which was used in this program, and

       -vn  specifies that (verbose) output be written to standard error trace
	    information	showing	tic's progress.	 The optional parameter	n is a
	    number from	1 to 10, inclusive, indicating the  desired  level  of
	    detail  of	information.  If n is omitted, the default level is 1.
	    If n is specified and greater than 1, the level of detail  is  in-

	    The	debug flag levels are as follows:

	    1	   Names of files created and linked

	    2	   Information related to the "use" facility

	    3	   Statistics from the hashing algorithm

	    5	   String-table	memory allocations

	    7	   Entries into	the string-table

	    8	   List	of tokens encountered by scanner

	    9	   All values computed in construction of the hash table

	    If the debug level n is not	given, it is taken to be one.

       -wn  specifies the width	of the output.	The parameter is optional.  If
	    it is omitted, it defaults to 60.

       -x   Treat unknown capabilities as user-defined.	 That is, if you  sup-
	    ply	 a capability name which tic 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.

       file   contains one or more terminfo terminal  descriptions  in	source
	      format  [see  terminfo(5)].   Each  description  in the file de-
	      scribes the capabilities of a particular terminal.

	      If file is "-", then the data is read from the  standard	input.
	      The file parameter may also be the path of a character-device.

       All  but	 one  of  the capabilities recognized by tic are documented in
       terminfo(5).  The exception is the use capability.

       When a use=entry-name field is discovered in a terminal entry currently
       being compiled, tic reads in the	binary from /usr/local/share/misc/ter-
       minfo to	complete the entry.  (Entries created from file	will  be  used
       first.	tic  duplicates	the capabilities in entry-name for the current
       entry, with the exception of those capabilities that explicitly are de-
       fined in	the current entry.

       When  an	 entry,	e.g., entry_name_1, contains a use=entry_name_2	field,
       any canceled capabilities in  entry_name_2  must	 also  appear  in  en-
       try_name_1  before  use=	 for  these capabilities to be canceled	in en-

       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.

       There is	some evidence that historic tic	 implementations  treated  de-
       scription  fields  with	no whitespace in them as additional aliases or
       short names.  This tic does not do that,	but it does warn when descrip-
       tion  fields may	be treated that	way and	check them for dangerous char-

       Unlike the SVr4 tic 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  terminfo(5)  for	 the  list  of
       termcap names taken to be equivalent to terminfo	names.

       The SVr4	manual pages are not clear on the resolution rules for use ca-
       pabilities.  This implementation	of tic will find use targets  anywhere
       in the source file, or anywhere in the file tree	rooted at TERMINFO (if
       TERMINFO	is defined), or	in the user's $HOME/.terminfo database (if  it
       exists),	 or  (finally)	anywhere in the	system's file tree of compiled

       The error messages from this tic	have the same format as	 GNU  C	 error
       messages, and can be parsed by GNU Emacs's compile facility.

       The  -0,	-1, -C,	-G, -I,	-N, -R,	-T, -V,	-a, -e,	-f, -g,	-o, -r,	-s, -t
       and -x options are not supported	under SVr4.  The SVr4 -c mode does not
       report bad use links.

       System  V  does	not  compile  entries  to  or  read  entries from your
       $HOME/.terminfo database	unless TERMINFO	is explicitly set to it.

	    Compiled terminal description database.

       infocmp(1M),   captoinfo(1M),   infotocap(1M),	toe(1M),   curses(3X),
       term(5).	 terminfo(5).

       This describes ncurses version 6.0 (patch 20150808).

       Eric S. Raymond <> and
       Thomas E. Dickey	<>



Want to link to this manual page? Use this URL:

home | help