=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.126 retrieving revision 1.131 diff -u -p -r1.126 -r1.131 --- mandoc/mdoc_html.c 2010/12/17 10:37:26 1.126 +++ mandoc/mdoc_html.c 2010/12/19 12:14:36 1.131 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.126 2010/12/17 10:37:26 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.131 2010/12/19 12:14:36 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -287,7 +287,7 @@ a2width(const char *p, struct roffsu *su) { if ( ! a2roffsu(p, su, SCALE_MAX)) { - su->unit = SCALE_EM; + su->unit = SCALE_BU; su->scale = (int)strlen(p); } } @@ -354,7 +354,7 @@ a2offs(const char *p, struct roffsu *su) else if (0 == strcmp(p, "indent-two")) SCALE_HS_INIT(su, INDENT * 2); else if ( ! a2roffsu(p, su, SCALE_MAX)) { - su->unit = SCALE_EM; + su->unit = SCALE_BU; su->scale = (int)strlen(p); } } @@ -945,7 +945,10 @@ mdoc_bl_pre(MDOC_ARGS) PAIR_STYLE_INIT(&tag[0], h); assert(lists[n->data.Bl->type]); - PAIR_CLASS_INIT(&tag[1], lists[n->data.Bl->type]); + bufinit(h); + bufcat(h, "list "); + bufcat(h, lists[n->data.Bl->type]); + PAIR_INIT(&tag[1], ATTR_CLASS, h->buf); i = 2; /* Set the block's left-hand margin. */ @@ -1000,6 +1003,9 @@ mdoc_ex_pre(MDOC_ARGS) struct tag *t; struct htmlpair tag; + if (n->prev) + print_otag(h, TAG_BR, 0, NULL); + PAIR_CLASS_INIT(&tag, "utility"); print_text(h, "The"); @@ -1058,13 +1064,12 @@ mdoc_d1_pre(MDOC_ARGS) /* BLOCKQUOTE needs a block body. */ - if (MDOC_Dl == n->tok) { + if (MDOC_Dl == n->tok) PAIR_CLASS_INIT(&tag[0], "lit display"); - print_otag(h, TAG_DIV, 1, tag); - } else + else PAIR_CLASS_INIT(&tag[0], "display"); - print_otag(h, TAG_DIV, 1, tag); + print_otag(h, TAG_DIV, 1, tag); return(1); } @@ -1637,7 +1642,9 @@ mdoc_rv_pre(MDOC_ARGS) struct htmlpair tag; struct tag *t; - print_otag(h, TAG_DIV, 0, NULL); + if (n->prev) + print_otag(h, TAG_BR, 0, NULL); + print_text(h, "The"); for (nn = n->child; nn; nn = nn->next) { @@ -1833,8 +1840,9 @@ mdoc_lb_pre(MDOC_ARGS) { struct htmlpair tag; - if (SEC_LIBRARY == n->sec && MDOC_LINE & n->flags) - print_otag(h, TAG_DIV, 0, NULL); + if (SEC_LIBRARY == n->sec && MDOC_LINE & n->flags && n->prev) + print_otag(h, TAG_BR, 0, NULL); + PAIR_CLASS_INIT(&tag, "lib"); print_otag(h, TAG_SPAN, 1, &tag); return(1); @@ -1940,7 +1948,8 @@ mdoc_bk_pre(MDOC_ARGS) case (MDOC_HEAD): return(0); case (MDOC_BODY): - h->flags |= HTML_PREKEEP; + if (n->parent->args || 0 == n->prev->nchild) + h->flags |= HTML_PREKEEP; break; default: abort();