Provided by: libmandoc-dev_1.14.6-3_amd64 bug

NAME

       mansearch — search manual page databases

SYNOPSIS

       #include <stdint.h>
       #include <manconf.h>
       #include <mansearch.h>

       int
       mansearch(const struct mansearch *search,     const struct manpaths *paths,    int argc,    char *argv[],
           struct manpage **res, size_t *sz);

DESCRIPTION

       The mansearch() function returns information about manuals matching a search query  from  a  mandoc.db(5)
       database.

       The query arguments are as follows:

       const struct mansearch *search
               Search options, defined in <mansearch.h>.

       const struct manpaths *paths
               Directories to be searched, defined in <manconf.h>.

       int argc, char *argv[]
               Search criteria, usually taken from the command line.

       The output arguments are as follows:

       struct manpage **res
               Returns  a  pointer  to  an  array  of  result  structures defined in <mansearch.h>.  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 res.

IMPLEMENTATION NOTES

       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.

       All function mentioned here are defined in the file mansearch.c.

   Finding matches
       Command line parsing is done by the function exprcomp() building a singly linked list of expr structures,
       using the helper functions expr_and() and exprterm().

   Assembling the results
       The  names,  sections,  and  architectures of the manuals found are assembled into the names field of the
       result structure by the function buildnames().

FILES

       mandoc.db  The manual page database.

SEE ALSO

       apropos(1), mandoc.db(5), makewhatis(8)

HISTORY

       The mansearch() subsystem first appeared in OpenBSD 5.6.

AUTHORS

       A module to search manual page databases was first written  by  Kristaps  Dzonsons  <kristaps@bsd.lv>  in
       2011,  at  first  using  the  Berkeley  DB;  he  rewrote  it  for  SQLite3  in  2012,  and  Ingo Schwarze
       <schwarze@openbsd.org> removed the dependency on SQLite3 in 2016.

Debian                                           March 30, 2017                                     MANSEARCH(3)