X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fmain.c;h=a78d248aeb38e0301e8706455e4767f0856a9255;hb=c75794cffb05769b71a346af8513a3e8dde55f94;hp=eddf3fe3347b750844442d3e8ccbcb8a1065d4f8;hpb=547aa92b0d16ea0f5accb25ef8d72eaf95769c04;p=pspp diff --git a/src/ui/gui/main.c b/src/ui/gui/main.c index eddf3fe334..a78d248aeb 100644 --- a/src/ui/gui/main.c +++ b/src/ui/gui/main.c @@ -145,7 +145,7 @@ startup_option_callback (int id, void *show_splash_) case OPT_VERSION: version_etc (stdout, "psppire", PACKAGE_NAME, PACKAGE_VERSION, "Ben Pfaff", "John Darrington", "Jason Stover", - (char *) NULL); + NULL); exit (EXIT_SUCCESS); case OPT_NO_SPLASH: @@ -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;