version 1.3, 2011/07/15 17:59:29 |
version 1.13, 2011/12/16 08:04:34 |
|
|
.Nd index UNIX manuals |
.Nd index UNIX manuals |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm |
.Nm |
.Op Fl v |
.Op Fl av |
.Op Ar dir... |
.Op Fl C Ar file |
.Nm |
.Nm |
|
.Op Fl av |
|
.Ar dir ... |
|
.Nm |
.Op Fl v |
.Op Fl v |
.Fl d Ar dir |
.Fl d Ar dir |
.Op Ar |
.Op Ar |
Line 42 manuals and indexes them in a |
|
Line 45 manuals and indexes them in a |
|
and |
and |
.Sx Index Database |
.Sx Index Database |
for fast retrieval. |
for fast retrieval. |
|
.Pp |
|
By default, |
|
.Nm |
|
creates databases in each |
|
.Ar dir |
|
using the files |
|
.Sm off |
|
.Sy man Ar section Li / |
|
.Op Ar arch Li / |
|
.Ar title . section |
|
.Sm on |
|
and |
|
.Sm off |
|
.Sy cat Ar section Li / |
|
.Op Ar arch Li / |
|
.Ar title . Sy 0 |
|
.Sm on |
|
in that directory; |
|
existing databases are truncated. |
|
If |
|
.Ar dir |
|
is not provided, |
|
.Nm |
|
uses the default paths stipulated by |
|
.Xr man 1 . |
|
.Pp |
The arguments are as follows: |
The arguments are as follows: |
.Bl -tag -width Ds |
.Bl -tag -width "-C file" |
|
.It Fl a |
|
Use all directories and files found below |
|
.Ar dir ... . |
|
.It Fl C Ar file |
|
Specify an alternative configuration |
|
.Ar file |
|
in |
|
.Xr man.conf 5 |
|
format. |
.It Fl d Ar dir |
.It Fl d Ar dir |
Remove |
Merge (remove and re-add) |
.Ar |
.Ar |
from the databases in |
to the database in |
.Ar dir . |
.Ar dir |
|
without truncating it. |
.It Fl u Ar dir |
.It Fl u Ar dir |
Update (remove and re-add) |
Remove |
.Ar |
.Ar |
from the databases in |
from the database in |
.Ar dir . |
|
.It Ar dir... |
|
Recursively add files rooted at each |
|
.Ar dir |
.Ar dir |
to the databases in the respective |
without truncating it. |
.Ar dir . |
|
Existing databases are truncated. |
|
.It Fl v |
.It Fl v |
Verbose operation. |
Display all files added or removed to the index. |
Use once to display all files added or removed and twice for keywords as |
|
well. |
|
.El |
.El |
.Pp |
.Pp |
By default, |
|
.Nm |
|
creates databases in each |
|
.Ar dir |
|
using files rooted in that directory. |
|
.Pp |
|
If fatal parse errors are encountered while parsing, the offending file |
If fatal parse errors are encountered while parsing, the offending file |
is printed to stderr, omitted from the index, and the parse continues |
is printed to stderr, omitted from the index, and the parse continues |
with the next input file. |
with the next input file. |
Line 84 database with record values consisting of |
|
Line 110 database with record values consisting of |
|
.Pp |
.Pp |
.Bl -enum -compact |
.Bl -enum -compact |
.It |
.It |
a nil-terminated filename, |
the string |
|
.Cm mdoc , |
|
.Cm man , |
|
or |
|
.Cm cat |
|
to indicate the file type |
|
.Po |
|
file in |
|
.Xr mdoc 7 , |
|
.Xr man 7 , |
|
and post-formatted, respectively |
|
.Pc , |
.It |
.It |
a nil-terminated manual section, |
the filename relative to the databases' path, |
.It |
.It |
a nil-terminated manual title, |
the manual section, |
.It |
.It |
a nil-terminated architecture |
the manual title, |
.Pq this is not often available |
|
.It |
.It |
and a nil-terminated description. |
the architecture |
|
.Pq often empty , |
|
.It |
|
and the description. |
.El |
.El |
.Pp |
.Pp |
|
Each of the above is NUL-terminated. |
|
.Pp |
Both the manual section and description may be zero-length if the record |
Both the manual section and description may be zero-length if the record |
is unassigned. |
is unassigned. |
Entries are sequentially-numbered, but the filenames are unordered. |
Entries are sequentially-numbered, but the filenames are unordered. |
Line 104 The keyword database, |
|
Line 145 The keyword database, |
|
.Pa mandoc.db , |
.Pa mandoc.db , |
is a |
is a |
.Xr btree 3 |
.Xr btree 3 |
database of nil-terminated keywords (record length is non-zero string |
database of NUL-terminated keywords (record length is non-zero string |
length plus one) mapping to a 8-byte binary field consisting of the |
length plus one) mapping to a 12-byte binary field consisting of the |
keyword type and source |
64-bit keyword type and 32-bit source |
.Sx Index Database |
.Sx Index Database |
record number. |
record number, both in network-byte order. |
The type, a 32-bit bit-mask in host order, consists of the following |
The type bit-mask consists of the following |
fields: |
values mapping into |
|
.Xr mdoc 7 |
|
macro identifiers: |
.Pp |
.Pp |
.Bl -tag -width Ds -offset indent -compact |
.Bl -column "x0x0000000000000001ULLx" "xLix" -offset indent -compact |
.It Li 0x01 |
.It Li 0x0000000000000001ULL Ta \&An |
The name of a manual page as given in the NAME section. |
.It Li 0x0000000000000002ULL Ta \&Ar |
.It Li 0x02 |
.It Li 0x0000000000000004ULL Ta \&At |
A function prototype name as given in the SYNOPSIS section. |
.It Li 0x0000000000000008ULL Ta \&Bsx |
.It Li 0x04 |
.It Li 0x0000000000000010ULL Ta \&Bx |
A utility name as given in the SYNOPSIS section. |
.It Li 0x0000000000000020ULL Ta \&Cd |
.It Li 0x08 |
.It Li 0x0000000000000040ULL Ta \&Cm |
An include file as given in the SYNOPSIS section. |
.It Li 0x0000000000000080ULL Ta \&Dv |
.It Li 0x10 |
.It Li 0x0000000000000100ULL Ta \&Dx |
A variable name as given in the SYNOPSIS section. |
.It Li 0x0000000000000200ULL Ta \&Em |
.It Li 0x20 |
.It Li 0x0000000000000400ULL Ta \&Er |
A standard as given in the STANDARDS section. |
.It Li 0x0000000000000800ULL Ta \&Ev |
.It Li 0x40 |
.It Li 0x0000000000001000ULL Ta \&Fa |
An author as given in the AUTHORS section. |
.It Li 0x0000000000002000ULL Ta \&Fl |
.It Li 0x80 |
.It Li 0x0000000000004000ULL Ta \&Fn |
A configuration as given in the SYNOPSIS section. |
.It Li 0x0000000000008000ULL Ta \&Ft |
.It Li 0x100 |
.It Li 0x0000000000010000ULL Ta \&Fx |
Free-form descriptive text as given in the NAME section. |
.It Li 0x0000000000020000ULL Ta \&Ic |
.It Li 0x200 |
.It Li 0x0000000000040000ULL Ta \&In |
Cross-links between manuals. |
.It Li 0x0000000000080000ULL Ta \&Lb |
Listed as the link name, then a period, then the link section. |
.It Li 0x0000000000100000ULL Ta \&Li |
If the link has no section, the period terminates the string. |
.It Li 0x0000000000200000ULL Ta \&Lk |
.It Li 0x400 |
.It Li 0x0000000000400000ULL Ta \&Ms |
Path reference as given in the FILES section. |
.It Li 0x0000000000800000ULL Ta \&Mt |
.It Li 0x800 |
.It Li 0x0000000001000000ULL Ta \&Nd |
Environment variable as given in the ENVIRONMENT section. |
.It Li 0x0000000002000000ULL Ta \&Nm |
.It Li 0x1000 |
.It Li 0x0000000004000000ULL Ta \&Nx |
Error codes as given in the ERRORS section. |
.It Li 0x0000000008000000ULL Ta \&Ox |
|
.It Li 0x0000000010000000ULL Ta \&Pa |
|
.It Li 0x0000000020000000ULL Ta \&Rs |
|
.It Li 0x0000000040000000ULL Ta \&Sh |
|
.It Li 0x0000000080000000ULL Ta \&Ss |
|
.It Li 0x0000000100000000ULL Ta \&St |
|
.It Li 0x0000000200000000ULL Ta \&Sy |
|
.It Li 0x0000000400000000ULL Ta \&Tn |
|
.It Li 0x0000000800000000ULL Ta \&Va |
|
.It Li 0x0000001000000000ULL Ta \&Vt |
|
.It Li 0x0000002000000000ULL Ta \&Xr |
.El |
.El |
.Pp |
.Pp |
The last four bytes are a host-ordered record number within the |
The last four bytes are a host-ordered record number within the |
.Sx Index Database . |
.Sx Index Database . |
.Pp |
|
The |
|
.Nm |
|
utility is |
|
.Ud |
|
.Sh IMPLEMENTATION NOTES |
.Sh IMPLEMENTATION NOTES |
The time to construct a new database pair grows linearly with the |
The time to construct a new database pair grows linearly with the |
number of keywords in the input files. |
number of keywords in the input files. |
Line 169 keyword database mapping keywords to a type and file r |
|
Line 217 keyword database mapping keywords to a type and file r |
|
A |
A |
.Xr recno 3 |
.Xr recno 3 |
database of indexed file-names. |
database of indexed file-names. |
|
.It Pa /etc/man.conf |
|
The default |
|
.Xr man 1 |
|
configuration file. |
.El |
.El |
.Sh EXIT STATUS |
.Sh EXIT STATUS |
The |
The |
Line 189 Such errors cause |
|
Line 241 Such errors cause |
|
to exit at once, possibly in the middle of parsing or formatting a file. |
to exit at once, possibly in the middle of parsing or formatting a file. |
The output databases are corrupt and should be removed . |
The output databases are corrupt and should be removed . |
.El |
.El |
|
.Sh DIAGNOSTICS |
|
If the following errors occur, the |
|
.Nm |
|
databases should be rebuilt. |
|
.Bl -diag |
|
.It "%s: Corrupt database" |
|
The keyword database file indicated by |
|
.Pa %s |
|
is unreadable. |
|
.It "%s: Corrupt index" |
|
The index database file indicated by |
|
.Pa %s |
|
is unreadable. |
|
.It "%s: Path too long" |
|
The file |
|
.Pa %s |
|
is too long. |
|
This usually indicates database corruption or invalid command-line |
|
arguments. |
|
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc 1 , |
.Xr apropos 1 , |
|
.Xr man 1 , |
|
.Xr whatis 1 , |
.Xr btree 3 , |
.Xr btree 3 , |
.Xr recno 3 |
.Xr recno 3 , |
|
.Xr man.conf 5 |
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
.Nm |
.Nm |
utility was written by |
utility was written by |
.An Kristaps Dzonsons Aq kristaps@bsd.lv . |
.An Kristaps Dzonsons , |
|
.Mt kristaps@bsd.lv . |