summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/man_html.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2011-01-16 19:41:16 +0000
committerschwarze <schwarze@openbsd.org>2011-01-16 19:41:16 +0000
commit366f22eecfe645c4a899be000f88d0e19cf615b1 (patch)
treede0a16963bb76a19174ae1863e5ff6dfca6f89de /usr.bin/mandoc/man_html.c
parentSome improvements to error handling from kristaps@: (diff)
downloadwireguard-openbsd-366f22eecfe645c4a899be000f88d0e19cf615b1.tar.xz
wireguard-openbsd-366f22eecfe645c4a899be000f88d0e19cf615b1.zip
Merge from bsd.lv, original commit message by kristaps@:
Change how -Thtml behaves with tables: use multiple rows, with widths set by COL, until an external macro is encountered. At this point in time, close out the table and process the macro. When the first table row is again re-encountered, re-start the table. This requires a bit of tracking added to "struct html", but the change is very small and follows the logic of meta-fonts. This all follows a bug-report by joerg@.
Diffstat (limited to 'usr.bin/mandoc/man_html.c')
-rw-r--r--usr.bin/mandoc/man_html.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/usr.bin/mandoc/man_html.c b/usr.bin/mandoc/man_html.c
index 2f7d14cc16a..e4ec6dcc6e0 100644
--- a/usr.bin/mandoc/man_html.c
+++ b/usr.bin/mandoc/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.32 2011/01/16 03:46:21 schwarze Exp $ */
+/* $Id: man_html.c,v 1.33 2011/01/16 19:41:16 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -201,18 +201,32 @@ print_man_node(MAN_ARGS)
print_otag(h, TAG_BR, 0, NULL);
return;
case (MAN_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 scope of font prior to opening a macro
- * scope. Assert that the metafont is on the top of the
- * stack (it's never nested).
+ * scope.
*/
if (HTMLFONT_NONE != h->metac) {
h->metal = h->metac;
h->metac = HTMLFONT_NONE;
}
+
+ /*
+ * 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;
+ }
if (mans[n->tok].pre)
child = (*mans[n->tok].pre)(m, n, mh, h);
break;