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

FreeBSD Manual Pages


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

       tic - the terminfo entry-description compiler

       tic  [-1CGILNTUVacfgrstx]  [-e  names]  [-o  dir]  [-R  subset] [-v[n]]
       [-w[n]] file

       The command tic 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).

       The results are	normally  placed  in  the  system  terminfo  directory
       /usr/local/share/misc/terminfo.	 There are two ways to change this be-

       First, you may override the system default by setting the variable TER-
       MINFO in	your shell environment to a valid (existing) directory name.

       Secondly, if tic	cannot get access to /usr/local/share/misc/terminfo or
       your TERMINFO directory,	it looks for the directory $HOME/.terminfo; if
       that directory exists, the entry	is placed there.

       Libraries  that	read terminfo entries are expected to check for	a TER-
       MINFO directory first, look at $HOME/.terminfo if TERMINFO is not  set,
       and finally look	in /usr/local/share/misc/terminfo.

       -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.

       -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 (and a documented
	      limit in terminfo), these	entries	may cause core dumps.

       -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.

       -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 directory.  Overrides  the  TER-
	      MINFO 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 directory  into  which  en-
	      tries are	written, and the number	of entries which are compiled.

       -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-

       -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 for-
	    mat	[see terminfo(5)].  Each description in	the file describes the
	    capabilities of a particular terminal.

       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.

       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.	If the environment variable TERMINFO is	set, that directory is
       searched	instead	of  /usr/local/share/misc/terminfo.)   tic  duplicates
       the  capabilities  in entry-name	for the	current	entry, with the	excep-
       tion of those capabilities that explicitly are defined in  the  current

       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-

       If the environment variable TERMINFO is set, the	compiled  results  are
       placed there instead of /usr/local/share/misc/terminfo.

       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  stock  SVr4	 tic command, this implementation can actually
       compile termcap sources.	 In fact, entries in terminfo and termcap syn-
       tax 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 directory	(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 -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 directory unless	TERMINFO is explicitly set to it.

	    Compiled terminal description database.

       infocmp(1M),  captoinfo(1M),  infotocap(1M),  toe(1M), curses(3X), ter-

       This describes ncurses version 5.7 (patch 20101225).

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



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

home | help