diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-01-05 20:26:36 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-01-05 20:26:36 +0000 |
commit | 3d871d9086bbc5f79cd485dfb26b9d02a19cf2e3 (patch) | |
tree | 12c6882973b4bed0d9b5eb332153635e293e50e2 /mandoc.3 | |
parent | d9597fb775134ff4c4ae106fdb7f3214b5af2463 (diff) | |
download | mandoc-3d871d9086bbc5f79cd485dfb26b9d02a19cf2e3.tar.gz mandoc-3d871d9086bbc5f79cd485dfb26b9d02a19cf2e3.tar.zst mandoc-3d871d9086bbc5f79cd485dfb26b9d02a19cf2e3.zip |
Add an option -Q (quick) to mandocdb(8)
for accelerated generation of reduced-size databases.
Implement this by allowing the parsers to optionally
abort the parse sequence after the NAME section.
While here, garbage collect the unused void *arg attribute of
struct mparse and mparse_alloc() and fix some errors in mandoc(3).
This reduces the processing time of mandocdb(8) on /usr/share/man
by a factor of 2 and the database size by a factor of 4.
However, it still takes 5 times the time and 6 times the space
of makewhatis(8), so more work is clearly needed.
Diffstat (limited to 'mandoc.3')
-rw-r--r-- | mandoc.3 | 55 |
1 files changed, 46 insertions, 9 deletions
@@ -1,4 +1,4 @@ -.\" $Id: mandoc.3,v 1.22 2013/10/06 17:01:52 schwarze Exp $ +.\" $Id: mandoc.3,v 1.23 2014/01/05 20:26:36 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> .\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org> @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 6 2013 $ +.Dd $Mdocdate: January 5 2014 $ .Dt MANDOC 3 .Os .Sh NAME @@ -50,8 +50,8 @@ .In mandoc.h .Ft "enum mandoc_esc" .Fo mandoc_escape -.Fa "const char const **end" -.Fa "const char const **start" +.Fa "const char **end" +.Fa "const char **start" .Fa "int *sz" .Fc .Ft "const struct man_meta *" @@ -97,16 +97,17 @@ .Fc .Ft void .Fo mparse_alloc -.Fa "enum mparset type" +.Fa "enum mparset inttype" .Fa "enum mandoclevel wlevel" -.Fa "mandocmsg msg" -.Fa "void *msgarg" +.Fa "mandocmsg mmsg" +.Fa "char *defos" +.Fa "int quick" .Fc .Ft void .Fo mparse_free .Fa "struct mparse *parse" .Fc -.Ft void +.Ft const char * .Fo mparse_getkeep .Fa "const struct mparse *parse" .Fc @@ -203,7 +204,7 @@ An escape sequence classification. A fatal error, error, or warning message during parsing. .It Vt "enum mandoclevel" A classification of an -.Vt "enum mandoclevel" +.Vt "enum mandocerr" as regards system operation. .It Vt "struct mchars" An opaque pointer to an object allowing for translation between @@ -352,6 +353,42 @@ implemented in .Pa mdoc.c . .It Fn mparse_alloc Allocate a parser. +The arguments have the following effect: +.Bl -tag -offset 5n -width inttype +.It Ar inttype +When set to +.Dv MPARSE_MDOC +or +.Dv MPARSE_MAN , +only that parser will be used. +With +.Dv MPARSE_AUTO , +the document type will be automatically detected. +.It Ar wlevel +Can be set to +.Dv MANDOCLEVEL_FATAL , +.Dv MANDOCLEVEL_ERROR , +or +.Dv MANDOCLEVEL_WARNING . +Messages below the selected level will be suppressed. +.It Ar mmsg +A callback function to handle errors and warnings. +See +.Pa main.c +for an example. +.It Ar defos +A default string for the +.Xr mdoc 7 +.Sq \&Os +macro, overriding the +.Dv OSNAME +preprocessor definition and the results of +.Xr uname 3 . +.It Ar quick +When set, parsing is aborted after the NAME section. +This is for example useful to quickly build minimal databases. +.El +.Pp The same parser may be used for multiple files so long as .Fn mparse_reset is called between parses. |