=================================================================== RCS file: /cvs/mandoc/mdoc.h,v retrieving revision 1.93 retrieving revision 1.96 diff -u -p -r1.93 -r1.96 --- mandoc/mdoc.h 2010/06/27 15:52:41 1.93 +++ mandoc/mdoc.h 2010/07/01 22:56:17 1.96 @@ -1,4 +1,4 @@ -/* $Id: mdoc.h,v 1.93 2010/06/27 15:52:41 kristaps Exp $ */ +/* $Id: mdoc.h,v 1.96 2010/07/01 22:56:17 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -249,6 +249,12 @@ struct mdoc_arg { unsigned int refcnt; }; +enum mdoc_endbody { + ENDBODY_NOT = 0, + ENDBODY_SPACE, + ENDBODY_NOSPACE, +}; + enum mdoc_list { LIST__NONE = 0, LIST_bullet, @@ -301,6 +307,8 @@ struct mdoc_node { #define MDOC_ACTED (1 << 1) /* has been acted upon */ #define MDOC_EOS (1 << 2) /* at sentence boundary */ #define MDOC_LINE (1 << 3) /* first macro/text on line */ +#define MDOC_SYNPRETTY (1 << 4) /* SYNOPSIS-style formatting */ +#define MDOC_ENDED (1 << 5) /* rendering has been ended */ enum mdoc_type type; /* AST node type */ enum mdoc_sec sec; /* current named section */ /* FIXME: these can be union'd to shave a few bytes. */ @@ -310,10 +318,11 @@ struct mdoc_node { struct mdoc_node *body; /* BLOCK */ struct mdoc_node *tail; /* BLOCK */ char *string; /* TEXT */ + enum mdoc_endbody end; /* BODY */ union { - struct mdoc_bl Bl; - struct mdoc_bd Bd; + struct mdoc_bl *Bl; + struct mdoc_bd *Bd; } data; }; @@ -333,7 +342,7 @@ struct mdoc; /* See mdoc.3 for documentation. */ void mdoc_free(struct mdoc *); -struct mdoc *mdoc_alloc(const struct regset *, void *, int, mandocmsg); +struct mdoc *mdoc_alloc(struct regset *, void *, int, mandocmsg); void mdoc_reset(struct mdoc *); int mdoc_parseln(struct mdoc *, int, char *, int); const struct mdoc_node *mdoc_node(const struct mdoc *);