=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.61 retrieving revision 1.65 diff -u -p -r1.61 -r1.65 --- mandoc/mdoc_html.c 2010/04/08 08:17:55 1.61 +++ mandoc/mdoc_html.c 2010/05/17 22:11:42 1.65 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.61 2010/04/08 08:17:55 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.65 2010/05/17 22:11:42 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -27,6 +27,7 @@ #include #include +#include "mandoc.h" #include "out.h" #include "html.h" #include "mdoc.h" @@ -387,7 +388,7 @@ print_mdoc_head(MDOC_ARGS) print_gen_head(h); bufinit(h); - buffmt(h, "%s(%d)", m->title, m->msec); + buffmt(h, "%s(%s)", m->title, m->msec); if (m->arch) { bufcat(h, " ("); @@ -509,7 +510,7 @@ mdoc_root_pre(MDOC_ARGS) } (void)snprintf(title, BUFSIZ - 1, - "%s(%d)", m->title, m->msec); + "%s(%s)", m->title, m->msec); /* XXX: see note in mdoc_root_post() about divs. */ @@ -729,7 +730,11 @@ mdoc_nm_pre(MDOC_ARGS) { struct htmlpair tag; - if (SEC_SYNOPSIS == n->sec && n->prev) { + if (NULL == n->child && NULL == m->name) + return(1); + + if (SEC_SYNOPSIS == n->sec && + n->prev && MDOC_LINE & n->flags) { bufcat_style(h, "clear", "both"); PAIR_STYLE_INIT(&tag, h); print_otag(h, TAG_BR, 1, &tag); @@ -1180,7 +1185,7 @@ mdoc_ex_pre(MDOC_ARGS) h->flags &= ~HTML_NOSPACE; } - if (n->child->next) + if (n->child && n->child->next) print_text(h, "utilities exit"); else print_text(h, "utility exits"); @@ -1288,7 +1293,7 @@ mdoc_d1_pre(MDOC_ARGS) /* FIXME: D1 shouldn't be literal. */ - SCALE_VS_INIT(&su, INDENT - 2); + SCALE_VS_INIT(&su, INDENT - 1); bufcat_su(h, "margin-left", &su); PAIR_CLASS_INIT(&tag[0], "lit"); PAIR_STYLE_INIT(&tag[1], h); @@ -1401,7 +1406,8 @@ mdoc_bd_pre(MDOC_ARGS) break; } if (comp) { - print_otag(h, TAG_DIV, 0, tag); + PAIR_STYLE_INIT(&tag[0], h); + print_otag(h, TAG_DIV, 1, tag); return(1); } SCALE_VS_INIT(&su, 1); @@ -1557,7 +1563,7 @@ mdoc_fd_pre(MDOC_ARGS) struct htmlpair tag; struct roffsu su; - if (SEC_SYNOPSIS == n->sec) { + if (SEC_SYNOPSIS == n->sec && MDOC_LINE & n->flags) { if (n->next && MDOC_Fd != n->next->tok) { SCALE_VS_INIT(&su, 1); bufcat_su(h, "margin-bottom", &su); @@ -1605,7 +1611,7 @@ mdoc_ft_pre(MDOC_ARGS) { struct htmlpair tag; - if (SEC_SYNOPSIS == n->sec) + if (SEC_SYNOPSIS == n->sec && MDOC_LINE & n->flags) print_otag(h, TAG_DIV, 0, NULL); PAIR_CLASS_INIT(&tag, "ftype"); @@ -1626,7 +1632,7 @@ mdoc_fn_pre(MDOC_ARGS) int sz, i; struct roffsu su; - if (SEC_SYNOPSIS == n->sec) { + if (SEC_SYNOPSIS == n->sec && MDOC_LINE & n->flags) { SCALE_HS_INIT(&su, INDENT); bufcat_su(h, "margin-left", &su); su.scale = -su.scale; @@ -1867,7 +1873,7 @@ mdoc_in_pre(MDOC_ARGS) int i; struct roffsu su; - if (SEC_SYNOPSIS == n->sec) { + if (SEC_SYNOPSIS == n->sec && MDOC_LINE & n->flags) { if (n->next && MDOC_In != n->next->tok) { SCALE_VS_INIT(&su, 1); bufcat_su(h, "margin-bottom", &su); @@ -1949,7 +1955,7 @@ mdoc_rv_pre(MDOC_ARGS) print_text(h, "()"); } - if (n->child->next) + if (n->child && n->child->next) print_text(h, "functions return"); else print_text(h, "function returns"); @@ -2172,7 +2178,7 @@ mdoc_lb_pre(MDOC_ARGS) { struct htmlpair tag; - if (SEC_SYNOPSIS == n->sec) + if (SEC_LIBRARY == n->sec && MDOC_LINE & n->flags) print_otag(h, TAG_DIV, 0, NULL); PAIR_CLASS_INIT(&tag, "lib"); print_otag(h, TAG_SPAN, 1, &tag);