X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Frender.c;fp=src%2Foutput%2Frender.c;h=d282a8fce68797e0430fc7a95cf86a5c1dbe35dd;hb=8dd405d0900f29f69e54726a79045c119146de89;hp=3ac603527e3a33fe73e3b72e068ac84c2eeba0a6;hpb=7ee8dbfc15aa4580c2132e53b64f13815fc93c62;p=pspp diff --git a/src/output/render.c b/src/output/render.c index 3ac603527e..d282a8fce6 100644 --- a/src/output/render.c +++ b/src/output/render.c @@ -1416,12 +1416,15 @@ struct render_pager struct render_break y_break; }; -static void +static const struct render_page * render_pager_add_table (struct render_pager *p, struct table *table) { + struct render_page *page; + if (p->n_pages >= p->allocated_pages) p->pages = x2nrealloc (p->pages, &p->allocated_pages, sizeof *p->pages); - p->pages[p->n_pages++] = render_page_create (p->params, table); + page = p->pages[p->n_pages++] = render_page_create (p->params, table); + return page; } static void @@ -1483,17 +1486,28 @@ struct render_pager * render_pager_create (const struct render_params *params, const struct table_item *table_item) { + const char *caption = table_item_get_caption (table_item); + const char *title = table_item_get_title (table_item); + const struct render_page *body_page; struct render_pager *p; - const char *title; p = xzalloc (sizeof *p); p->params = params; - title = table_item_get_title (table_item); + /* Title. */ if (title) render_pager_add_table (p, table_from_string (TAB_LEFT, title)); - render_pager_add_table (p, table_ref (table_item_get_table (table_item))); - add_footnote_page (p, p->pages[p->n_pages - 1]); + + /* Body. */ + body_page = render_pager_add_table (p, table_ref (table_item_get_table ( + table_item))); + + /* Caption. */ + if (caption) + render_pager_add_table (p, table_from_string (TAB_LEFT, caption)); + + /* Footnotes. */ + add_footnote_page (p, body_page); render_pager_start_page (p);