Remove unnecessary #include directives
[pspp] / src / ui / gui / psppire.c
index 5a35b52efb4a4a90ab312cabbb9e183d0c76b5e0..e55e616342f7185c0e2d2f1b91109b6898e7109f 100644 (file)
@@ -28,7 +28,6 @@
 #include "data/dataset.h"
 #include "data/datasheet.h"
 #include "data/file-handle-def.h"
-#include "data/file-name.h"
 #include "data/session.h"
 #include "data/settings.h"
 
@@ -72,55 +71,92 @@ static gchar *local_to_filename_encoding (const char *fn);
 #define N_(msgid) msgid
 
 
-void
-initialize (const char *data_file)
+bool
+initialize (const struct init_source *is)
 {
-  i18n_init ();
-
-  preregister_widgets ();
-
-  gsl_set_error_handler_off ();
-  output_engine_push ();
-  settings_init ();
-  fh_init ();
-
-  psppire_set_lexer (NULL);
-
-  bind_textdomain_codeset (PACKAGE, "UTF-8");
-
-  create_icon_factory ();
-
-  psppire_output_window_setup ();
-
-  journal_init ();
-  textdomain (PACKAGE);
-
-  /* FIXME: This should be implemented with a GtkInterface */
-  psppire_selector_set_default_selection_func (GTK_TYPE_ENTRY, insert_source_row_into_entry);
-  psppire_selector_set_default_selection_func (PSPPIRE_VAR_VIEW_TYPE, insert_source_row_into_tree_view);
-  psppire_selector_set_default_selection_func (GTK_TYPE_TREE_VIEW, insert_source_row_into_tree_view);
-  psppire_selector_set_default_selection_func (PSPPIRE_TYPE_MEANS_LAYER, insert_source_row_into_layers);
-
-  if (data_file)
+  switch (is->state)
     {
-      gchar *filename = local_to_filename_encoding (data_file);
-
-      int retval = any_reader_detect (filename, 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)
-       open_data_window (NULL, filename, NULL, NULL);
-      else if (retval == 0)
-        {
-          create_data_window ();
-          open_syntax_window (filename, NULL);
-        }
-
-      g_free (filename);
+    case 0:
+      i18n_init ();
+      break;
+    case 1:
+      preregister_widgets ();
+      break;
+    case 2:
+      gsl_set_error_handler_off ();
+      break;
+    case 3:
+      output_engine_push ();
+      break;
+    case 4:
+      settings_init ();
+      break;
+    case 5:
+      fh_init ();
+      break;
+    case 6:
+      psppire_set_lexer (NULL);
+      break;
+    case 7:
+      bind_textdomain_codeset (PACKAGE, "UTF-8");
+      break;
+    case 8:
+      if ( ! gtk_parse_args (is->argc, is->argv) )
+       {
+         perror ("Error parsing arguments");
+         exit (1);
+       }
+      break;
+    case 9:
+      create_icon_factory ();
+      break;
+    case 10:
+      psppire_output_window_setup ();
+      break;
+    case 11:
+      journal_init ();
+      break;
+    case 12:
+      textdomain (PACKAGE);
+      break;
+    case 13:
+      /* FIXME: This should be implemented with a GtkInterface */
+      psppire_selector_set_default_selection_func (GTK_TYPE_ENTRY, insert_source_row_into_entry);
+      psppire_selector_set_default_selection_func (PSPPIRE_VAR_VIEW_TYPE, insert_source_row_into_tree_view);
+      psppire_selector_set_default_selection_func (GTK_TYPE_TREE_VIEW, insert_source_row_into_tree_view);
+      psppire_selector_set_default_selection_func (PSPPIRE_TYPE_MEANS_LAYER, insert_source_row_into_layers);
+      break;
+    case 14:
+      {
+      if (is->file)
+       {
+         gchar *filename = local_to_filename_encoding (is->file);
+
+         int retval = any_reader_detect (filename, 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)
+           open_data_window (NULL, filename, NULL, NULL);
+         else if (retval == 0)
+           {
+             create_data_window ();
+             open_syntax_window (filename, NULL);
+           }
+         g_free (filename);
+       }
+      else
+       {
+         create_data_window ();
+       }
+      return TRUE;
+      }
+      break;
+    default:
+      return TRUE;
+      break;
     }
-  else
-    create_data_window ();
+  return FALSE;
 }
 
 
@@ -224,6 +260,8 @@ create_icon_factory (void)
 
            if ( gtk_icon_source_get_filename (source))
              gtk_icon_set_add_source (icon_set, source);
+
+           gtk_icon_source_free (source);
          }
       
        gtk_icon_factory_add (factory, ic->icon_name[i], icon_set);