talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit f68ae062172ff04e3b0fcb32fb855d0fb46a0e1b
parent 5a073c5d2035636bcf96fe02cfd97599444f6cf8
Author: Colin Leroy <colin@colino.net>
Date:   Thu, 18 Sep 2008 15:58:01 +0000

2008-09-18 [colin]	3.5.0cvs113

	* src/messageview.c
	* src/procmime.c
	* src/textview.c
		Handle html parts in multipart/related
		Decode ISO-8859-1 as Windows-1252 (the former
		is a subset of the latter) in order to
		workaround Outlook mails misencoding
	* src/gtk/logwindow.c
	* src/gtk/logwindow.h
		Clear mainwindow's error pixmap when the
		error scrolls out of the log

Diffstat:
MChangeLog | 14++++++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/gtk/logwindow.c | 8++++++++
Msrc/gtk/logwindow.h | 1+
Msrc/messageview.c | 6++++++
Msrc/procmime.c | 3+++
Msrc/textview.c | 5++++-
8 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,17 @@ +2008-09-18 [colin] 3.5.0cvs113 + + * src/messageview.c + * src/procmime.c + * src/textview.c + Handle html parts in multipart/related + Decode ISO-8859-1 as Windows-1252 (the former + is a subset of the latter) in order to + workaround Outlook mails misencoding + * src/gtk/logwindow.c + * src/gtk/logwindow.h + Clear mainwindow's error pixmap when the + error scrolls out of the log + 2008-09-17 [colin] 3.5.0cvs112 * src/image_viewer.c diff --git a/PATCHSETS b/PATCHSETS @@ -3524,3 +3524,4 @@ ( cvs diff -u -r 1.105.2.145 -r 1.105.2.146 src/prefs_account.c; cvs diff -u -r 1.52.2.67 -r 1.52.2.68 src/prefs_folder_item.c; cvs diff -u -r 1.5.2.37 -r 1.5.2.38 src/prefs_spelling.c; cvs diff -u -r 1.9.2.61 -r 1.9.2.62 src/gtk/gtkaspell.c; ) > 3.5.0cvs110.patchset ( cvs diff -u -r 1.36.2.145 -r 1.36.2.146 src/common/utils.c; ) > 3.5.0cvs111.patchset ( cvs diff -u -r 1.61.2.86 -r 1.61.2.87 src/account.c; cvs diff -u -r 1.1.2.25 -r 1.1.2.26 src/image_viewer.c; cvs diff -u -r 1.52.2.68 -r 1.52.2.69 src/prefs_folder_item.c; cvs diff -u -r 1.5.2.38 -r 1.5.2.39 src/prefs_spelling.c; cvs diff -u -r 1.9.2.62 -r 1.9.2.63 src/gtk/gtkaspell.c; ) > 3.5.0cvs112.patchset +( cvs diff -u -r 1.94.2.186 -r 1.94.2.187 src/messageview.c; cvs diff -u -r 1.49.2.115 -r 1.49.2.116 src/procmime.c; cvs diff -u -r 1.96.2.206 -r 1.96.2.207 src/textview.c; cvs diff -u -r 1.1.4.32 -r 1.1.4.33 src/gtk/logwindow.c; cvs diff -u -r 1.1.4.15 -r 1.1.4.16 src/gtk/logwindow.h; ) > 3.5.0cvs113.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=5 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=112 +EXTRA_VERSION=113 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/gtk/logwindow.c b/src/gtk/logwindow.c @@ -310,6 +310,7 @@ static gboolean log_window_append(gpointer source, gpointer data) case LOG_ERROR: tag = "error"; head = "*** "; + logwindow->has_error = TRUE; break; case LOG_STATUS_OK: tag = "status_ok"; @@ -410,6 +411,13 @@ static void log_window_clip(LogWindow *logwin, guint clip_length) return; gtk_text_buffer_get_start_iter(textbuf, &start_iter); gtk_text_buffer_delete(textbuf, &start_iter, &end_iter); + if (logwin->has_error) { + gtk_text_buffer_get_start_iter(textbuf, &start_iter); + if (mainwindow_get_mainwindow() && !gtk_text_iter_forward_to_tag_toggle(&start_iter, logwin->error_tag)) { + mainwindow_clear_error(mainwindow_get_mainwindow()); + logwin->has_error = FALSE; + } + } } } diff --git a/src/gtk/logwindow.h b/src/gtk/logwindow.h @@ -50,6 +50,7 @@ struct _LogWindow GtkTextMark *end_mark; gboolean hidden; gboolean never_shown; + gboolean has_error; }; LogWindow *log_window_create(LogInstance instance); diff --git a/src/messageview.c b/src/messageview.c @@ -1287,6 +1287,12 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo, alt_parent = mimeinfo; break; } + if (mimeinfo->type == MIMETYPE_TEXT && + !strcasecmp(mimeinfo->subtype, "html")) { + /* we got it */ + mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo); + goto done; + } } } diff --git a/src/procmime.c b/src/procmime.c @@ -691,6 +691,9 @@ static FILE *procmime_get_text_content(MimeInfo *mimeinfo) ? forced_charset : procmime_mimeinfo_get_parameter(mimeinfo, "charset"); + if (!forced_charset && !strcasecmp(src_codeset, CS_ISO_8859_1)) + src_codeset = CS_WINDOWS_1252; + if (mimeinfo->type == MIMETYPE_TEXT && !g_ascii_strcasecmp(mimeinfo->subtype, "html")) { SC_HTMLParser *parser; CodeConverter *conv; diff --git a/src/textview.c b/src/textview.c @@ -930,8 +930,11 @@ static void textview_write_body(TextView *textview, MimeInfo *mimeinfo) if (textview->messageview->forced_charset) charset = textview->messageview->forced_charset; - else + else { charset = procmime_mimeinfo_get_parameter(mimeinfo, "charset"); + if (!strcasecmp(charset, CS_ISO_8859_1)) + charset = CS_WINDOWS_1252; + } textview_set_font(textview, charset);