/*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2014 Hiroyuki Yamamoto and the Claws Mail team
+ * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2015 the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
*/
#ifdef HAVE_CONFIG_H
const gchar *name;
gchar *content_type;
gint charcount;
+
START_TIMING("");
cm_return_if_fail(mimeinfo != NULL);
filename = procmime_get_tmp_file_name(mimeinfo);
if ((err = procmime_get_part(filename, mimeinfo)) < 0) {
- g_warning("Can't get the image file.(%s)", strerror(-err));
+ g_warning("Can't get the image file.(%s)", g_strerror(-err));
g_free(filename);
END_TIMING();
return;
return;
}
if (error != NULL) {
- g_warning("%s\n", error->message);
+ g_warning("%s", error->message);
g_error_free(error);
}
if (!pixbuf) {
if (prefs_common.display_header && (charcount > 0))
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ if (!gtk_text_buffer_get_mark(buffer, "body_start")) {
+ gtk_text_buffer_get_end_iter(buffer, &iter);
+ gtk_text_buffer_create_mark(buffer, "body_start", &iter, TRUE);
+ }
+
textview_write_body(textview, mimeinfo);
+
+ if (!gtk_text_buffer_get_mark(buffer, "body_end")) {
+ gtk_text_buffer_get_end_iter(buffer, &iter);
+ gtk_text_buffer_create_mark(buffer, "body_end", &iter, TRUE);
+ }
}
END_TIMING();
}
filename = procmime_get_tmp_file_name(mimeinfo);
if (procmime_get_part(filename, mimeinfo) == 0) {
tmpfp = g_fopen(filename, "rb");
- textview_show_html(textview, tmpfp, conv);
- fclose(tmpfp);
+ if (tmpfp) {
+ textview_show_html(textview, tmpfp, conv);
+ fclose(tmpfp);
+ }
claws_unlink(filename);
}
g_free(filename);
if (pipe(pfd) < 0) {
g_snprintf(buf, sizeof(buf),
- "pipe failed for textview\n\n%s\n", strerror(errno));
+ "pipe failed for textview\n\n%s\n", g_strerror(errno));
textview_write_line(textview, buf, conv, TRUE);
goto textview_default;
}
pid = fork();
if (pid < 0) {
g_snprintf(buf, sizeof(buf),
- "fork failed for textview\n\n%s\n", strerror(errno));
+ "fork failed for textview\n\n%s\n", g_strerror(errno));
textview_write_line(textview, buf, conv, TRUE);
close(pfd[0]);
close(pfd[1]);
last->bp = (bp_); last->ep = (ep_); last->pti = (pti_); \
last->next = NULL; \
} else { \
- g_warning("alloc error scanning URIs\n"); \
+ g_warning("alloc error scanning URIs"); \
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, \
linebuf, -1, \
fg_tag, NULL); \
last->bp = (bp_); last->ep = (ep_); last->pti = (pti_); \
last->next = NULL; \
} else { \
- g_warning("alloc error scanning URIs\n"); \
+ g_warning("alloc error scanning URIs"); \
}
/* textview_make_clickable_parts() - colorizes clickable parts */
buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_set_text(buffer, "", -1);
+ if (gtk_text_buffer_get_mark(buffer, "body_start"))
+ gtk_text_buffer_delete_mark_by_name(buffer, "body_start");
+ if (gtk_text_buffer_get_mark(buffer, "body_end"))
+ gtk_text_buffer_delete_mark_by_name(buffer, "body_end");
TEXTVIEW_STATUSBAR_POP(textview);
textview_uri_list_remove_all(textview->uri_list);
if (!is_file_exist(filename)) {
gdk_pixbuf_save(picture, filename, "png", &error, NULL);
if (error) {
- g_warning(_("Failed to save image: \n%s"),
+ g_warning("Failed to save image: %s",
error->message);
g_error_free(error);
}
gchar *msg;
AlertValue aval;
- msg = g_markup_printf_escaped(_("The real URL is different from "
- "the displayed URL.\n"
- "\n"
- "<b>Displayed URL:</b> %s\n"
- "\n"
- "<b>Real URL:</b> %s\n"
- "\n"
- "Open it anyway?"),
- visible_str,uri->uri);
+ msg = g_markup_printf_escaped("%s\n\n"
+ "<b>%s</b> %s\n\n"
+ "<b>%s</b> %s\n\n"
+ "%s",
+ _("The real URL is different from the displayed URL."),
+ _("Displayed URL:"), visible_str,
+ _("Real URL:"), uri->uri,
+ _("Open it anyway?"));
aval = alertpanel_full(_("Phishing attempt warning"), msg,
GTK_STOCK_CANCEL, _("_Open URL"), NULL, FALSE,
NULL, ALERT_WARNING, G_ALERTDEFAULT);
gchar *cmd = NULL;
gchar buf[1024];
const gchar *p;
- gchar *filename = NULL;
+ gchar *filename = NULL, *filepath = NULL;
gchar *tmp_filename = NULL;
if (uri == NULL)
subst_for_filename(filename);
+ filepath = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
+ filename, NULL);
+
tmp_filename = g_filename_from_uri(uri->uri, NULL, NULL);
- copy_file(tmp_filename, filename, FALSE);
+ copy_file(tmp_filename, filepath, FALSE);
g_free(tmp_filename);
cmd = mailcap_get_command_for_type("image/jpeg", filename);
}
if (cmd && (p = strchr(cmd, '%')) && *(p + 1) == 's' &&
!strchr(p + 2, '%'))
- g_snprintf(buf, sizeof(buf), cmd, filename);
+ g_snprintf(buf, sizeof(buf), cmd, filepath);
else {
g_warning("Image viewer command-line is invalid: '%s'", cmd);
+ g_free(filepath);
+ g_free(filename);
return;
}
execute_command_line(buf, TRUE);
+ g_free(filepath);
g_free(filename);
g_free(cmd);
filepath = g_strconcat(prefs_common.attach_save_dir,
G_DIR_SEPARATOR_S, filename, NULL);
else
- filepath = g_strdup(filename);
+ filepath = g_strconcat(get_home_dir(), G_DIR_SEPARATOR_S,
+ filename, NULL);
g_free(filename);