=================================================================== RCS file: /cvs/mandoc/mandoc.3,v retrieving revision 1.28 retrieving revision 1.36 diff -u -p -r1.28 -r1.36 --- mandoc/mandoc.3 2014/11/26 21:40:17 1.28 +++ mandoc/mandoc.3 2016/01/08 17:48:09 1.36 @@ -1,7 +1,7 @@ -.\" $Id: mandoc.3,v 1.28 2014/11/26 21:40:17 schwarze Exp $ +.\" $Id: mandoc.3,v 1.36 2016/01/08 17:48:09 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons -.\" Copyright (c) 2010 Ingo Schwarze +.\" Copyright (c) 2010-2016 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -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: November 26 2014 $ +.Dd $Mdocdate: January 8 2016 $ .Dt MANDOC 3 .Os .Sh NAME @@ -37,13 +37,11 @@ .Nm mparse_result , .Nm mparse_strerror , .Nm mparse_strlevel -.Nm mparse_wait , .Nd mandoc macro compiler library -.Sh LIBRARY -.Lb libmandoc .Sh SYNOPSIS .In sys/types.h .In mandoc.h +.Pp .Fd "#define ASCII_NBRSP" .Fd "#define ASCII_HYPH" .Fd "#define ASCII_BREAK" @@ -52,7 +50,6 @@ .Fa "int options" .Fa "enum mandoclevel wlevel" .Fa "mandocmsg mmsg" -.Fa "const struct mchars *mchars" .Fa "char *defos" .Fc .Ft void @@ -76,10 +73,9 @@ .Fo mparse_keep .Fa "struct mparse *parse" .Fc -.Ft "enum mandoclevel" +.Ft int .Fo mparse_open .Fa "struct mparse *parse" -.Fa "int *fd" .Fa "const char *fname" .Fc .Ft "enum mandoclevel" @@ -107,10 +103,6 @@ .Fo mparse_strlevel .Fa "enum mandoclevel" .Fc -.Ft "enum mandoclevel" -.Fo mparse_wait -.Fa "struct mparse *parse" -.Fc .In sys/types.h .In mandoc.h .In mdoc.h @@ -176,10 +168,18 @@ initiate a parsing sequence with and .Fn mparse_alloc ; .It -parse files or file descriptors with +open a file with +.Xr open 2 +or +.Fn mparse_open ; +.It +parse it with .Fn mparse_readfd ; .It -retrieve a parsed syntax tree, if the parse was successful, with +close it with +.Xr close 2 ; +.It +retrieve the syntax tree with .Fn mparse_result ; .It iterate over parse nodes with @@ -206,17 +206,11 @@ and .Ss Types .Bl -ohang .It Vt "enum mandocerr" -A fatal error, error, or warning message during parsing. +An error or warning message during parsing. .It Vt "enum mandoclevel" A classification of an .Vt "enum mandocerr" as regards system operation. -.It Vt "struct mchars" -An opaque pointer to a a character table. -Created with -.Xr mchars_alloc 3 -and freed with -.Xr mchars_free 3 . .It Vt "struct mparse" An opaque pointer to a running parse sequence. Created with @@ -227,7 +221,7 @@ This may be used across parsed input if .Fn mparse_reset is called between parses. .It Vt "mandocmsg" -A prototype for a function to handle fatal error, error, and warning +A prototype for a function to handle error and warning messages emitted by the parser. .El .Ss Functions @@ -331,7 +325,7 @@ This is for example useful in to quickly build minimal databases. .It Ar wlevel Can be set to -.Dv MANDOCLEVEL_FATAL , +.Dv MANDOCLEVEL_BADARG , .Dv MANDOCLEVEL_ERROR , or .Dv MANDOCLEVEL_WARNING . @@ -341,9 +335,6 @@ A callback function to handle errors and warnings. See .Pa main.c for an example. -.It Ar mchars -An opaque pointer to a a character table obtained from -.Xr mchars_alloc 3 . .It Ar defos A default string for the .Xr mdoc 7 @@ -388,17 +379,15 @@ Declared in implemented in .Pa read.c . .It Fn mparse_open -If the +Open the file for reading. +If that fails and .Fa fname -ends in -.Pa .gz , -open with -.Xr gunzip 1 ; -otherwise, with -.Xr open 2 . -Return a file descriptor open for reading in -.Fa fd , -or -1 on failure. +does not already end in +.Ql .gz , +try again after appending +.Ql .gz . +Save the information whether the file is zipped or not. +Return a file descriptor open for reading or -1 on failure. It can be passed to .Fn mparse_readfd or used directly. @@ -407,17 +396,15 @@ Declared in implemented in .Pa read.c . .It Fn mparse_readfd -Parse a file or file descriptor. -If -.Va fd -is -1, -.Va fname -is opened for reading. -Otherwise, -.Va fname -is assumed to be the name associated with -.Va fd . -This may be called multiple times with different parameters; however, +Parse a file descriptor opened with +.Xr open 2 +or +.Fn mparse_open . +Pass the associated filename in +.Va fname . +This function may be called multiple times with different parameters; however, +.Xr close 2 +and .Fn mparse_reset should be invoked between parses. Declared in @@ -434,14 +421,7 @@ implemented in .Pa read.c . .It Fn mparse_result Obtain the result of a parse. -Only successful parses -.Po -i.e., those where -.Fn mparse_readfd -returned less than MANDOCLEVEL_FATAL -.Pc -should invoke this function, in which case one of the three pointers will -be filled in. +One of the three pointers will be filled in. Declared in .In mandoc.h , implemented in @@ -458,27 +438,6 @@ Declared in .In mandoc.h , implemented in .Pa read.c . -.It Fn mparse_wait -Bury a -.Xr gunzip 1 -child process -.Fa child_pid -that was spawned with -.Fn mparse_open . -To be called after the parse sequence is complete. -Returns -.Dv MANDOCLEVEL_OK -on success and -.Dv MANDOCLEVEL_SYSERR -on failure, that is, when -.Xr wait 2 -fails, or when -.Xr gunzip 1 -died from a signal or exited with non-zero status. -Declared in -.In mandoc.h , -implemented in -.Pa read.c . .El .Ss Variables .Bl -ohang @@ -598,7 +557,7 @@ and fields), its position in the tree (the .Va parent , .Va child , -.Va nchild , +.Va last , .Va next and .Va prev