summaryrefslogtreecommitdiff
path: root/usr.bin/mandoc/out.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2021-09-07 14:50:57 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2021-09-07 14:50:57 +0000
commita7fb1673780336c62922928999b8d7cfff8e6c3d (patch)
treea472994907a4ce4312cd1f581e5c04c6f9901bf2 /usr.bin/mandoc/out.c
parent24bbda3384768122e14323f0baa1e358e1de60ca (diff)
Correctly calculate required column widths for tables containing
cells that horizontally span columns which contains "n" (number) formatted cells on other rows. This requires updating total column widths from "n" formatted cells before starting width distribution from the spanning cells to their constituent columns.
Diffstat (limited to 'usr.bin/mandoc/out.c')
-rw-r--r--usr.bin/mandoc/out.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/mandoc/out.c b/usr.bin/mandoc/out.c
index b82200d1e6f..9a476b4d9f4 100644
--- a/usr.bin/mandoc/out.c
+++ b/usr.bin/mandoc/out.c
@@ -1,7 +1,8 @@
-/* $OpenBSD: out.c,v 1.52 2021/08/10 12:36:42 schwarze Exp $ */
+/* $OpenBSD: out.c,v 1.53 2021/09/07 14:50:56 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2011,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011, 2014, 2015, 2017, 2018, 2019, 2021
+ * Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -352,8 +353,6 @@ tblcalc(struct rofftbl *tbl, const struct tbl_span *sp_first,
col = tbl->cols + icol;
if (col->width > col->nwidth)
col->decimal += (col->width - col->nwidth) / 2;
- else
- col->width = col->nwidth;
if (col->flags & TBL_CELL_EQUAL) {
necol++;
if (ewidth < col->width)
@@ -561,5 +560,7 @@ tblcalc_number(struct rofftbl *tbl, struct roffcol *col,
if (totsz > col->nwidth)
col->nwidth = totsz;
+ if (col->nwidth > col->width)
+ col->width = col->nwidth;
return totsz;
}