ascii: Include footnote markers in output.
[pspp] / src / output / spv-driver.c
index fed7db75759c0affe80321f90ffcc74494eb9250..a0cb023f3431a997551409a07647703cc95f40ec 100644 (file)
 
 #include "data/file-handle-def.h"
 #include "libpspp/cast.h"
+#include "output/cairo-chart.h"
+#include "output/chart-item.h"
 #include "output/group-item.h"
+#include "output/image-item.h"
 #include "output/page-eject-item.h"
 #include "output/page-setup-item.h"
 #include "output/table-item.h"
@@ -107,9 +110,25 @@ spv_submit (struct output_driver *driver,
       if (table_item->pt)
         spv_writer_put_table (spv->writer, table_item->pt);
     }
+  else if (is_chart_item (output_item))
+    {
+      cairo_surface_t *surface = xr_draw_image_chart (
+        to_chart_item (output_item),
+        &(struct cell_color) CELL_COLOR_BLACK,
+        &(struct cell_color) CELL_COLOR_WHITE);
+      if (cairo_surface_status (surface) == CAIRO_STATUS_SUCCESS)
+        spv_writer_put_image (spv->writer, surface);
+      cairo_surface_destroy (surface);
+    }
+  else if (is_image_item (output_item))
+    spv_writer_put_image (spv->writer, to_image_item (output_item)->image);
   else if (is_text_item (output_item))
-    spv_writer_put_text (spv->writer, to_text_item (output_item),
-                         output_get_command_name ());
+    {
+      char *command_id = output_get_command_name ();
+      spv_writer_put_text (spv->writer, to_text_item (output_item),
+                           command_id);
+      free (command_id);
+    }
   else if (is_page_eject_item (output_item))
     spv_writer_eject_page (spv->writer);
   else if (is_page_setup_item (output_item))