Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ terminfo(F) — OpenDesktop 1.0.0y

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

terminfo(M)

terminfo(S)

tic(C)

TERMINFO(F)


     TERMINFO(F)                                UNIX System V



     Name
          terminfo - format of compiled terminfo file


     Description
          Compiled  terminfo  descriptions  are   placed   under   the
          directory  /usr/lib/terminfo.   In  order  to avoid a linear
          search of a huge UNIX system directory, a  two-level  scheme
          is  used: /usr/lib/terminfo/c/name where name is the name of
          the terminal, and c is the first character of  name.   Thus,
          act4  can  be  found  in  the file /usr/lib/terminfo/a/act4.
          Synonyms for the same terminal 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  tic(C)  program,  and
          read  by  the routine setupterm in terminfo(S).  The file is
          divided into six parts: the header, terminal names,  boolean
          flags, numbers, 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 values  are
          illegal.   The  -1  generally  means  that  a  capability is
          missing  from  this  terminal.   Note   that   this   format
          corresponds to the hardware of the VAX and PDP-11.  Machines
          in which 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 various
          names for the terminal, separated by the `|' character.  The
          section is terminated with an ASCII NUL character.

          The boolean flags have one byte for each flag.  This byte 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 representation.  Padding
          information $<nn> and parameter information  %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 setupterm to expect a different
          set  of  capabilities than are actually present in the file.
          Either the database may have been  updated  since  setupterm
          was  recompiled  (resulting in extra unrecognized entries in
          the file) or the  program  may  have  been  recompiled  more
          recently than the database was updated (resulting in missing
          entries).  The routine setupterm 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=^],

          3000 032 001      \0 025  \0  \b  \0 212  \0   "  \0   m   i   c   r
          020   o   t   e   r   m   |   a   c   t   4   |   m   i   c   r   o
          040   t   e   r   m       a   c   t       i   v  \0  \0 001  \0  \0
          060  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
          100  \0  \0   P  \0 377 377 030  \0 377 377 377 377 377 377 377 377
          120 377 377 377 377  \0  \0 002  \0 377 377 377 377 004  \0 006  \0
          140  \b  \0 377 377 377 377  \n  \0 026  \0 030  \0 377 377 032  \0
          160 377 377 377 377 034  \0 377 377 036  \0 377 377 377 377 377 377
          200 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
          *
          520 377 377 377 377      \0 377 377 377 377 377 377 377 377 377 377
          540 377 377 377 377 377 377 007  \0  \r  \0  \f  \0 036  \0 037  \0
          560 024   %   p   1   %   c   %   p   2   %   c  \0  \n  \0 035  \0
          600  \b  \0 030  \0 032  \0  \n  \0

          Some limitations: the total size of a  compiled  description
          cannot  exceed  4096 bytes; the name field cannot exceed 128
          bytes.


     Files
          /usr/lib/terminfo/*/*    compiled terminal  capability  data
          base


     See Also
          terminfo(M), terminfo(S), tic(C)


     (printed 8/23/89)                                  TERMINFO(F)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026