X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Frender.c;h=eada45198612b05f9df72a0876807d8ba5ec5339;hb=bcaaee5f0bd21f443c8dcb5f67114e63d43673af;hp=0fad329ee47aaf03849bd4adf85a3df7e32e2e08;hpb=1abd7f599dd0d773add0a98fa3b612bc15aaf422;p=pspp diff --git a/src/output/render.c b/src/output/render.c index 0fad329ee4..eada451986 100644 --- a/src/output/render.c +++ b/src/output/render.c @@ -1514,18 +1514,14 @@ add_footnote_page (struct render_pager *p, const struct table_item *item) if (!n_footnotes) return; - struct tab_table *t = tab_create (2, n_footnotes); - + struct tab_table *t = tab_create (1, n_footnotes); for (size_t i = 0; i < n_footnotes; i++) if (f[i]) { - tab_text_format (t, 0, i, TAB_LEFT, "%s.", f[i]->marker); - tab_text (t, 1, i, TAB_LEFT, f[i]->content); + tab_text_format (t, 0, i, TAB_LEFT, "%s. %s", + f[i]->marker, f[i]->content); if (f[i]->style) - { - tab_add_style (t, 0, i, f[i]->style); - tab_add_style (t, 1, i, f[i]->style); - } + tab_add_style (t, 0, i, f[i]->style); } render_pager_add_table (p, &t->table, 0); @@ -1548,6 +1544,26 @@ add_text_page (struct render_pager *p, const struct table_item_text *t, render_pager_add_table (p, &tab->table, min_width); } +static void +add_layers_page (struct render_pager *p, + const struct table_item_layers *layers, int min_width) +{ + if (!layers) + return; + + struct tab_table *tab = tab_create (1, layers->n_layers); + for (size_t i = 0; i < layers->n_layers; i++) + { + const struct table_item_layer *layer = &layers->layers[i]; + tab_text (tab, 0, i, 0, layer->content); + for (size_t j = 0; j < layer->n_footnotes; j++) + tab_add_footnote (tab, 0, i, layer->footnotes[j]); + } + if (layers->style) + tab->styles[0] = area_style_clone (tab->container, layers->style); + render_pager_add_table (p, &tab->table, min_width); +} + /* Creates and returns a new render_pager for rendering TABLE_ITEM on the device with the given PARAMS. */ struct render_pager * @@ -1571,7 +1587,7 @@ render_pager_create (const struct render_params *params, add_text_page (p, table_item_get_title (table_item), title_width); /* Layers. */ - add_text_page (p, table_item_get_layers (table_item), title_width); + add_layers_page (p, table_item_get_layers (table_item), title_width); /* Body. */ render_pager_add_table (p, table_ref (table_item_get_table (table_item)), 0);