=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.34 retrieving revision 1.37 diff -u -p -r1.34 -r1.37 --- mandoc/mdoc_html.c 2009/10/19 11:02:24 1.34 +++ mandoc/mdoc_html.c 2009/10/24 05:52:13 1.37 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.34 2009/10/19 11:02:24 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.37 2009/10/24 05:52:13 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -254,6 +254,7 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = { {mdoc__x_pre, mdoc__x_post}, /* %Q */ {mdoc_sp_pre, NULL}, /* br */ {mdoc_sp_pre, NULL}, /* sp */ + {mdoc__x_pre, mdoc__x_post}, /* %U */ }; @@ -456,22 +457,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); @@ -1274,6 +1271,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"); @@ -1289,20 +1288,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); @@ -2149,6 +2148,8 @@ static int mdoc__x_pre(MDOC_ARGS) { struct htmlpair tag; + + /* TODO: %U. */ switch (n->tok) { case(MDOC__A):