- switch (n->type) {
- case (MDOC_BLOCK):
- break;
- case (MDOC_HEAD):
- return(mdoc_tbl_head_pre(m, n, h, type, w));
- case (MDOC_BODY):
- return(mdoc_tbl_body_pre(m, n, h, type, w));
- default:
- abort();
- /* NOTREACHED */
+ /* Flip to body/block processing. */
+
+ if (MDOC_BODY == n->type)
+ return(mdoc_it_body_pre(m, n, h, type));
+ if (MDOC_BLOCK == n->type)
+ return(mdoc_it_block_pre(m, n, h, type, comp,
+ &offs, &width));
+
+ /* Override column widths. */
+
+ if (MDOC_Column == type) {
+ nn = n->parent->child;
+ for (i = 0; nn && nn != n; nn = nn->next, i++)
+ /* Counter... */ ;
+ if (i < (int)bl->args->argv[wp].sz)
+ a2width(bl->args->argv[wp].value[i], &width);