=================================================================== RCS file: /cvs/mandoc/Attic/man.3,v retrieving revision 1.17 retrieving revision 1.27 diff -u -p -r1.17 -r1.27 --- mandoc/Attic/man.3 2010/05/25 21:46:48 1.17 +++ mandoc/Attic/man.3 2010/12/17 11:41:45 1.27 @@ -1,4 +1,4 @@ -.\" $Id: man.3,v 1.17 2010/05/25 21:46:48 kristaps Exp $ +.\" $Id: man.3,v 1.27 2010/12/17 11:41:45 kristaps Exp $ .\" .\" Copyright (c) 2009-2010 Kristaps Dzonsons .\" @@ -14,7 +14,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: May 25 2010 $ +.Dd $Mdocdate: December 17 2010 $ .Dt MAN 3 .Os .Sh NAME @@ -32,7 +32,11 @@ .In man.h .Vt extern const char * const * man_macronames; .Ft "struct man *" -.Fn man_alloc "void *data" "int pflags" "mandocmsg msgs" +.Fo man_alloc +.Fa "struct regset *regs" +.Fa "void *data" +.Fa "mandocmsg msgs" +.Fc .Ft int .Fn man_endparse "struct man *man" .Ft void @@ -42,7 +46,11 @@ .Ft "const struct man_node *" .Fn man_node "const struct man *man" .Ft int -.Fn man_parseln "struct man *man" "int line" "char *buf" +.Fo man_parseln +.Fa "struct man *man" +.Fa "int line" +.Fa "char *buf" +.Fc .Ft void .Fn man_reset "struct man *man" .Sh DESCRIPTION @@ -68,107 +76,37 @@ The .Fn man_reset function may be used in order to reset the parser for another input sequence. -See the -.Sx EXAMPLES -section for a full example. .Pp Beyond the full set of macros defined in .Xr man 7 , the .Nm -library also accepts the following macros: +library also accepts the following macro: .Pp .Bl -tag -width Ds -compact .It PD -Has no effect. Handled as a current-scope line macro. -.It Sp -A synonym for -.Sq sp 0.5v -.Pq part of the standard preamble for Perl documentation . -Handled as a line macro. -.It Vb -A synonym for -.Sq nf -.Pq part of the standard preamble for Perl documentation . +Has no effect. Handled as a current-scope line macro. -.It Ve -A synonym for -.Sq fi , -closing -.Sq Vb -.Pq part of the standard preamble for Perl documentation . -Handled as a current-scope line macro. .El -.Pp -Furthermore, the following escapes are accepted to allow -.Xr pod2man 1 -documents to be correctly formatted: -\e*(-- (dash), -\e*(PI (pi), -\e*(L" (left double-quote), -\e*(R" (right double-quote), -\e*(C+ (C++), -\e*(C` (left single-quote), -\e*(C' (right single-quote), -\e*(Aq (apostrophe), -\e*^ (hat), -\e*, (comma), -\e*~ (tilde), -\e*/ (forward slash), -\e*: (umlaut), -\e*8 (beta), -\e*o (degree), -\e*(D- (Eth), -\e*(d- (eth), -\e*(Th (Thorn), -and -\e*(th (thorn). -.Sh REFERENCE -This section further defines the -.Sx Types , -.Sx Functions -and -.Sx Variables -available to programmers. -Following that, the -.Sx Abstract Syntax Tree -section documents the output tree. .Ss Types -Both functions (see -.Sx Functions ) -and variables (see -.Sx Variables ) -may use the following types: .Bl -ohang .It Vt struct man -An opaque type defined in -.Pa man.c . +An opaque type. Its values are only used privately within the library. -.It Vt mandocmsg -A function callback type defined in -.Pa mandoc.h . .It Vt struct man_node A parsed node. -Defined in -.Pa man.h . See .Sx Abstract Syntax Tree for details. .El .Ss Functions -Function descriptions follow: .Bl -ohang .It Fn man_alloc Allocates a parsing structure. The .Fa data -pointer is passed to callbacks in -.Fa cb , -which are documented further in the header file. -The -.Fa pflags -arguments are defined in -.Pa man.h . +pointer is passed to +.Fa msgs . Returns NULL on failure. If non-NULL, the pointer must be freed with .Fn man_free . @@ -282,14 +220,16 @@ on the finished parse tree with .Fn parsed . This example does not error-check nor free memory upon failure. .Bd -literal -offset indent +struct regset regs; struct man *man; struct man_node *node; char *buf; size_t len; int line; +bzero(®s, sizeof(struct regset)); line = 1; -man = man_alloc(NULL, 0, NULL); +man = man_alloc(®s, NULL, NULL); buf = NULL; alloc_len = 0; @@ -312,9 +252,13 @@ parsed(man, node); man_free(man); .Ed .Pp -Please see +To compile this, execute +.Pp +.Dl % cc main.c libman.a libmandoc.a +.Pp +where .Pa main.c -in the source archive for a rigorous reference. +is the example file. .Sh SEE ALSO .Xr mandoc 1 , .Xr man 7