int main(int argc, char **argv) { ui_log_init(); /* stash a copy of argv[] in case we want to dump it for debugging */ stash_argv(argc, argv); ggcov_params_t params; argparse::parser_t parser(params); #if HAVE_GNOME_PROGRAM_INIT GnomeProgram *prog; poptContext popt_context; prog = gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_POPT_TABLE, parser.get_popt_table(), GNOME_PROGRAM_STANDARD_PROPERTIES, GNOME_PARAM_NONE); g_object_get(prog, GNOME_PARAM_POPT_CONTEXT, &popt_context, (char *)0); parser.handle_popt_tail(popt_context); #elif GTK2 gtk_init(&argc, &argv); /* As of 2.0 we don't need to explicitly initialise libGlade anymore */ parser.parse(argc, argv); #else poptContext popt_context; gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, parser.get_popt_table(), /*popt flags*/0, &popt_context); glade_gnome_init(); parser.handle_popt_tail(popt_context); #endif int r = cov_read_files(params); if (r < 0) exit(1); /* error message in cov_read_files() */ cov_dump(); ui_create(params, argv[0], r); gtk_main(); return 0; }
/* Main entry point */ int main(int argc, char** argv) { GtkWidget *window; GtkAccelGroup *group; struct eid_vwr_ui_callbacks* cb; pthread_t thread; GdkPixbuf *logo; GError* err = NULL; /* The GNU implementation of setlocale() ignores whatever we * specify if the LANGUAGE environment variable has a value, so * ensure that it doesn't */ putenv("LANGUAGE="); bindtextdomain("eid-viewer", DATAROOTDIR "/locale"); textdomain("eid-viewer"); eid_vwr_convert_set_lang(langfromenv()); gtk_init(&argc, &argv); builder = gtk_builder_new(); if(gtk_builder_add_from_string(builder, VIEWER_GLADE_STRING, strlen(VIEWER_GLADE_STRING), &err) == 0) { g_critical("Could not parse Glade XML: %s", err->message); exit(EXIT_FAILURE); } window = GTK_WIDGET(gtk_builder_get_object(builder, "mainwin")); group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), group); touched_labels = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); bindata_init(); connect_signals(window); setup_treeview(); certs_init(); cb = eid_vwr_cbstruct(); cb->newsrc = newsrc; cb->newstringdata = newstringdata; cb->newbindata = newbindata; cb->logv = ui_log_init(); cb->newstate = newstate; cb->pinop_result = pinop_result; cb->readers_changed = readers_changed; eid_vwr_createcallbacks(cb); pthread_create(&thread, NULL, threadmain, NULL); G_GNUC_BEGIN_IGNORE_DEPRECATIONS logo = gdk_pixbuf_from_pixdata(&logo_128, FALSE, NULL); G_GNUC_END_IGNORE_DEPRECATIONS gtk_window_set_default_icon(logo); gtk_widget_show(window); if(argc > 1) { eid_vwr_be_deserialize(argv[1]); } gtk_main(); return 0; }