- if (!attachment->priv->app)
- attachment->priv->app =
- gnome_vfs_mime_get_default_application (attachment->priv->mime_type);
+ g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), FALSE);
+
+ if (!attachment->priv->app) {
+ default_app = gnome_vfs_mime_get_default_application (attachment->priv->mime_type);
+ attachment->priv->app = default_app;
+ }
+
+ if (!attachment->priv->app) {
+ g_set_error (error,
+ EV_ATTACHMENT_ERROR,
+ 0,
+ _("Couldn't open attachment “%s”"),
+ attachment->priv->name);
+
+ return FALSE;
+ }