search manual page databases
mansearch(const struct mansearch
*search, const struct manpaths *paths,
int argc, char *argv,
struct manpage **res, size_t
mansearch() function returns information about
manuals matching a search query from a
The query arguments are as follows:
- const struct mansearch *search
- Search options, defined in
- const struct manpaths *paths
- Directories to be searched, defined in
- int argc, char *argv
- Search criteria, usually taken from the command line.
The output arguments are as follows:
For each manual page tree, the search is done in two steps. In the first step, a
list of pages matching the search criteria is built. In the second step, the
requested information about these pages is retrieved from the database and
assembled into the res array.
- struct manpage **res
- Returns a pointer to an array of result structures defined in
The user is expected to call
free(3) on the
file, names, and
output fields of all structures, as well as the
res array itself.
- size_t *sz
- Returns the number of result structures contained in
All function mentioned here are defined in the file
Command line parsing is done by the function
building a singly linked list of expr structures, using
the helper functions
The names, sections, and architectures of the manuals found are assembled into
the names field of the result structure by the function
- The manual page database.
mansearch() subsystem first appeared in
A module to search manual page databases was first written by
2011, at first using the Berkeley DB; he rewrote it for SQLite3 in 2012, and
removed the dependency on SQLite3 in 2016.