]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_html.c
Removed need for superfluous `os' value in overstep calculation (thanks Ingo Schwarze).
[mandoc.git] / mdoc_html.c
index 535d44e12526349d6cee7333f9e5c363fff8cb32..5dbad7c2ee97805c42522b6f93209fe3b312b777 100644 (file)
@@ -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.37 2009/10/24 05:52:13 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -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,10 +457,11 @@ 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
@@ -467,11 +469,6 @@ mdoc_root_post(MDOC_ARGS)
         * 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 +1065,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 +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");
@@ -1287,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);
@@ -1840,6 +1841,8 @@ mdoc_in_pre(MDOC_ARGS)
                        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);
 
@@ -2146,6 +2149,8 @@ mdoc__x_pre(MDOC_ARGS)
 {
        struct htmlpair tag;
 
+       /* TODO: %U. */
+
        switch (n->tok) {
        case(MDOC__A):
                PAIR_CLASS_INIT(&tag, "ref-auth");