-.\" $Id: mandocdb.8,v 1.1 2011/07/14 14:36:37 schwarze Exp $
+.\" $Id: mandocdb.8,v 1.3 2011/07/15 17:59:29 kristaps Exp $
.\"
.\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: July 14 2011 $
+.Dd $Mdocdate: July 15 2011 $
.Dt MANDOCDB 8
.Os
.Sh NAME
.Nd index UNIX manuals
.Sh SYNOPSIS
.Nm
-.Op Fl ruv
-.Op Fl d Ar dir
-.Ar
+.Op Fl v
+.Op Ar dir...
+.Nm
+.Op Fl v
+.Fl d Ar dir
+.Op Ar
+.Nm
+.Op Fl v
+.Fl u Ar dir
+.Op Ar
.Sh DESCRIPTION
The
.Nm
utility extracts keywords from
.Ux
-manuals and indexes them for fast retrieval.
+manuals and indexes them in a
+.Sx Keyword Database
+and
+.Sx Index Database
+for fast retrieval.
The arguments are as follows:
.Bl -tag -width Ds
.It Fl d Ar dir
-The directory into which to write the keyword and index databases.
-.It Ar
-Read input from zero or more files in
-.Xr mdoc 7
-or
-.Xr man 7
-.Ux
-manual format.
-.It Fl r
-Remove entries.
-This will remove the index and keyword references.
-If the record is not found, it is ignored.
-.It Fl u
-Update the record.
-This will first remove the record (as in
-.Fl r )
-then re-add it.
+Remove
+.Ar
+from the databases in
+.Ar dir .
+.It Fl u Ar dir
+Update (remove and re-add)
+.Ar
+from the databases in
+.Ar dir .
+.It Ar dir...
+Recursively add files rooted at each
+.Ar dir
+to the databases in the respective
+.Ar dir .
+Existing databases are truncated.
.It Fl v
-Verbose output.
-If specified once, prints the name of each indexed file.
-If twice, prints keywords for each file.
+Verbose operation.
+Use once to display all files added or removed and twice for keywords as
+well.
.El
.Pp
By default,
.Nm
-constructs a new
-.Sx Index Database
-and
-.Sx Keyword Database
-in the current working directory.
-Existing databases are truncated.
+creates databases in each
+.Ar dir
+using files rooted in that directory.
.Pp
-If fatal parse errors are encountered, the offending file is printed to
-stderr, omitted from the index, and the parse continues with the next
-input file.
+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 ,
and a nil-terminated description.
.El
.Pp
-Both the manual section and description may be zero-length.
+Both the manual section and description may be zero-length if the record
+is unassigned.
Entries are sequentially-numbered, but the filenames are unordered.
.Ss Keyword Database
The keyword database,
.Ud
.Sh IMPLEMENTATION NOTES
The time to construct a new database pair grows linearly with the
-number of keywords in the input.
+number of keywords in the input files.
However, removing or updating entries with
-.Fl r
+.Fl u
or
-.Fl u ,
+.Fl d ,
respectively, grows as a multiple of the index length and input size.
.Sh FILES
.Bl -tag -width Ds
The output databases are corrupt and should be removed .
.El
.Sh SEE ALSO
-.Xr mandoc 1
+.Xr mandoc 1 ,
+.Xr btree 3 ,
+.Xr recno 3
.Sh AUTHORS
The
.Nm