Ensure that psppire's --help and --version options work even without an X server.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 16 Jun 2010 14:59:16 +0000 (16:59 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 16 Jun 2010 14:59:16 +0000 (16:59 +0200)
src/ui/gui/automake.mk
src/ui/gui/main.c

index 4774e2ae5ec320a0ece1073c3c197b794ab5fb3e..038b2cf26eac6ebc06d8a4045448badfce4899bb 100644 (file)
@@ -273,3 +273,7 @@ BUILT_SOURCES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h
 CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \
        $(nodist_src_ui_gui_psppire_DATA)
 endif HAVE_GUI
+
+#ensure the installcheck passes even if there is no X server available
+installcheck-local:
+       DISPLAY=/invalid/port $(MAKE) $(AM_MAKEFLAGS) installcheck-binPROGRAMS
index eddf3fe3347b750844442d3e8ccbcb8a1065d4f8..a5e054f02d527d21020257f015eebea1b2b0b2a3 100644 (file)
@@ -262,11 +262,12 @@ main (int argc, char *argv[])
       g_warning ("%s", vers);
     }
 
-  /* Let GDK remove any options that it owns. */
-  gdk_init (&argc, &argv);
 
-  /* Parse our own options. */
   ss = create_source_stream ();
+  /* Parse our own options. 
+     This must come BEFORE gdk_init otherwise options such as 
+     --help --version which ought to work without an X server, won't.
+  */
   parser = argv_parser_create ();
   argv_parser_add_options (parser, startup_options, N_STARTUP_OPTIONS,
                            startup_option_callback, &show_splash);
@@ -275,6 +276,11 @@ main (int argc, char *argv[])
     exit (EXIT_FAILURE);
   argv_parser_destroy (parser);
 
+  /* Initialise GDK.  Theoretically this call can remove options from argc,argv if
+     it thinks they are gdk options.
+     However there shouldn't be any here because of the gtk_parse_args call above. */
+  gdk_init (&argc, &argv);
+
   init_p.splash_window = create_splash_window ();
   init_p.ss = ss;
   init_p.data_file = optind < argc ? argv[optind] : NULL;