]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-attachment.c
Fix memory leaks.
[evince.git] / backend / ev-attachment.c
index 9d5aaffbe398d9b150d7f079a0a674df8c835a4e..10982676644b615db56eb46d913e236670ed144d 100644 (file)
@@ -300,7 +300,7 @@ ev_attachment_save (EvAttachment *attachment,
                g_set_error (error,
                             EV_ATTACHMENT_ERROR, 
                             (gint) result,
-                            _("Couldn't save attachment '%s': %s"),
+                            _("Couldn't save attachment “%s”: %s"),
                             uri, 
                             gnome_vfs_result_to_string (result));
                
@@ -313,7 +313,7 @@ ev_attachment_save (EvAttachment *attachment,
                g_set_error (error,
                             EV_ATTACHMENT_ERROR,
                             (gint) result,
-                            _("Couldn't save attachment '%s': %s"),
+                            _("Couldn't save attachment “%s”: %s"),
                             uri,
                             gnome_vfs_result_to_string (result));
                
@@ -345,7 +345,7 @@ ev_attachment_launch_app (EvAttachment *attachment,
                g_set_error (error,
                             EV_ATTACHMENT_ERROR,
                             (gint) result,
-                            _("Couldn't open attachment '%s': %s"),
+                            _("Couldn't open attachment “%s”: %s"),
                             attachment->priv->name,
                             gnome_vfs_result_to_string (result));
 
@@ -364,11 +364,25 @@ ev_attachment_open (EvAttachment *attachment,
                    GError      **error)
 {
 
-       gboolean retval = FALSE;
+       gboolean                 retval = FALSE;
+       GnomeVFSMimeApplication *default_app = NULL;
 
-       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;
+       }
 
        if (attachment->priv->tmp_uri &&
            g_file_test (attachment->priv->tmp_uri, G_FILE_TEST_EXISTS)) {