#include "statusbar.h"
#include "folder_item_prefs.h"
#include "avatars.h"
+#include "file-utils.h"
+
#ifndef USE_ALT_ADDRBOOK
#include "addressbook.h"
#else
g_snprintf(tmp, sizeof(tmp), "%s%ctmpmsg%p",
get_rc_dir(), G_DIR_SEPARATOR, msginfo);
- if ((fp = g_fopen(tmp, "wb")) == NULL) {
- FILE_OP_ERROR(tmp, "fopen");
+ if ((fp = claws_fopen(tmp, "wb")) == NULL) {
+ FILE_OP_ERROR(tmp, "claws_fopen");
return -1;
}
if (ok < 0)
goto FILE_ERROR;
- if (fclose(fp) == EOF) {
- FILE_OP_ERROR(tmp, "fclose");
+ if (claws_safe_fclose(fp) == EOF) {
+ FILE_OP_ERROR(tmp, "claws_fclose");
claws_unlink(tmp);
return -1;
}
return ok;
FILE_ERROR:
- fclose(fp);
+ claws_fclose(fp);
claws_unlink(tmp);
return -1;
}
return TRUE;
} else if (!strcasecmp(mimeinfo->subtype, "html")
&& mimeinfo->disposition != DISPOSITIONTYPE_ATTACHMENT
- && (msginfo->folder->prefs->promote_html_part == HTML_PROMOTE_ALWAYS
- || (msginfo->folder->prefs->promote_html_part == HTML_PROMOTE_DEFAULT
+ && ((msginfo->folder && msginfo->folder->prefs->promote_html_part == HTML_PROMOTE_ALWAYS)
+ || ((msginfo->folder && msginfo->folder->prefs->promote_html_part == HTML_PROMOTE_DEFAULT)
&& prefs_common.promote_html_part))) {
mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo);
return TRUE;
g_free(messageview->toolbar);
}
+ message_search_close(messageview);
+
list_free_strings_full(messageview->trail);
msgview_list = g_list_remove(msgview_list, messageview);
return messageview->visible;
}
-static void messageview_save_as(MessageView *messageview)
-{
- gchar *filename = NULL;
- MsgInfo *msginfo;
- gchar *src, *dest, *tmp;
-
- if (!messageview->msginfo) return;
- msginfo = messageview->msginfo;
-
- if (msginfo->subject) {
- Xstrdup_a(filename, msginfo->subject, return);
- subst_for_filename(filename);
- }
- if (filename && !g_utf8_validate(filename, -1, NULL)) {
- gchar *oldstr = filename;
- filename = conv_codeset_strdup(filename,
- conv_get_locale_charset_str(),
- CS_UTF_8);
- if (!filename) {
- g_warning("messageview_save_as(): failed to convert character set.");
- filename = g_strdup(oldstr);
- }
- dest = filesel_select_file_save(_("Save as"), filename);
- g_free(filename);
- } else
- dest = filesel_select_file_save(_("Save as"), filename);
- if (!dest) return;
- if (is_file_exist(dest)) {
- AlertValue aval;
-
- aval = alertpanel(_("Overwrite"),
- _("Overwrite existing file?"),
- GTK_STOCK_CANCEL, GTK_STOCK_OK, NULL, ALERTFOCUS_FIRST);
- if (G_ALERTALTERNATE != aval) return;
- }
-
- src = procmsg_get_message_file(msginfo);
- if (copy_file(src, dest, TRUE) < 0) {
- tmp = g_path_get_basename(dest);
- alertpanel_error(_("Couldn't save the file '%s'."), tmp);
- g_free(tmp);
- }
- g_free(dest);
- g_free(src);
-}
-
static gint messageview_delete_cb(GtkWidget *widget, GdkEventAny *event,
MessageView *messageview)
{
static void save_as_cb(GtkAction *action, gpointer data)
{
MessageView *messageview = (MessageView *)data;
- messageview_save_as(messageview);
+ summary_save_as(messageview->mainwin->summaryview);
}
static void print_mimeview(MimeView *mimeview, gint sel_start, gint sel_end, gint partnum)