=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.32 retrieving revision 1.36 diff -u -p -r1.32 -r1.36 --- mandoc/mdoc_html.c 2009/10/18 19:03:37 1.32 +++ mandoc/mdoc_html.c 2009/10/22 18:55:32 1.36 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.32 2009/10/18 19:03:37 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.36 2009/10/22 18:55:32 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -456,22 +456,18 @@ print_mdoc_node(MDOC_ARGS) static void mdoc_root_post(MDOC_ARGS) { - struct tm tm; struct htmlpair tag[2]; struct tag *t, *tt; - char b[BUFSIZ]; + char b[DATESIZ]; + time2a(m->date, b, DATESIZ); + /* * XXX: this should use divs, but in Firefox, divs with nested * divs for some reason puke when trying to put a border line * below. So I use tables, instead. */ - (void)localtime_r(&m->date, &tm); - - if (0 == strftime(b, BUFSIZ - 1, "%B %e, %Y", &tm)) - err(EXIT_FAILURE, "strftime"); - PAIR_CLASS_INIT(&tag[0], "footer"); bufcat_style(h, "width", "100%"); PAIR_STYLE_INIT(&tag[1], h); @@ -1068,6 +1064,8 @@ mdoc_it_pre(MDOC_ARGS) /* Override width in some cases. */ switch (type) { + case (MDOC_Item): + /* FALLTHROUGH */ case (MDOC_Inset): /* FALLTHROUGH */ case (MDOC_Diag): @@ -1272,6 +1270,8 @@ mdoc_d1_pre(MDOC_ARGS) if (MDOC_BLOCK != n->type) return(1); + /* FIXME: D1 shouldn't be literal. */ + SCALE_VS_INIT(&su, INDENT - 2); bufcat_su(h, "margin-left", &su); PAIR_CLASS_INIT(&tag[0], "lit"); @@ -1287,20 +1287,20 @@ mdoc_sx_pre(MDOC_ARGS) { struct htmlpair tag[2]; const struct mdoc_node *nn; - char lbuf[BUFSIZ]; + char buf[BUFSIZ]; /* FIXME: duplicates? */ - (void)strlcpy(lbuf, "#", BUFSIZ); + (void)strlcpy(buf, "#", BUFSIZ); for (nn = n->child; nn; nn = nn->next) { - (void)strlcat(lbuf, nn->string, BUFSIZ); + (void)strlcat(buf, nn->string, BUFSIZ); if (nn->next) - (void)strlcat(lbuf, "_", BUFSIZ); + (void)strlcat(buf, "_", BUFSIZ); } PAIR_CLASS_INIT(&tag[0], "link-sec"); tag[1].key = ATTR_HREF; - tag[1].val = lbuf; + tag[1].val = buf; print_otag(h, TAG_A, 2, tag); return(1); @@ -1839,6 +1839,8 @@ mdoc_in_pre(MDOC_ARGS) } else print_otag(h, TAG_DIV, 0, NULL); } + + /* FIXME: there's a buffer bug in here somewhere. */ PAIR_CLASS_INIT(&tag[0], "includes"); print_otag(h, TAG_SPAN, 1, tag);