Made a start at canonicalising the interface
[pspp] / src / ui / gui / page-file.c
index a3aaf03749995da85ec84fd9f81d88cddaab57f5..ac751e8f97e7581a0846e470d4a8552329e050cd 100644 (file)
@@ -137,8 +137,7 @@ init_file (struct import_assistant *ia, GtkWindow *parent_window)
 {
   enum { MAX_LINE_LEN = 16384 }; /* Max length of an acceptable line. */
   struct file *file = &ia->file;
-  struct casereader *creader = NULL;
-  struct dictionary *dict = NULL;
+  struct sheet_spec_page *ssp = &ia->sheet_spec;
   struct spreadsheet_read_info sri;
   struct spreadsheet_read_options opts;
 
@@ -155,25 +154,34 @@ init_file (struct import_assistant *ia, GtkWindow *parent_window)
   sri.read_names = true;
   sri.asw = -1;
 
-  if (!creader) 
-    {
-      creader = gnumeric_open_reader (&sri, &opts, &dict);
-      ia->file.type = FTYPE_GNUMERIC;
-    }
-       
-  if (!creader) 
+  ssp->spreadsheet = gnumeric_probe (sri.file_name);
+
+  if (ssp->spreadsheet)
     {
-      creader = ods_open_reader (&sri, &opts, &dict);
-      ia->file.type = FTYPE_ODS;
-    }
+      struct casereader *creader = NULL;
+      struct dictionary *dict = NULL;
+
+      if (ssp->spreadsheet->type == SPREADSHEET_GNUMERIC) 
+       {
+         ia->file.type = FTYPE_GNUMERIC;
+       }
+      else if (ssp->spreadsheet->type == SPREADSHEET_ODS) 
+       {
+         ia->file.type = FTYPE_ODS;
+       }
+      else
+       {
+         assert (0);
+       }
     
-  if (creader && dict)
-    {
-      struct sheet_spec_page *ssp = &ia->sheet_spec;
-      ssp->dict = dict;
-      ssp->reader = creader;
+      {
+       struct sheet_spec_page *ssp = &ia->sheet_spec;
+       ssp->dict = dict;
+       ssp->reader = creader;
+       
+       update_assistant (ia);
+      }
 
-      update_assistant (ia);
     }
   else
     {