]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_html.c
correct horizontal spacing of data cells
[mandoc.git] / mdoc_html.c
index 3cfab636173ae03de24eeebe91b7eda3161f697b..15d87f7e8bd371dc10cd787965d403126c07afb9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_html.c,v 1.140 2011/01/01 12:18:37 kristaps Exp $ */
+/*     $Id: mdoc_html.c,v 1.144 2011/01/13 14:30:13 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -420,11 +420,32 @@ print_mdoc_node(MDOC_ARGS)
                child = mdoc_root_pre(m, n, h);
                break;
        case (MDOC_TEXT):
+               /* No tables in this mode... */
+               assert(NULL == h->tblt);
+               if (' ' == *n->string && MDOC_LINE & n->flags)
+                       print_otag(h, TAG_BR, 0, NULL);
                print_text(h, n->string);
                return;
        case (MDOC_TBL):
+               /*
+                * This will take care of initialising all of the table
+                * state data for the first table, then tearing it down
+                * for the last one.
+                */
+               print_tbl(h, n->span);
                return;
        default:
+               /*
+                * Close out the current table, if it's open, and unset
+                * the "meta" table state.  This will be reopened on the
+                * next table element.
+                */
+               if (h->tblt) {
+                       print_tblclose(h);
+                       t = h->tags.head;
+               }
+
+               assert(NULL == h->tblt);
                if (mdocs[n->tok].pre && ENDBODY_NOT == n->end)
                        child = (*mdocs[n->tok].pre)(m, n, h);
                break;
@@ -827,6 +848,7 @@ mdoc_bx_pre(MDOC_ARGS)
        return(0);
 }
 
+/* ARGSUSED */
 static int
 mdoc_it_pre(MDOC_ARGS)
 {
@@ -941,7 +963,7 @@ mdoc_it_pre(MDOC_ARGS)
 static int
 mdoc_bl_pre(MDOC_ARGS)
 {
-       size_t           i;
+       int              i;
        struct htmlpair  tag[3];
        struct roffsu    su;
        char             buf[BUFSIZ];
@@ -963,10 +985,10 @@ mdoc_bl_pre(MDOC_ARGS)
                 * screen and we want to preserve that behaviour.
                 */
 
-               for (i = 0; i < n->norm->Bl.ncols; i++) {
+               for (i = 0; i < (int)n->norm->Bl.ncols; i++) {
                        a2width(n->norm->Bl.cols[i], &su);
                        bufinit(h);
-                       if (i < n->norm->Bl.ncols - 1)
+                       if (i < (int)n->norm->Bl.ncols - 1)
                                bufcat_su(h, "width", &su);
                        else
                                bufcat_su(h, "min-width", &su);