]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdocterm.c
Formatting.
[mandoc.git] / mdocterm.c
index b8a6e6641b2143736cdf4ac4f428869db431f6e8..a8a06c1288866645f19a9ddd79063674dcf1ae08 100644 (file)
@@ -1,4 +1,4 @@
-       /* $Id: mdocterm.c,v 1.8 2009/02/24 14:52:55 kristaps Exp $ */
+       /* $Id: mdocterm.c,v 1.10 2009/02/25 12:27:37 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -410,28 +410,38 @@ body(struct termp *p, const struct mdoc_meta *meta,
                const struct mdoc_node *node)
 {
        int              dochild;
+       struct termpair  pair;
 
        /* Pre-processing. */
 
        dochild = 1;
+       pair.type = 0;
+       pair.offset = 0;
+       pair.flag = 0;
 
        if (MDOC_TEXT != node->type) {
                if (termacts[node->tok].pre)
-                       if ( ! (*termacts[node->tok].pre)(p, meta, node))
+                       if ( ! (*termacts[node->tok].pre)(p, &pair, meta, node))
                                dochild = 0;
        } else /* MDOC_TEXT == node->type */
                word(p, node->data.text.string);
 
        /* Children. */
 
+       if (TERMPAIR_FLAG & pair.type)
+               p->flags |= pair.flag;
+
        if (dochild && node->child)
                body(p, meta, node->child);
 
+       if (TERMPAIR_FLAG & pair.type)
+               p->flags &= ~pair.flag;
+
        /* Post-processing. */
 
        if (MDOC_TEXT != node->type)
                if (termacts[node->tok].post)
-                       (*termacts[node->tok].post)(p, meta, node);
+                       (*termacts[node->tok].post)(p, &pair, meta, node);
 
        /* Siblings. */