From: Ben Pfaff Date: Sun, 22 Jan 2023 20:32:59 +0000 (-0800) Subject: render: Fix spanned width distribution for cells not at top or left. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe9b889199f13571d05ab89a183c94420ba7ae58;p=pspp 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. --- 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];