diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-11-15 06:45:31 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-11-15 06:45:31 +0000 |
commit | 9ccb94640e7d013c2433b151dd1bafdf57538ecb (patch) | |
tree | 9a592dc5c8db75a54cbd13fc139f867b0cba09ca /man_html.c | |
parent | a067fc75956a25725c91bbfc0130ab038867c888 (diff) | |
download | mandoc-9ccb94640e7d013c2433b151dd1bafdf57538ecb.tar.gz mandoc-9ccb94640e7d013c2433b151dd1bafdf57538ecb.tar.zst mandoc-9ccb94640e7d013c2433b151dd1bafdf57538ecb.zip |
\f escapes appear to work properly for -Thtml -man. Needs more testing.
Diffstat (limited to 'man_html.c')
-rw-r--r-- | man_html.c | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -1,4 +1,4 @@ -/* $Id: man_html.c,v 1.20 2009/11/14 19:23:58 kristaps Exp $ */ +/* $Id: man_html.c,v 1.21 2009/11/15 06:45:31 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se> * @@ -190,9 +190,15 @@ print_man_node(MAN_ARGS) print_text(h, n->string); return; default: + /* + * Close out scope of font prior to opening a macro + * scope. Assert that the metafont is on the top of the + * stack (it's never nested). + */ if (h->metaf) { assert(h->metaf == t); print_tagq(h, h->metaf); + assert(NULL == h->metaf); t = h->tags.head; } if (mans[n->tok].pre) @@ -200,6 +206,9 @@ print_man_node(MAN_ARGS) break; } + if (child && n->child) + print_man_nodelist(m, n->child, h); + print_stagq(h, t); bufinit(h); @@ -386,10 +395,11 @@ man_alt_pre(MAN_ARGS) const struct man_node *nn; struct tag *t; int i; - struct htmlpair tagi, tagb, *tagp; + struct htmlpair tagi, tagb, tagr, *tagp; PAIR_CLASS_INIT(&tagi, "italic"); PAIR_CLASS_INIT(&tagb, "bold"); + PAIR_CLASS_INIT(&tagr, "roman"); for (i = 0, nn = n->child; nn; nn = nn->next, i++) { switch (n->tok) { @@ -400,16 +410,16 @@ man_alt_pre(MAN_ARGS) tagp = i % 2 ? &tagb : &tagi; break; case (MAN_RI): - tagp = i % 2 ? &tagi : NULL; + tagp = i % 2 ? &tagi : &tagr; break; case (MAN_IR): - tagp = i % 2 ? NULL : &tagi; + tagp = i % 2 ? &tagr : &tagi; break; case (MAN_BR): - tagp = i % 2 ? NULL : &tagb; + tagp = i % 2 ? &tagr : &tagb; break; case (MAN_RB): - tagp = i % 2 ? &tagb : NULL; + tagp = i % 2 ? &tagb : &tagr; break; default: abort(); @@ -419,12 +429,9 @@ man_alt_pre(MAN_ARGS) if (i) h->flags |= HTML_NOSPACE; - if (tagp) { - t = print_otag(h, TAG_SPAN, 1, tagp); - print_man_node(m, nn, h); - print_tagq(h, t); - } else - print_man_node(m, nn, h); + t = print_otag(h, TAG_SPAN, 1, tagp); + print_man_node(m, nn, h); + print_tagq(h, t); } return(0); |