mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-25 11:37:56 +00:00
154 lines
5.4 KiB
Groff
154 lines
5.4 KiB
Groff
|
.TH TERM 5
|
||
|
.ds n 5
|
||
|
.ds d /usr/lib/terminfo
|
||
|
.SH NAME
|
||
|
term \- format of compiled term file.
|
||
|
.SH SYNOPSIS
|
||
|
.B term
|
||
|
.SH DESCRIPTION
|
||
|
.PP
|
||
|
Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
|
||
|
In order to avoid a linear search of a huge \s-1UNIX\s+1 system directory, a
|
||
|
two-level scheme is used: \fB\*b/c/name\fP
|
||
|
where
|
||
|
.I name
|
||
|
is the name of the terminal, and
|
||
|
.I c
|
||
|
is the first character of
|
||
|
.IR name .
|
||
|
Thus,
|
||
|
.I act4
|
||
|
can be found in the file \fB\*d/a/act4\fP.
|
||
|
Synonyms for the same terminal are implemented by multiple
|
||
|
links to the same compiled file.
|
||
|
.PP
|
||
|
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.
|
||
|
.PP
|
||
|
The compiled file is created with the
|
||
|
.I tic
|
||
|
program, and read by the routine
|
||
|
.IR setupterm .
|
||
|
Both of these pieces of software are part of
|
||
|
.IR ncurses (3X).
|
||
|
The file is divided into six parts:
|
||
|
the header,
|
||
|
terminal names,
|
||
|
boolean flags,
|
||
|
numbers,
|
||
|
strings,
|
||
|
and
|
||
|
string table.
|
||
|
.PP
|
||
|
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.
|
||
|
.PP
|
||
|
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 capability is missing from this terminal.
|
||
|
Note that this format corresponds to the hardware of the \s-1VAX\s+1 and \s-1PDP\s+1-11.
|
||
|
Machines where this does not correspond to the hardware read the
|
||
|
integers as two bytes and compute the result.
|
||
|
.PP
|
||
|
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 \s-1ASCII NUL\s+1 character.
|
||
|
.PP
|
||
|
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>.
|
||
|
.PP
|
||
|
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.
|
||
|
.PP
|
||
|
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.
|
||
|
.PP
|
||
|
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 \ec notation are stored in their
|
||
|
interpreted form, not the printing representation.
|
||
|
Padding information $<nn> and parameter information %x are
|
||
|
stored intact in uninterpreted form.
|
||
|
.PP
|
||
|
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.
|
||
|
.PP
|
||
|
Note that it is possible for
|
||
|
.I setupterm
|
||
|
to expect a different set of capabilities
|
||
|
than are actually present in the file.
|
||
|
Either the database may have been updated since
|
||
|
.I setupterm
|
||
|
has been 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
|
||
|
.I 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.
|
||
|
.PP
|
||
|
As an example, an octal dump of the description for the Microterm ACT 4
|
||
|
is included:
|
||
|
.nf
|
||
|
.sp
|
||
|
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=^],
|
||
|
.sp
|
||
|
.ft CW
|
||
|
\s-2000 032 001 \e0 025 \e0 \eb \e0 212 \e0 " \e0 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 \e0 \e0 001 \e0 \e0
|
||
|
060 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0
|
||
|
100 \e0 \e0 P \e0 377 377 030 \e0 377 377 377 377 377 377 377 377
|
||
|
120 377 377 377 377 \e0 \e0 002 \e0 377 377 377 377 004 \e0 006 \e0
|
||
|
140 \eb \e0 377 377 377 377 \en \e0 026 \e0 030 \e0 377 377 032 \e0
|
||
|
160 377 377 377 377 034 \e0 377 377 036 \e0 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 \e0 377 377 377 377 377 377 377 377 377 377
|
||
|
540 377 377 377 377 377 377 007 \e0 \er \e0 \ef \e0 036 \e0 037 \e0
|
||
|
560 024 % p 1 % c % p 2 % c \e0 \en \e0 035 \e0
|
||
|
600 \eb \e0 030 \e0 032 \e0 \en \e0\s+2
|
||
|
.ft R
|
||
|
.fi
|
||
|
.sp
|
||
|
.PP
|
||
|
Some limitations: total compiled entries cannot exceed 4096 bytes.
|
||
|
The name field cannot exceed 128 bytes.
|
||
|
.SH FILES
|
||
|
\*d/*/* compiled terminal capability data base
|
||
|
.SH "SEE ALSO"
|
||
|
ncurses(3X), terminfo(\*n).
|