]> git.cameronkatri.com Git - mandoc.git/blobdiff - libmdoc.h
Proper `Bk -words' support: only suppress breaks within a line, but
[mandoc.git] / libmdoc.h
index 83a300e151eb0f358767209c8109aa4b4633d087..32328ff99df788c0b52f33d381a39980c638abab 100644 (file)
--- a/libmdoc.h
+++ b/libmdoc.h
@@ -1,4 +1,4 @@
-/*     $Id: libmdoc.h,v 1.55 2010/06/26 16:07:08 kristaps Exp $ */
+/*     $Id: libmdoc.h,v 1.59 2010/07/01 22:35:54 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -26,8 +26,8 @@ enum  mdoc_next {
 };
 
 struct mdoc {
-       void             *data;
-       mandocmsg         msg;
+       void             *data; /* private application data */
+       mandocmsg         msg; /* message callback */
        int               flags;
 #define        MDOC_HALT        (1 << 0) /* error in parse: halt */
 #define        MDOC_LITERAL     (1 << 1) /* in a literal scope */
@@ -36,17 +36,18 @@ struct      mdoc {
 #define        MDOC_PHRASELIT   (1 << 4) /* literal within a partila phrase */
 #define        MDOC_PPHRASE     (1 << 5) /* within a partial phrase */
 #define        MDOC_FREECOL     (1 << 6) /* `It' invocation should close */
+#define        MDOC_SYNOPSIS    (1 << 7) /* SYNOPSIS-style formatting */
        int               pflags;
-       enum mdoc_next    next;
-       struct mdoc_node *last;
-       struct mdoc_node *first;
-       struct mdoc_meta  meta;
+       enum mdoc_next    next; /* where to put the next node */
+       struct mdoc_node *last; /* the last node parsed */
+       struct mdoc_node *first; /* the first node parsed */
+       struct mdoc_meta  meta; /* document meta-data */
        enum mdoc_sec     lastnamed;
        enum mdoc_sec     lastsec;
+       struct regset    *regs; /* registers */
 };
 
 #define        MACRO_PROT_ARGS struct mdoc *m, \
-                       const struct regset *regs, \
                        enum mdoct tok, \
                        int line, \
                        int ppos, \
@@ -109,6 +110,9 @@ int           mdoc_block_alloc(struct mdoc *, int, int,
 int              mdoc_head_alloc(struct mdoc *, int, int, enum mdoct);
 int              mdoc_tail_alloc(struct mdoc *, int, int, enum mdoct);
 int              mdoc_body_alloc(struct mdoc *, int, int, enum mdoct);
+int              mdoc_endbody_alloc(struct mdoc *m, int line, int pos,
+                       enum mdoct tok, struct mdoc_node *body,
+                       enum mdoc_endbody end);
 void             mdoc_node_delete(struct mdoc *, struct mdoc_node *);
 void             mdoc_hash_init(void);
 enum mdoct       mdoc_hash_find(const char *);