zip-reader: Read the whole central directory at .zip open time.
[pspp] / src / data / spreadsheet-reader.c
index 86dfe48c0c43c296c2e21d4446585959a55ef018..08a37157e4a62c880d3c8cf93bf868685cd1d486 100644 (file)
 #include <gl/c-xvasprintf.h>
 #include <stdlib.h>
 
-#ifdef ODF_READ_SUPPORT
-static const bool ODF_READING_SUPPORTED = true;
-#else
-static const bool ODF_READING_SUPPORTED = false;
-#endif
-
-#ifdef GNM_READ_SUPPORT
-static const bool GNM_READING_SUPPORTED = true;
-#else
-static const bool GNM_READING_SUPPORTED = false;
-#endif
-
 void
 spreadsheet_ref (struct spreadsheet *s)
 {
@@ -53,12 +41,10 @@ spreadsheet_unref (struct spreadsheet *s)
   switch (s->type)
     {
     case SPREADSHEET_ODS:
-      assert (ODF_READING_SUPPORTED);
       ods_unref (s);
       break;
 
     case SPREADSHEET_GNUMERIC:
-      assert (GNM_READING_SUPPORTED);
       gnumeric_unref (s);
       break;
     default:
@@ -72,13 +58,11 @@ struct casereader *
 spreadsheet_make_reader (struct spreadsheet *s,
                          const struct spreadsheet_read_options *opts)
 {
-  if (ODF_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_ODS)
-      return ods_make_reader (s, opts);
+  if ( s->type == SPREADSHEET_ODS)
+    return ods_make_reader (s, opts);
 
-  if (GNM_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_GNUMERIC)
-      return gnumeric_make_reader (s, opts);
+  if ( s->type == SPREADSHEET_GNUMERIC)
+    return gnumeric_make_reader (s, opts);
 
   return NULL;
 }
@@ -86,13 +70,11 @@ spreadsheet_make_reader (struct spreadsheet *s,
 const char *
 spreadsheet_get_sheet_name (struct spreadsheet *s, int n)
 {
-  if (ODF_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_ODS)
-      return ods_get_sheet_name (s, n);
+  if ( s->type == SPREADSHEET_ODS)
+    return ods_get_sheet_name (s, n);
 
-  if (GNM_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_GNUMERIC)
-      return gnumeric_get_sheet_name (s, n);
+  if ( s->type == SPREADSHEET_GNUMERIC)
+    return gnumeric_get_sheet_name (s, n);
 
   return NULL;
 }
@@ -101,13 +83,11 @@ spreadsheet_get_sheet_name (struct spreadsheet *s, int n)
 char *
 spreadsheet_get_sheet_range (struct spreadsheet *s, int n)
 {
-  if (ODF_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_ODS)
-      return ods_get_sheet_range (s, n);
+  if ( s->type == SPREADSHEET_ODS)
+    return ods_get_sheet_range (s, n);
 
-  if (GNM_READING_SUPPORTED)
-    if ( s->type == SPREADSHEET_GNUMERIC)
-      return gnumeric_get_sheet_range (s, n);
+  if ( s->type == SPREADSHEET_GNUMERIC)
+    return gnumeric_get_sheet_range (s, n);
 
   return NULL;
 }