~ubuntu-branches/debian/sid/ncurses/sid-200908151543

« back to all changes in this revision

Viewing changes to man/term.5

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2008-12-14 21:06:00 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20081214210600-2rdjwvpplgvh3zeb
Tags: 5.7+20081213-1
MergingĀ upstreamĀ versionĀ 5.7+20081213.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
.\"***************************************************************************
2
 
.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 
2
.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
3
3
.\"                                                                          *
4
4
.\" Permission is hereby granted, free of charge, to any person obtaining a  *
5
5
.\" copy of this software and associated documentation files (the            *
26
26
.\" authorization.                                                           *
27
27
.\"***************************************************************************
28
28
.\"
29
 
.\" $Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp $
30
 
.TH TERM 5
 
29
.\" $Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp $
 
30
.TH term 5
31
31
.ds n 5
32
32
.ds d @TERMINFO@
33
33
.SH NAME
35
35
.SH SYNOPSIS
36
36
.B term
37
37
.SH DESCRIPTION
38
 
.PP
 
38
.SS STORAGE LOCATION
39
39
Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
40
 
In order to avoid a linear search of a huge \s-1UNIX\s+1 system directory, a
41
 
two-level scheme is used: \fB\*d/c/name\fP
42
 
where
 
40
Two configurations are supported (when building the ncurses libraries):
 
41
.TP 5
 
42
.B directory tree
 
43
A two-level scheme is used to avoid a linear search
 
44
of a huge \s-1UNIX\s+1 system directory: \fB\*d/c/name\fP where
43
45
.I name
44
46
is the name of the terminal, and
45
47
.I c
50
52
can be found in the file \fB\*d/a/act4\fP.
51
53
Synonyms for the same terminal are implemented by multiple
52
54
links to the same compiled file.
53
 
.PP
 
55
.TP 5
 
56
.B hashed database
 
57
Using Berkeley database, two types of records are stored:
 
58
the terminfo data in the same format as stored in a directory tree with
 
59
the terminfo's primary name as a key,
 
60
and records containing only aliases pointing to the primary name.
 
61
.IP
 
62
If built to write hashed databases,
 
63
ncurses can still read terminfo databases organized as a directory tree,
 
64
but cannot write entries into the directory tree.
 
65
It can write (or rewrite) entries in the hashed database.
 
66
.IP
 
67
ncurses distinguishes the two cases in the TERMINFO and TERMINFO_DIRS
 
68
environment variable by assuming a directory tree for entries that
 
69
correspond to an existing directory,
 
70
and hashed database otherwise.
 
71
.SS STORAGE FORMAT
54
72
The format has been chosen so that it will be the same on all hardware.
55
73
An 8 or more bit byte is assumed, but no assumptions about byte ordering
56
74
or sign extension are made.
57
75
.PP
58
76
The compiled file is created with the
59
 
.I tic
 
77
.B @TIC@
60
78
program, and read by the routine
61
79
.IR setupterm .
62
80
The file is divided into six parts:
72
90
This section contains six short integers in the format
73
91
described below.
74
92
These integers are
 
93
.RS 5
 
94
.TP 5
75
95
(1) the magic number (octal 0432);
 
96
.TP 5
76
97
(2) the size, in bytes, of the names section;
 
98
.TP 5
77
99
(3) the number of bytes in the boolean section;
 
100
.TP 5
78
101
(4) the number of short integers in the numbers section;
 
102
.TP 5
79
103
(5) the number of offsets (short integers) in the strings section;
 
104
.TP 5
80
105
(6) the size, in bytes, of the string table.
 
106
.RE
81
107
.PP
82
108
Short integers are stored in two 8-bit bytes.
83
109
The first byte contains the least significant 8 bits of the value,
128
154
It contains all the values of string capabilities referenced in
129
155
the string section.
130
156
Each string is null terminated.
131
 
.PP
 
157
.SS EXTENDED STORAGE FORMAT
 
158
The previous section describes the conventional terminfo binary format.
 
159
With some minor variations of the offsets (see PORTABILITY),
 
160
the same binary format is used in all modern UNIX systems.
 
161
Each system uses a predefined set of boolean, number or string capabilities.
 
162
.PP
 
163
The ncurses libraries and applications support extended terminfo binary format,
 
164
allowing users to define capabilities which are loaded at runtime.  This
 
165
extension is made possible by using the fact that the other implementations
 
166
stop reading the terminfo data when they have reached the end of the size given
 
167
in the header.
 
168
ncurses checks the size, and if it exceeds that due to the predefined data,
 
169
continues to parse according to its own scheme.
 
170
.PP
 
171
First, it reads the extended header (5 short integers):
 
172
.RS 5
 
173
.TP 5
 
174
(1)
 
175
count of extended boolean capabilities
 
176
.TP 5
 
177
(2)
 
178
count of extended numeric capabilities
 
179
.TP 5
 
180
(3)
 
181
count of extended string capabilities
 
182
.TP 5
 
183
(4)
 
184
size of the extended string table in bytes.
 
185
.TP 5
 
186
(5)
 
187
last offset of the extended string table in bytes.
 
188
.RE
 
189
.PP
 
190
Using the counts and sizes, ncurses allocates arrays and reads data
 
191
for the extended capabilties in the same order as the header information.
 
192
.PP
 
193
The extended string table contains values for string capabilities.
 
194
After the end of these values, it contains the names for each of
 
195
the extended capabilities in order, e.g., booleans, then numbers and
 
196
finally strings.
 
197
.
 
198
.SH PORTABILITY
132
199
Note that it is possible for
133
200
.I setupterm
134
201
to expect a different set of capabilities
155
222
capabilities to the string table that (in the binary format) collide with
156
223
System V and XSI Curses extensions.  See \fBterminfo\fR(\*n) for detailed
157
224
discussion of terminfo source compatibility issues.
158
 
.PP
 
225
.SH EXAMPLE
159
226
As an example, here is a hex dump of the description for the Lear-Siegler
160
227
ADM-3, a popular though rather stupid early terminal:
161
228
.nf
193
260
.ft R
194
261
.fi
195
262
.sp
196
 
.PP
 
263
.SH LIMITS
197
264
Some limitations: total compiled entries cannot exceed 4096 bytes.
198
265
The name field cannot exceed 128 bytes.
199
266
.SH FILES
200
267
\*d/*/* compiled terminal capability data base
201
268
.SH SEE ALSO
202
269
\fBcurses\fR(3X), \fBterminfo\fR(\*n).
 
270
.SH AUTHORS
 
271
Thomas E. Dickey
 
272
.br
 
273
extended terminfo format for ncurses 5.0
 
274
.br
 
275
hashed database support for ncurses 5.6
 
276
.sp
 
277
Eric S. Raymond
203
278
.\"#
204
279
.\"# The following sets edit modes for GNU EMACS
205
280
.\"# Local Variables: