diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2012-01-10 09:31:39 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2012-01-10 09:31:39 +0000 |
commit | fae92e3f397194b6bde9fe2bf225e250cfadb2ca (patch) | |
tree | 2013d2df4e55f06903bd90f97e79933d87aae8b1 /usr.bin | |
parent | 6eaf771282b586b41ed4d7c2dac65e1f76f90756 (diff) |
Rename file from mandocdb.8; no change of content yet.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/mandoc/makewhatis.8 | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/usr.bin/mandoc/makewhatis.8 b/usr.bin/mandoc/makewhatis.8 new file mode 100644 index 00000000000..0afe2294bfe --- /dev/null +++ b/usr.bin/mandoc/makewhatis.8 @@ -0,0 +1,293 @@ +.\" $Id: makewhatis.8,v 1.1 2012/01/10 09:31:38 schwarze Exp $ +.\" +.\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: January 10 2012 $ +.Dt MANDOCDB 8 +.Os +.Sh NAME +.Nm mandocdb +.Nd index UNIX manuals +.Sh SYNOPSIS +.Nm +.Op Fl avW +.Op Fl C Ar file +.Nm +.Op Fl avW +.Ar dir ... +.Nm +.Op Fl vW +.Fl d Ar dir +.Op Ar +.Nm +.Op Fl vW +.Fl u Ar dir +.Op Ar +.Nm +.Fl t Ar +.Sh DESCRIPTION +The +.Nm +utility extracts keywords from +.Ux +manuals and indexes them in a +.Sx Keyword Database +and +.Sx Index Database +for fast retrieval by +.Xr apropos 1 , +.Xr whatis 1 , +and +.Xr man 1 Ns 's +.Fl k +option. +.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: +.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 +Merge (remove and re-add) +.Ar +to the database in +.Ar dir +without truncating it. +.It Fl t Ar +Check the given +.Ar files +for potential problems. +No databases are modified. +Implies +.Fl a +and +.Fl W . +All diagnostic messages are printed to the standard output; +the standard error output is not used. +.It Fl u Ar dir +Remove +.Ar +from the database in +.Ar dir +without truncating it. +.It Fl v +Display all files added or removed to the index. +.It Fl W +Print warnings about potential problems with manual pages +to the standard error output. +.El +.Pp +If fatal parse errors are encountered while parsing, the offending file +is printed to stderr, omitted from the index, and the parse continues +with the next input file. +.Ss Index Database +The index database, +.Pa mandoc.index , +is a +.Xr recno 3 +database with record values consisting of +.Pp +.Bl -enum -compact +.It +the character +.Cm d , +.Cm a , +or +.Cm c +to indicate the file type +.Po +.Xr mdoc 7 , +.Xr man 7 , +and post-formatted, respectively +.Pc , +.It +the filename relative to the databases' path, +.It +the manual section, +.It +the manual title, +.It +the architecture +.Pq often empty , +.It +and the description. +.El +.Pp +Each of the above is NUL-terminated. +.Pp +If the record value is zero-length, it is unassigned. +.Ss Keyword Database +The keyword database, +.Pa mandoc.db , +is a +.Xr btree 3 +database of NUL-terminated keywords (record length is non-zero string +length plus one) mapping to a 16-byte binary field consisting of the +64-bit keyword type and the 64-bit +.Sx Index Database +record number, both in network-byte order. +.Pp +The type bit-mask consists of the following +values mapping into +.Xr mdoc 7 +macro identifiers: +.Pp +.Bl -column "x0x0000000000000001ULLx" "xLix" -offset indent -compact +.It Li 0x0000000000000001ULL Ta \&An +.It Li 0x0000000000000002ULL Ta \&Ar +.It Li 0x0000000000000004ULL Ta \&At +.It Li 0x0000000000000008ULL Ta \&Bsx +.It Li 0x0000000000000010ULL Ta \&Bx +.It Li 0x0000000000000020ULL Ta \&Cd +.It Li 0x0000000000000040ULL Ta \&Cm +.It Li 0x0000000000000080ULL Ta \&Dv +.It Li 0x0000000000000100ULL Ta \&Dx +.It Li 0x0000000000000200ULL Ta \&Em +.It Li 0x0000000000000400ULL Ta \&Er +.It Li 0x0000000000000800ULL Ta \&Ev +.It Li 0x0000000000001000ULL Ta \&Fa +.It Li 0x0000000000002000ULL Ta \&Fl +.It Li 0x0000000000004000ULL Ta \&Fn +.It Li 0x0000000000008000ULL Ta \&Ft +.It Li 0x0000000000010000ULL Ta \&Fx +.It Li 0x0000000000020000ULL Ta \&Ic +.It Li 0x0000000000040000ULL Ta \&In +.It Li 0x0000000000080000ULL Ta \&Lb +.It Li 0x0000000000100000ULL Ta \&Li +.It Li 0x0000000000200000ULL Ta \&Lk +.It Li 0x0000000000400000ULL Ta \&Ms +.It Li 0x0000000000800000ULL Ta \&Mt +.It Li 0x0000000001000000ULL Ta \&Nd +.It Li 0x0000000002000000ULL Ta \&Nm +.It Li 0x0000000004000000ULL Ta \&Nx +.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 +.Sh IMPLEMENTATION NOTES +The time to construct a new database pair grows linearly with the +number of keywords in the input files. +However, removing or updating entries with +.Fl u +or +.Fl d , +respectively, grows as a multiple of the index length and input size. +.Sh FILES +.Bl -tag -width Ds +.It Pa mandoc.db +A +.Xr btree 3 +keyword database mapping keywords to a type and file reference in +.Pa mandoc.index . +.It Pa mandoc.index +A +.Xr recno 3 +database of indexed file-names. +.It Pa /etc/man.conf +The default +.Xr man 1 +configuration file. +.El +.Sh EXIT STATUS +The +.Nm +utility exits with one of the following values: +.Pp +.Bl -tag -width Ds -compact +.It 0 +No errors occurred. +.It 5 +Invalid command line arguments were specified. +No input files have been read. +.It 6 +An operating system error occurred, for example memory exhaustion or an +error accessing input files. +Such errors cause +.Nm +to exit at once, possibly in the middle of parsing or formatting a file. +The output databases are corrupt and should be removed. +.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 +.Xr apropos 1 , +.Xr man 1 , +.Xr whatis 1 , +.Xr btree 3 , +.Xr recno 3 , +.Xr man.conf 5 +.Sh AUTHORS +The +.Nm +utility was written by +.An Kristaps Dzonsons , +.Mt kristaps@bsd.lv . |