Merge remote-tracking branch 'origin/master' into sheet
[pspp] / src / data / ods-reader.c
index 68484ce664c1825afb27e395fed4f04bca92c81d..c2e7a0e354933309d4610574a73007342ec8d61b 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2011, 2012, 2013 Free Software Foundation, Inc.
+   Copyright (C) 2011, 2012, 2013, 2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -43,6 +43,19 @@ ods_open_reader (const struct spreadsheet_read_options *opts,
   return NULL;
 }
 
+struct casereader *
+ods_make_reader (struct spreadsheet *spreadsheet,
+                const struct spreadsheet_read_options *opts)
+{
+  return NULL;
+}
+
+
+void
+ods_unref (struct spreadsheet *r)
+{
+}
+
 #else
 
 #include "libpspp/zip-reader.h"
@@ -170,10 +183,12 @@ ods_unref (struct spreadsheet *s)
        {
          xmlFree (r->sheets[i].name);
        }
-       
+
+      dict_destroy (r->dict);
+
       zip_reader_destroy (r->zreader);
       free (r->sheets);
-       
+      free (s->file_name);
       free (r);
     }
 }
@@ -650,7 +665,7 @@ ods_probe (const char *filename, bool report_errors)
   r->n_allocated_sheets = 0;
   r->sheets = NULL;
 
-  r->spreadsheet.file_name = filename;
+  r->spreadsheet.file_name = strdup (filename);
   return &r->spreadsheet;
 
  error:
@@ -919,8 +934,6 @@ ods_make_reader (struct spreadsheet *spreadsheet,
 
   free (var_spec);
 
-  dict_destroy (r->spreadsheet.dict);
-  r->spreadsheet.dict = NULL;
   ods_file_casereader_destroy (NULL, r);
 
   return NULL;