


TERM(5)                                                   TERM(5)


NNAAMMEE
       term - format of compiled term file.

SSYYNNOOPPSSIISS
       tteerrmm

DDEESSCCRRIIPPTTIIOONN
       Compiled terminfo descriptions are placed under the direc-
       tory @@TTEERRMMIINNFFOO@@.  In order to avoid a linear search  of  a
       huge  UNIX  system  directory, a two-level scheme is used:
       //cc//nnaammee where _n_a_m_e is the name of the terminal, and  _c  is
       the  first  character of _n_a_m_e.  Thus, _a_c_t_4 can be found in
       the file @@TTEERRMMIINNFFOO@@//aa//aacctt44.  Synonyms for the same  termi-
       nal are implemented by multiple links to the same compiled
       file.

       The format has been chosen so that it will be the same  on
       all  hardware.   An  8 or more bit byte is assumed, but no
       assumptions about byte  ordering  or  sign  extension  are
       made.

       The  compiled  file  is  created with the _t_i_c program, and
       read by the routine _s_e_t_u_p_t_e_r_m.  The file is  divided  into
       six parts: the header, terminal names, boolean flags, num-
       bers, strings, and string table.

       The header section begins the file.  This section contains
       six  short  integers in the format described below.  These
       integers are (1) the magic number (octal  0432);  (2)  the
       size,  in  bytes,  of the names section; (3) the number of
       bytes in the boolean section;  (4)  the  number  of  short
       integers in the numbers section; (5) the number of offsets
       (short integers) in the strings section; (6) the size,  in
       bytes, of the string table.

       Short  integers  are stored in two 8-bit bytes.  The first
       byte contains the least significant 8 bits of  the  value,
       and  the second byte contains the most significant 8 bits.
       (Thus, the value represented  is  256*second+first.)   The
       value  -1  is  represented  by  0377, 0377, other negative
       value are illegal.  The -1 generally means that a capabil-
       ity  is missing from this terminal.  Note that this format
       corresponds to the hardware of the VAX  and  PDP-11  (that
       is, little-endian machines).  Machines where this does not
       correspond to the hardware read the integers as two  bytes
       and compute the result.

       The  terminal  names  section comes next.  It contains the
       first line of the terminfo description, listing the  vari-
       ous  names  for the terminal, separated by the `|' charac-
       ter.  The section is terminated with an ASCII NUL  charac-
       ter.

       The  boolean flags have one byte for each flag.  This byte



                                                                1





TERM(5)                                                   TERM(5)


       is either 0 or 1 as the flag is present  or  absent.   The
       capabilities are in the same order as the file <term.h>.

       Between the boolean section and the number section, a null
       byte will be inserted, if necessary, to  ensure  that  the
       number section begins on an even byte.  All short integers
       are aligned on a short word boundary.

       The numbers section is similar to the flags section.  Each
       capability  takes  up  two bytes, and is stored as a short
       integer.  If the value represented is -1,  the  capability
       is taken to be missing.

       The  strings  section is also similar.  Each capability is
       stored as a short integer, in the format above.   A  value
       of  -1  means  the  capability is missing.  Otherwise, the
       value is taken as an offset  from  the  beginning  of  the
       string table.  Special characters in ^X or \c notation are
       stored in their interpreted form, not the printing  repre-
       sentation.  Padding information $<nn> and parameter infor-
       mation %x are stored intact in uninterpreted form.

       The final section is the string table.   It  contains  all
       the values of string capabilities referenced in the string
       section.  Each string is null terminated.

       Note that it is possible for _s_e_t_u_p_t_e_r_m to expect a differ-
       ent  set  of capabilities than are actually present in the
       file.  Either the database may  have  been  updated  since
       _s_e_t_u_p_t_e_r_m has been recompiled (resulting in extra unrecog-
       nized entries in the file) or the program  may  have  been
       recompiled  more  recently  than  the database was updated
       (resulting in missing  entries).   The  routine  _s_e_t_u_p_t_e_r_m
       must  be prepared for both possibilities - this is why the
       numbers and sizes are included.   Also,  new  capabilities
       must  always  be added at the end of the lists of boolean,
       number, and string capabilities.

       As an example, an octal dump of the  description  for  the
       Microterm ACT 4 is included:

       microterm|act4|microterm act iv,
           cr=^M, cud1=^J, ind=^J, bel=^G, am, cub1=^H,
           ed=^_, el=^^, clear=^L, cup=^T%p1%c%p2%c,
           cols#80, lines#24, cuf1=^X, cuu1=^Z, home=^],

       000000 003322 000011      \\00 002255  \\00  \\bb  \\00 221122  \\00   ""  \\00   mm   ii   cc   rr
       002200   oo   tt   ee   rr   mm   ||   aa   cc   tt   44   ||   mm   ii   cc   rr   oo
       004400   tt   ee   rr   mm       aa   cc   tt       ii   vv  \\00  \\00 000011  \\00  \\00
       006600  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00  \\00
       110000  \\00  \\00   PP  \\00 337777 337777 003300  \\00 337777 337777 337777 337777 337777 337777 337777 337777
       112200 337777 337777 337777 337777  \\00  \\00 000022  \\00 337777 337777 337777 337777 000044  \\00 000066  \\00
       114400  \\bb  \\00 337777 337777 337777 337777  \\nn  \\00 002266  \\00 003300  \\00 337777 337777 003322  \\00
       116600 337777 337777 337777 337777 003344  \\00 337777 337777 003366  \\00 337777 337777 337777 337777 337777 337777



                                                                2





TERM(5)                                                   TERM(5)


       220000 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777
       **
       552200 337777 337777 337777 337777      \\00 337777 337777 337777 337777 337777 337777 337777 337777 337777 337777
       554400 337777 337777 337777 337777 337777 337777 000077  \\00  \\rr  \\00  \\ff  \\00 003366  \\00 003377  \\00
       556600 002244   %%   pp   11   %%   cc   %%   pp   22   %%   cc  \\00  \\nn  \\00 003355  \\00
       660000  \\bb  \\00 003300  \\00 003322  \\00  \\nn  \\00


       Some  limitations:  total  compiled  entries cannot exceed
       4096 bytes.  The name field cannot exceed 128 bytes.

FFIILLEESS
       @TERMINFO@/*/* compiled terminal capability data base

SSEEEE AALLSSOO
       curses(3X), terminfo(5).









































                                                                3


