gboolean process_args (int argc, char *argv[], gchar * file_list[], gboolean * fullscreen, GOptionContext * context) { gboolean version = FALSE; guint c, index, pos = 0; GOptionEntry entries[] = { {"fullscreen", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, fullscreen, "Fullscreen mode", NULL}, {"version", 'v', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version, "Print version", NULL}, {NULL} }; GError *err = NULL; g_option_context_add_main_entries (context, entries, NULL); g_option_context_add_group (context, gst_init_get_option_group ()); g_option_context_add_group (context, clutter_get_option_group ()); // Command line arguments. if (!g_option_context_parse (context, &argc, &argv, &err)) { g_print ("Error initializing: %s\n", err->message); g_error_free (err); goto quit; } if (version) { g_print ("snappy version %s\n", VERSION); goto quit; } // File arguments if (argc < 2) { g_print ("%s", g_option_context_get_help (context, TRUE, NULL)); goto quit; } for (index = 1; index < argc; index++) { file_list[pos] = argv[index]; g_debug ("Adding file: %s\n", file_list[pos]); pos++; } return TRUE; quit: return FALSE; }
/** * serenity_prefs_init: * @argc: argument count * @argv: vector containing arguments * @error: location for a #GError or %NULL. * * Initializes the preferences subsystem using the arguments from the * command line. * * Returns: %TRUE if successful; otherwise %FALSE and @error is set. */ gboolean serenity_prefs_init (gint *argc, gchar ***argv, GError **error) { GOptionContext *context; context = g_option_context_new(_("- A presentation tool")); g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE); g_option_context_add_group(context, gtk_get_option_group(TRUE)); g_option_context_add_group(context, clutter_get_option_group()); if (!g_option_context_parse(context, argc, argv, error)) { return FALSE; } return TRUE; }
/** * mex_init_with_args: * @argc: a pointer to the number of command line arguments. * @argv: a pointer to the array of command line arguments. * @parameter_string: a string which is displayed in * the first line of <option>--help</option> output, after * <literal><replaceable>programname</replaceable> [OPTION...]</literal> * @entries: a %NULL-terminated array of #GOptionEntry<!-- -->s * describing the options of your program * @translation_domain: a translation domain to use for translating * the <option>--help</option> output for the options in @entries * with gettext(), or %NULL * @error: a return location for errors * * This function does the same work as mex_init(). Additionally, it * allows you to add your own command line options, and it automatically * generates nicely formatted --help output. Clutter's #GOptionGroup * is added to the set of available options. * * This function should be called before calling any other GLib functions. If * this is not an option, your program must initialise the GLib thread system * using g_thread_init() before any other GLib functions are called. * * Return value: %TRUE on success, %FALSE on failure. * * Since: 0.2 */ gboolean mex_init_with_args (int *argc, char ***argv, const char *parameter_string, GOptionEntry *entries, const char *translation_domain, GError **error) { GOptionContext *context; gboolean res; if (mex_is_initialized) return TRUE; if (!g_thread_supported ()) g_thread_init (NULL); context = g_option_context_new (parameter_string); g_option_context_add_group (context, clutter_get_option_group ()); if (entries) g_option_context_add_main_entries (context, entries, translation_domain); res = g_option_context_parse (context, argc, argv, error); g_option_context_free (context); if (!res) return FALSE; mex_base_init (argc, argv); mex_is_initialized = TRUE; return TRUE; }
gint ease_main_main (char** args, int args_length1) { #line 383 "ease-main.c" gint result = 0; GOptionContext* context; UniqueApp* _tmp1_; gboolean _tmp2_; gboolean running; gboolean _tmp7_ = FALSE; GError * _inner_error_ = NULL; #line 61 "ease-main.vala" g_set_application_name ("Ease"); #line 62 "ease-main.vala" gtk_window_set_default_icon_name ("ease"); #line 65 "ease-main.vala" context = g_option_context_new (_ (" - a presentation editor")); #line 68 "ease-main.vala" g_option_context_add_main_entries (context, EASE_MAIN_options, NULL); #line 71 "ease-main.vala" g_option_context_add_group (context, gtk_get_option_group (TRUE)); #line 72 "ease-main.vala" g_option_context_add_group (context, clutter_get_option_group ()); #line 403 "ease-main.c" { gboolean _tmp0_; #line 76 "ease-main.vala" _tmp0_ = g_option_context_parse (context, &args_length1, &args, &_inner_error_); #line 408 "ease-main.c" if (_inner_error_ != NULL) { if (_inner_error_->domain == G_OPTION_ERROR) { goto __catch12_g_option_error; } _g_option_context_free0 (context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } #line 76 "ease-main.vala" if (!_tmp0_) { #line 420 "ease-main.c" result = 1; _g_option_context_free0 (context); #line 76 "ease-main.vala" return result; #line 425 "ease-main.c" } } goto __finally12; __catch12_g_option_error: { GError * e; e = _inner_error_; _inner_error_ = NULL; { #line 80 "ease-main.vala" fprintf (stdout, _ ("error parsing options: %s\n"), e->message); #line 437 "ease-main.c" result = 1; _g_error_free0 (e); _g_option_context_free0 (context); #line 81 "ease-main.vala" return result; #line 443 "ease-main.c" } } __finally12: if (_inner_error_ != NULL) { _g_option_context_free0 (context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } #line 85 "ease-main.vala" ease_main_app = (_tmp1_ = unique_app_new ("org.ease-project.ease", NULL), _g_object_unref0 (ease_main_app), _tmp1_); #line 86 "ease-main.vala" unique_app_add_command (ease_main_app, "Open document", (gint) EASE_MAIN_UNIQUE_COMMAND_OPEN_FILE); #line 87 "ease-main.vala" unique_app_add_command (ease_main_app, "Play document", (gint) EASE_MAIN_UNIQUE_COMMAND_PLAY_FILE); #line 88 "ease-main.vala" unique_app_add_command (ease_main_app, "Create new document", (gint) EASE_MAIN_UNIQUE_COMMAND_SHOW_WELCOME); #line 91 "ease-main.vala" running = (g_object_get (ease_main_app, "is-running", &_tmp2_, NULL), _tmp2_); #line 93 "ease-main.vala" if (!running) { #line 465 "ease-main.c" GeeArrayList* _tmp3_; ClutterBackend* backend; GtkSettings* settings; gint _tmp4_; gint _tmp5_; #line 96 "ease-main.vala" g_signal_connect (ease_main_app, "message-received", (GCallback) __lambda65__unique_app_message_received, NULL); #line 120 "ease-main.vala" gst_init (&args_length1, &args); #line 123 "ease-main.vala" ease_undo_controller_set_enable_debug (ease_main_debug_undo); #line 126 "ease-main.vala" ease_main_windows = (_tmp3_ = gee_array_list_new (EASE_MAIN_TYPE_EDITOR_WINDOW_INFO, (GBoxedCopyFunc) ease_main_editor_window_info_ref, ease_main_editor_window_info_unref, NULL), _g_object_unref0 (ease_main_windows), _tmp3_); #line 129 "ease-main.vala" backend = _g_object_ref0 (clutter_get_default_backend ()); #line 130 "ease-main.vala" settings = _g_object_ref0 (gtk_settings_get_default ()); #line 131 "ease-main.vala" clutter_backend_set_double_click_time (backend, (guint) (g_object_get (settings, "gtk-double-click-time", &_tmp4_, NULL), _tmp4_)); #line 132 "ease-main.vala" clutter_backend_set_double_click_distance (backend, (guint) (g_object_get (settings, "gtk-double-click-distance", &_tmp5_, NULL), _tmp5_)); #line 487 "ease-main.c" _g_object_unref0 (settings); _g_object_unref0 (backend); } #line 137 "ease-main.vala" if (ease_main_filenames != NULL) { #line 139 "ease-main.vala" if (!running) { #line 495 "ease-main.c" { gint i; #line 141 "ease-main.vala" i = 0; #line 500 "ease-main.c" { gboolean _tmp6_; #line 141 "ease-main.vala" _tmp6_ = TRUE; #line 141 "ease-main.vala" while (TRUE) { #line 141 "ease-main.vala" if (!_tmp6_) { #line 141 "ease-main.vala" i++; #line 511 "ease-main.c" } #line 141 "ease-main.vala" _tmp6_ = FALSE; #line 141 "ease-main.vala" if (!(ease_main_filenames[i] != NULL)) { #line 141 "ease-main.vala" break; #line 519 "ease-main.c" } #line 143 "ease-main.vala" ease_main_open_file (ease_main_filenames[i]); #line 523 "ease-main.c" } } } } else { UniqueMessageData* data; #line 148 "ease-main.vala" data = unique_message_data_new (); #line 149 "ease-main.vala" unique_message_data_set_uris (data, ease_main_filenames); #line 150 "ease-main.vala" unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_OPEN_FILE, data); #line 535 "ease-main.c" _unique_message_data_free0 (data); } } #line 155 "ease-main.vala" if (ease_main_play_filename != NULL) { #line 157 "ease-main.vala" if (!running) { #line 159 "ease-main.vala" ease_main_play_file (ease_main_play_filename, ease_main_filenames == NULL); #line 545 "ease-main.c" } else { UniqueMessageData* data; #line 163 "ease-main.vala" data = unique_message_data_new (); #line 164 "ease-main.vala" unique_message_data_set_filename (data, ease_main_play_filename); #line 165 "ease-main.vala" unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_PLAY_FILE, data); #line 554 "ease-main.c" _unique_message_data_free0 (data); } } #line 170 "ease-main.vala" if (ease_main_filenames == NULL) { #line 170 "ease-main.vala" _tmp7_ = ease_main_play_filename == NULL; #line 562 "ease-main.c" } else { #line 170 "ease-main.vala" _tmp7_ = FALSE; #line 566 "ease-main.c" } #line 170 "ease-main.vala" if (_tmp7_) { #line 172 "ease-main.vala" if (!running) { #line 172 "ease-main.vala" ease_main_show_welcome (); #line 574 "ease-main.c" } else { #line 173 "ease-main.vala" unique_app_send_message (ease_main_app, (gint) EASE_MAIN_UNIQUE_COMMAND_SHOW_WELCOME, NULL); #line 578 "ease-main.c" } } #line 177 "ease-main.vala" if (running) { #line 583 "ease-main.c" result = 0; _g_option_context_free0 (context); #line 177 "ease-main.vala" return result; #line 588 "ease-main.c" } #line 179 "ease-main.vala" gtk_main (); #line 181 "ease-main.vala" ease_temp_clean (); #line 594 "ease-main.c" result = 0; _g_option_context_free0 (context); #line 183 "ease-main.vala" return result; #line 599 "ease-main.c" }
/* Process command arguments */ GList * process_args (int argc, char *argv[], gboolean * blind, gboolean * fullscreen, gboolean * hide, gboolean * loop, gboolean * secret, gchar ** suburi, gboolean * tags, GOptionContext * context) { gboolean recent = FALSE, version = FALSE; guint c, index, pos = 0; GList * uri_list = NULL; GOptionEntry entries[] = { {"blind", 'b', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, blind, "Blind mode", NULL}, {"fullscreen", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, fullscreen, "Fullscreen mode", NULL}, {"hide-controls", 'h', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, hide, "Hide on screen controls", NULL}, {"loop", 'l', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, loop, "Looping mode", NULL}, {"media-info", 'i', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, tags, "Print media information", NULL}, {"recent", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &recent, "Show recently viewed", NULL}, {"secret", 's', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, secret, "Views not saved in recently viewed history", NULL}, {"subtitles", 't', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_FILENAME, suburi, "Use this subtitle file", NULL}, {"version", 'v', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version, "Shows snappy's version", NULL}, {NULL} }; GError *err = NULL; g_option_context_add_main_entries (context, entries, NULL); g_option_context_add_group (context, gst_init_get_option_group ()); g_option_context_add_group (context, clutter_get_option_group ()); /* Check command arguments and update entry variables */ if (!g_option_context_parse (context, &argc, &argv, &err)) { g_print ("Error initializing: %s\n", err->message); g_error_free (err); return NULL; } /* Recently viewed uris */ if (recent) { gchar **recent = NULL; g_print ("These are the recently viewed URIs: \n\n"); recent = get_recently_viewed (); for (c = 0; recent[c] != NULL; c++) { if (c < 9) g_print ("0%d: %s \n", c + 1, recent[c]); else g_print ("%d: %s \n", c + 1, recent[c]); } return NULL; } /* Show snappy's version */ if (version) { g_print ("snappy version %s\n", VERSION); return NULL; } /* Check that at least one URI has been introduced */ if (argc > 1) { /* Save uris in the file glist */ for (index = 1; index < argc; index++) { g_print ("Adding file: %s\n", argv[index]); uri_list = g_list_append (uri_list, clean_uri (argv[index])); pos++; } } else { /* If no files passed by user display help */ g_print ("%s", g_option_context_get_help (context, TRUE, NULL)); } return uri_list; }