- GtkIconFactory *factory = gtk_icon_factory_new ();
-
- GtkIconSet *icon_set;
-
- GdkPixbuf *pixbuf;
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("value-labels.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-value-labels", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("weight-cases.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-weight-cases", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("goto-variable.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-goto-variable", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("insert-variable.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-insert-variable", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("insert-case.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-insert-case", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("split-file.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-split-file", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("select-cases.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-select-cases", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("recent-dialogs.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "pspp-recent-dialogs", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("nominal.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "var-nominal", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("ordinal.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "var-ordinal", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("scale.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "var-scale", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("string.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "var-string", icon_set);
-
- pixbuf = PIXBUF_NEW_FROM_FILE ("date-scale.png");
- icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, "var-date-scale", icon_set);
-
-
- gtk_icon_factory_add_default (factory);
-}
+ const gchar *local_encoding = "UTF-8";
+
+ struct file_handle *fh = fh_create_file (NULL,
+ file,
+ local_encoding,
+ fh_default_properties ());
+ const char *filename = fh_get_file_name (fh);
+
+ int retval = any_reader_detect (fh, NULL);
+
+ GtkWindow *w = NULL;
+ /* Check to see if the file is a .sav or a .por file. If not
+ assume that it is a syntax file */
+ if (retval == 1)
+ w = open_data_window (PSPPIRE_WINDOW (victim), filename, NULL, NULL);
+ else if (retval == 0)
+ {
+ char *error = spv_detect (filename);
+ if (!error)
+ read_spv_file (filename);
+ else
+ {
+ free (error);
+ create_data_window ();
+ open_syntax_window (filename, NULL);
+ }
+ }