=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.305 retrieving revision 1.308 diff -u -p -r1.305 -r1.308 --- mandoc/mdoc_html.c 2018/05/29 01:55:50 1.305 +++ mandoc/mdoc_html.c 2018/06/25 14:06:07 1.308 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.305 2018/05/29 01:55:50 schwarze Exp $ */ +/* $Id: mdoc_html.c,v 1.308 2018/06/25 14:06:07 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze @@ -749,40 +749,20 @@ mdoc_it_pre(MDOC_ARGS) static int mdoc_bl_pre(MDOC_ARGS) { - char cattr[21]; - struct tag *t; + char cattr[28]; struct mdoc_bl *bl; - size_t i; enum htmltag elemtype; - bl = &n->norm->Bl; - switch (n->type) { case ROFFT_BODY: return 1; - case ROFFT_HEAD: - if (bl->type != LIST_column || bl->ncols == 0) - return 0; - - /* - * For each column, print out the tag with our - * suggested width. The last column gets min-width, as - * in terminal mode it auto-sizes to the width of the - * screen and we want to preserve that behaviour. - */ - - t = print_otag(h, TAG_COLGROUP, ""); - for (i = 0; i < bl->ncols - 1; i++) - print_otag(h, TAG_COL, "sw+w", bl->cols[i]); - print_otag(h, TAG_COL, "swW", bl->cols[i]); - print_tagq(h, t); return 0; - default: break; } + bl = &n->norm->Bl; switch (bl->type) { case LIST_bullet: elemtype = TAG_UL; @@ -819,7 +799,7 @@ mdoc_bl_pre(MDOC_ARGS) break; case LIST_tag: if (bl->offs) - print_otag(h, TAG_DIV, "cswl", "Bl-tag", bl->offs); + print_otag(h, TAG_DIV, "c", "Bd-indent"); print_otag(h, TAG_DL, "c", bl->comp ? "Bl-tag Bl-compact" : "Bl-tag"); return 1; @@ -830,9 +810,11 @@ mdoc_bl_pre(MDOC_ARGS) default: abort(); } + if (bl->offs != NULL) + (void)strlcat(cattr, " Bd-indent", sizeof(cattr)); if (bl->comp) (void)strlcat(cattr, " Bl-compact", sizeof(cattr)); - print_otag(h, elemtype, "cswl", cattr, bl->offs); + print_otag(h, elemtype, "c", cattr); return 1; } @@ -864,7 +846,7 @@ mdoc_d1_pre(MDOC_ARGS) if (n->type != ROFFT_BLOCK) return 1; - print_otag(h, TAG_DIV, "c", "D1"); + print_otag(h, TAG_DIV, "c", "Bd Bd-indent"); if (n->tok == MDOC_Dl) print_otag(h, TAG_CODE, "c", "Li"); @@ -886,7 +868,7 @@ mdoc_sx_pre(MDOC_ARGS) static int mdoc_bd_pre(MDOC_ARGS) { - int comp, offs, sv; + int comp, sv; struct roff_node *nn; if (n->type == ROFFT_HEAD) @@ -911,19 +893,10 @@ mdoc_bd_pre(MDOC_ARGS) if (n->norm->Bd.offs == NULL || ! strcmp(n->norm->Bd.offs, "left")) - offs = 0; - else if ( ! strcmp(n->norm->Bd.offs, "indent")) - offs = INDENT; - else if ( ! strcmp(n->norm->Bd.offs, "indent-two")) - offs = INDENT * 2; + print_otag(h, TAG_DIV, "c", "Bd"); else - offs = -1; + print_otag(h, TAG_DIV, "c", "Bd Bd-indent"); - if (offs == -1) - print_otag(h, TAG_DIV, "cswl", "Bd", n->norm->Bd.offs); - else - print_otag(h, TAG_DIV, "cshl", "Bd", offs); - if (n->norm->Bd.type != DISP_unfilled && n->norm->Bd.type != DISP_literal) return 1; @@ -1443,7 +1416,7 @@ mdoc_bf_pre(MDOC_ARGS) cattr = "Bf No"; /* Cannot use TAG_SPAN because it may contain blocks. */ - print_otag(h, TAG_DIV, "cshl", cattr, 1); + print_otag(h, TAG_DIV, "c", cattr); return 1; }