Improve the conversion to and from cell values
[pspp] / src / output / driver.c
index 94bc2411c97878781980a455818e326357e7bb6e..81ef6690e5bcf3de7f88fcab4325ed4b3eeb0f69 100644 (file)
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "data/file-handle-def.h"
 #include "data/settings.h"
 #include "libpspp/array.h"
 #include "libpspp/assertion.h"
@@ -158,6 +159,9 @@ output_submit (struct output_item *item)
 {
   struct output_engine *e = engine_stack_top ();
 
+  if (item == NULL)
+    return;
+
   if (is_syntax_item (item))
     {
       ds_put_cstr (&e->deferred_syntax, text_item_get_text (to_text_item (item)));
@@ -374,8 +378,10 @@ output_driver_create (struct string_map *options)
                      device_string, "terminal", "listing");
       device_type = default_device_type (file_name);
     }
+  
+  struct file_handle *fh = fh_create_file (NULL, file_name, NULL, fh_default_properties ());
 
-  driver = f->create (file_name, device_type, options);
+  driver = f->create (fh, device_type, options);
   if (driver != NULL)
     {
       const struct string_map_node *node;