g_return_val_if_fail (uri != NULL, FALSE);
result = gnome_vfs_create (&handle, uri,
- GNOME_VFS_OPEN_WRITE |
- GNOME_VFS_OPEN_TRUNCATE,
+ GNOME_VFS_OPEN_WRITE,
FALSE, 0644);
if (result != GNOME_VFS_OK) {
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));
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));
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));
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)) {