- return(1);
-}
-
-
-static int
-mdoc_it_head_pre(MDOC_ARGS, int type, struct roffsu *width)
-{
- struct htmlpair tag;
- struct ord *ord;
- char nbuf[BUFSIZ];
-
- switch (type) {
- case (MDOC_Item):
- /* FALLTHROUGH */
- case (MDOC_Ohang):
- print_otag(h, TAG_DIV, 0, NULL);
- break;
- case (MDOC_Column):
- bufcat_su(h, "min-width", width);
- bufcat_style(h, "clear", "none");
- if (n->next && MDOC_HEAD == n->next->type)
- bufcat_style(h, "float", "left");
- PAIR_STYLE_INIT(&tag, h);
- print_otag(h, TAG_DIV, 1, &tag);
- break;
- default:
- bufcat_su(h, "min-width", width);
- SCALE_INVERT(width);
- bufcat_su(h, "margin-left", width);
- if (n->next && n->next->child)
- bufcat_style(h, "float", "left");
- SCALE_HS_INIT(width, 1);
- bufcat_su(h, "margin-right", width);
- PAIR_STYLE_INIT(&tag, h);
- print_otag(h, TAG_DIV, 1, &tag);
- break;
- }
+ if (MDOC_HEAD == n->type) {
+ if (LIST_column != n->norm->Bl.type)
+ return(0);
+
+ /*
+ * For each column, print out the <COL> tag with our
+ * suggested width. The last column gets min-width, as
+ * in terminal mode it auto-sizes to the width of the
+ * screen and we want to preserve that behaviour.
+ */
+
+ for (i = 0; i < (int)n->norm->Bl.ncols; i++) {
+ a2width(n->norm->Bl.cols[i], &su);
+ bufinit(h);
+ if (i < (int)n->norm->Bl.ncols - 1)
+ bufcat_su(h, "width", &su);
+ else
+ bufcat_su(h, "min-width", &su);
+ PAIR_STYLE_INIT(&tag[0], h);
+ print_otag(h, TAG_COL, 1, tag);
+ }