diff options
Diffstat (limited to 'mdoc_html.c')
-rw-r--r-- | mdoc_html.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/mdoc_html.c b/mdoc_html.c index 7c0aeacc..0d71cd54 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -354,13 +354,12 @@ print_mdoc_node(MDOC_ARGS) html_fillmode(h, n->flags & NODE_NOFILL ? ROFF_nf : ROFF_fi); child = 1; - t = h->tag; - if (t->tag == TAG_P || t->tag == TAG_PRE) - t = t->next; - n->flags &= ~NODE_ENDED; switch (n->type) { case ROFFT_TEXT: + t = h->tag; + t->refcnt++; + /* No tables in this mode... */ assert(NULL == h->tblt); @@ -379,6 +378,8 @@ print_mdoc_node(MDOC_ARGS) h->flags |= HTML_NOSPACE; break; case ROFFT_EQN: + t = h->tag; + t->refcnt++; print_eqn(h, n->eqn); break; case ROFFT_TBL: @@ -395,13 +396,14 @@ print_mdoc_node(MDOC_ARGS) * the "meta" table state. This will be reopened on the * next table element. */ - if (h->tblt != NULL) { + if (h->tblt != NULL) print_tblclose(h); - t = h->tag; - } assert(h->tblt == NULL); + t = h->tag; + t->refcnt++; if (n->tok < ROFF_MAX) { roff_html_pre(h, n); + t->refcnt--; print_stagq(h, t); return; } @@ -421,6 +423,7 @@ print_mdoc_node(MDOC_ARGS) if (child && n->child != NULL) print_mdoc_nodelist(meta, n->child, h); + t->refcnt--; print_stagq(h, t); switch (n->type) { |