=== modified file 'src/main.cpp' --- src/main.cpp 2015-02-26 02:49:35 +0000 +++ src/main.cpp 2015-04-18 15:14:31 +0000 @@ -647,6 +647,91 @@ } /** + * Test whether with/without GUI is forced. + * + * \param argc Number of arguments from the command line. + * \param argv Arguments from the command line. + * \param use_gui Wheter or not the GUI version will be launched (modified by this function). + */ +static void gui_forced_from_args(int argc, const char **argv, bool& use_gui) +{ + bool forced_found = false; + + for (int i = 1; i < argc && !forced_found; ++i) { + if (!strcmp(argv[i], "-z") + || !strcmp(argv[i], "--without-gui") + || !strcmp(argv[i], "-p") + || !strncmp(argv[i], "--print", 7) + || !strcmp(argv[i], "-e") + || !strncmp(argv[i], "--export-png", 12) + || !strcmp(argv[i], "-l") + || !strncmp(argv[i], "--export-plain-svg", 18) + || !strcmp(argv[i], "-i") + || !strncmp(argv[i], "--export-area-drawing", 21) + || !strcmp(argv[i], "-D") + || !strncmp(argv[i], "--export-area-page", 18) + || !strcmp(argv[i], "-C") + || !strncmp(argv[i], "--export-id", 11) + || !strcmp(argv[i], "-P") + || !strncmp(argv[i], "--export-ps", 11) + || !strcmp(argv[i], "-E") + || !strncmp(argv[i], "--export-eps", 12) + || !strcmp(argv[i], "-A") + || !strncmp(argv[i], "--export-pdf", 12) + || !strncmp(argv[i], "--export-latex", 14) + || !strcmp(argv[i], "-M") + || !strncmp(argv[i], "--export-emf", 12) + || !strcmp(argv[i], "-m") + || !strncmp(argv[i], "--export-wmf", 12) + || !strcmp(argv[i], "-W") + || !strncmp(argv[i], "--query-width", 13) + || !strcmp(argv[i], "-H") + || !strncmp(argv[i], "--query-height", 14) + || !strcmp(argv[i], "-S") + || !strncmp(argv[i], "--query-all", 11) + || !strcmp(argv[i], "-X") + || !strncmp(argv[i], "--query-x", 9) + || !strcmp(argv[i], "-Y") + || !strncmp(argv[i], "--query-y", 9) + || !strcmp(argv[i], "--vacuum-defs") +#ifdef WITH_DBUS + || !strcmp(argv[i], "--dbus-listen") +#endif // WITH_DBUS + || !strcmp(argv[i], "--shell") + ) + { + /* main_console handles any exports -- not the gui */ + use_gui = false; + forced_found = true; + } else if (!strcmp(argv[i], "-g") || !strcmp(argv[i], "--with-gui")) { + use_gui = true; + forced_found = true; + } + } +} + +/** + * Determine if the GUI version will be launched from the environment and the command line. + * + * \param argc Number of arguments from the command line. + * \param argv Arguments from the command line. + */ +static bool use_gui(int argc, const char **argv) +{ + bool use_gui; + +#if !defined(WIN32) && !defined(GDK_WINDOWING_QUARTZ) + use_gui = (g_getenv("DISPLAY") != NULL); +#else + use_gui = true; +#endif + + gui_forced_from_args(argc, argv, use_gui); + + return use_gui; +} + +/** * This is the classic main() entry point of the program, though on some * architectures it might be called by something else. */ @@ -716,66 +801,6 @@ Inkscape::Debug::Logger::init(); - gboolean use_gui; - -#if !defined(WIN32) && !defined(GDK_WINDOWING_QUARTZ) - use_gui = (g_getenv("DISPLAY") != NULL); -#else - use_gui = TRUE; -#endif - /* Test whether with/without GUI is forced */ - for (int i = 1; i < argc; i++) { - if (!strcmp(argv[i], "-z") - || !strcmp(argv[i], "--without-gui") - || !strcmp(argv[i], "-p") - || !strncmp(argv[i], "--print", 7) - || !strcmp(argv[i], "-e") - || !strncmp(argv[i], "--export-png", 12) - || !strcmp(argv[i], "-l") - || !strncmp(argv[i], "--export-plain-svg", 18) - || !strcmp(argv[i], "-i") - || !strncmp(argv[i], "--export-area-drawing", 21) - || !strcmp(argv[i], "-D") - || !strncmp(argv[i], "--export-area-page", 18) - || !strcmp(argv[i], "-C") - || !strncmp(argv[i], "--export-id", 11) - || !strcmp(argv[i], "-P") - || !strncmp(argv[i], "--export-ps", 11) - || !strcmp(argv[i], "-E") - || !strncmp(argv[i], "--export-eps", 12) - || !strcmp(argv[i], "-A") - || !strncmp(argv[i], "--export-pdf", 12) - || !strncmp(argv[i], "--export-latex", 14) - || !strcmp(argv[i], "-M") - || !strncmp(argv[i], "--export-emf", 12) - || !strcmp(argv[i], "-m") - || !strncmp(argv[i], "--export-wmf", 12) - || !strcmp(argv[i], "-W") - || !strncmp(argv[i], "--query-width", 13) - || !strcmp(argv[i], "-H") - || !strncmp(argv[i], "--query-height", 14) - || !strcmp(argv[i], "-S") - || !strncmp(argv[i], "--query-all", 11) - || !strcmp(argv[i], "-X") - || !strncmp(argv[i], "--query-x", 9) - || !strcmp(argv[i], "-Y") - || !strncmp(argv[i], "--query-y", 9) - || !strcmp(argv[i], "--vacuum-defs") -#ifdef WITH_DBUS - || !strcmp(argv[i], "--dbus-listen") -#endif // WITH_DBUS - || !strcmp(argv[i], "--shell") - ) - { - /* main_console handles any exports -- not the gui */ - use_gui = FALSE; - break; - } else if (!strcmp(argv[i], "-g") || !strcmp(argv[i], "--with-gui")) { - use_gui = TRUE; - break; - } - } - #ifdef WIN32 { // If the call fails, we'll need to convert charsets @@ -785,10 +810,11 @@ int retcode; - if (use_gui) { - retcode = sp_main_gui(argc, (const char **) argv); + + if (use_gui(argc, const_cast(argv))) { + retcode = sp_main_gui(argc, const_cast(argv)); } else { - retcode = sp_main_console(argc, (const char **) argv); + retcode = sp_main_console(argc, const_cast(argv)); } return retcode;