Here's a patch to let aisleriot tell the user that something's wrong (instead of crashing) if the deck images aren't where aisleriot expects them to be. -- Best of luck, Mark Schreiber
Index: aisleriot/card.c =================================================================== RCS file: /cvs/gnome/gnome-games/aisleriot/card.c,v retrieving revision 1.20 diff -u -r1.20 card.c --- aisleriot/card.c 19 Jun 2003 08:31:30 -0000 1.20 +++ aisleriot/card.c 26 Oct 2003 22:54:16 -0000 @@ -115,6 +115,14 @@ void load_pixmaps (GtkWidget* app, GdkCardDeckOptions deck_options) { card_deck = gdk_card_deck_new (app->window, deck_options); + if (card_deck == NULL) { + GtkWidget * error_dialog; + + error_dialog = gtk_message_dialog_new(app, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, N_("AisleRiot could not load its deck images.\n\nAisleRiot will now exit.")); + gtk_dialog_run (GTK_DIALOG (error_dialog)); + gtk_widget_destroy(error_dialog); + exit(1); + } mask = gdk_card_deck_mask (GDK_CARD_DECK (card_deck)); slot_pixbuf = get_pixbuf ("cards/slots/plain.png"); default_background_pixmap = get_pixmap ("cards/baize.png"); Index: gdk-card-image/gdk-card-image.c =================================================================== RCS file: /cvs/gnome/gnome-games/gdk-card-image/gdk-card-image.c,v retrieving revision 1.5 diff -u -r1.5 gdk-card-image.c --- gdk-card-image/gdk-card-image.c 21 Jun 2003 07:14:50 -0000 1.5 +++ gdk-card-image/gdk-card-image.c 26 Oct 2003 22:54:16 -0000 @@ -759,6 +759,7 @@ resolve_options (option_data, deck_options, w->index); for (i = 0; i < OPT_NUM; i++) { + g_return_val_if_fail(w->index[i] != -1, NULL); file[i] = &option_data[i].dir->file[w->index[i]]; gdk_card_deck_file_load (file[i]); }
Attachment:
pgpYIcyB66uNr.pgp
Description: PGP signature