render: Fix bug in render_pager_draw_region().
[pspp] / src / output / render.c
index f41f504df0a90cc4e73a5941d3c238fb8ecbe17e..3ac603527e3a33fe73e3b72e068ac84c2eeba0a6 100644 (file)
@@ -1484,14 +1484,14 @@ render_pager_create (const struct render_params *params,
                      const struct table_item *table_item)
 {
   struct render_pager *p;
-  const char *caption;
+  const char *title;
 
   p = xzalloc (sizeof *p);
   p->params = params;
 
-  caption = table_item_get_caption (table_item);
-  if (caption)
-    render_pager_add_table (p, table_from_string (TAB_LEFT, caption));
+  title = table_item_get_title (table_item);
+  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]);
 
@@ -1599,11 +1599,14 @@ render_pager_draw_region (const struct render_pager *p,
   for (i = 0; i < p->n_pages; i++)
     {
       const struct render_page *page = p->pages[i];
+      int size = render_page_get_size (page, V);
 
       clip[V][0] = MAX (y, ofs[V]) - ofs[V];
-      clip[V][1] = MIN (y + h, ofs[V] + render_page_get_size (page, V)) - ofs[V];
+      clip[V][1] = MIN (y + h, ofs[V] + size) - ofs[V];
       if (clip[V][1] > clip[V][0])
         render_page_draw_region (page, ofs, clip);
+
+      ofs[V] += size;
     }
 }