From fe9b889199f13571d05ab89a183c94420ba7ae58 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 22 Jan 2023 12:32:59 -0800 Subject: [PATCH] render: Fix spanned width distribution for cells not at top or left. This code always used the widths of rules at the left or top side of the table, even in cases where the spanned cells were not at the top of left side of the table. This obviously made the calculations wrong sometimes. --- src/output/render.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/output/render.c b/src/output/render.c index 32e6f45137..57ccd5f95c 100644 --- a/src/output/render.c +++ b/src/output/render.c @@ -718,8 +718,10 @@ render_page_create (const struct render_params *params, struct table *table, params->ops->measure_cell_width (params->aux, &cell, &w[MIN], &w[MAX]); for (int i = 0; i < 2; i++) - distribute_spanned_width (w[i], &columns[i][cell.d[H][0]], - rules[H], table_cell_colspan (&cell)); + distribute_spanned_width (w[i], + &columns[i][cell.d[H][0]], + &rules[H][cell.d[H][0]], + table_cell_colspan (&cell)); } x = cell.d[H][1]; } @@ -795,7 +797,9 @@ render_page_create (const struct render_params *params, struct table *table, { int w = joined_width (page, H, cell.d[H][0], cell.d[H][1]); int h = params->ops->measure_cell_height (params->aux, &cell, w); - distribute_spanned_width (h, &rows[cell.d[V][0]], rules[V], + distribute_spanned_width (h, + &rows[cell.d[V][0]], + &rules[V][cell.d[V][0]], table_cell_rowspan (&cell)); } x = cell.d[H][1]; -- 2.30.2