void mimeview_save_part_as(MimeView *mimeview, MimeInfo *partinfo) { gchar *filename = NULL; g_return_if_fail(partinfo != NULL); if (!mimeview->messageview->file) return; if (partinfo->filename) { filename = filesel_save_as(partinfo->filename); } else if (partinfo->name) { gchar *defname; defname = g_strdup(partinfo->name); subst_for_filename(defname); filename = filesel_save_as(defname); g_free(defname); } else filename = filesel_save_as(NULL); if (!filename) return; if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) alertpanel_error (_("Can't save the part of multipart message.")); g_free(filename); }
void messageview_save_as(MessageView *messageview) { gchar *filename = NULL; MsgInfo *msginfo; gchar *src, *dest; if (!messageview->msginfo) return; msginfo = messageview->msginfo; if (msginfo->subject) { Xstrdup_a(filename, msginfo->subject, return); subst_for_filename(filename); } dest = filesel_save_as(filename); if (!dest) return; src = procmsg_get_message_file(msginfo); if (copy_file(src, dest, TRUE) < 0) { alertpanel_error(_("Can't save the file `%s'."), g_basename(dest)); } g_free(src); g_free(dest); } static gint messageview_delete_cb(GtkWidget *widget, GdkEventAny *event, MessageView *messageview) {