[evolution-patches] Fix address field display.
- From: David Woodhouse <dwmw2 infradead org>
- To: evolution-patches ximian com
- Subject: [evolution-patches] Fix address field display.
- Date: Tue, 06 Jan 2004 17:50:12 +0000
This simplifies the rendering of mail, and has the added benefit that we
no longer lose information when displaying address headers. Observe the
difference between
http://www.infradead.org/~dwmw2/evo-losing-to.jpeg
and http://www.infradead.org/~dwmw2/evo-showing-to.jpeg
Generated with 'diff -w' for ease of reading; of course when I commit it
the whitespace will be correct.
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.2973
diff -u -p -w -r1.2973 ChangeLog
-- mail/ChangeLog 6 Jan 2004 15:32:16 -0000 1.2973
+++ mail/ChangeLog 6 Jan 2004 17:32:42 -0000
@@ -1,3 +1,9 @@
+2004-01-06 David Woodhouse <dwmw2 infradead org>
+
+ * em-format-html.c (efh_format_header): Don't attempt to recreate
+ To:, Cc: and similar headers from the addresses which camel happens
+ to know about; display the real content of the mail instead.
+
2004-01-06 Jeffrey Stedfast <fejj ximian com>
* em-message-browser.c (emmb_set_message): Protect against a NULL
Index: mail/em-format-html.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-format-html.c,v
retrieving revision 1.20
diff -u -p -w -r1.20 em-format-html.c
-- mail/em-format-html.c 11 Dec 2003 23:47:32 -0000 1.20
+++ mail/em-format-html.c 6 Jan 2004 17:32:42 -0000
@@ -1407,43 +1407,18 @@ efh_format_text_header(EMFormat *emf, Ca
}
static void
-efh_format_address(EMFormat *emf, CamelStream *stream, const CamelInternetAddress *cia, const char *name, guint32 flags)
-{
- char *text;
-
- if (cia == NULL || !camel_internet_address_get(cia, 0, NULL, NULL))
- return;
-
- text = camel_address_format((CamelAddress *)cia);
- efh_format_text_header(emf, stream, name, text, flags | EM_FORMAT_HEADER_BOLD);
- g_free(text);
-}
-
-static void
efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, const char *namein, guint32 flags, const char *charset)
{
#define msg ((CamelMimeMessage *)part)
#define efh ((EMFormatHTML *)emf)
char *name;
+ const char *txt, *label;
+ char *value = NULL;
name = alloca(strlen(namein)+1);
strcpy(name, namein);
camel_strdown(name);
- if (!strcmp(name, "from"))
- efh_format_address(emf, stream, camel_mime_message_get_from(msg), _("From"), flags);
- else if (!strcmp(name, "reply-to"))
- efh_format_address(emf, stream, camel_mime_message_get_reply_to(msg), _("Reply-To"), flags);
- else if (!strcmp(name, "to"))
- efh_format_address(emf, stream, camel_mime_message_get_recipients(msg, CAMEL_RECIPIENT_TYPE_TO), _("To"), flags);
- else if (!strcmp(name, "cc"))
- efh_format_address(emf, stream, camel_mime_message_get_recipients(msg, CAMEL_RECIPIENT_TYPE_CC), _("Cc"), flags);
- else if (!strcmp(name, "bcc"))
- efh_format_address(emf, stream, camel_mime_message_get_recipients(msg, CAMEL_RECIPIENT_TYPE_BCC), _("Bcc"), flags);
- else {
- const char *txt, *label;
- char *value = NULL;
-
if (!strcmp(name, "subject")) {
txt = camel_mime_message_get_subject(msg);
label = _("Subject");
@@ -1502,12 +1477,29 @@ efh_format_header(EMFormat *emf, CamelSt
txt = camel_medium_get_header(part, name);
value = camel_header_decode_string (txt, charset);
txt = value;
+
+ /* Translate and make bold the common headers */
+ if (!strcmp(name, "from")) {
+ label = _("From");
+ flags |= EM_FORMAT_HEADER_BOLD;
+ } else if (!strcmp(name, "reply-to")) {
+ label = _("Reply-To");
+ flags |= EM_FORMAT_HEADER_BOLD;
+ } else if (!strcmp(name, "to")) {
+ label = _("To");
+ flags |= EM_FORMAT_HEADER_BOLD;
+ } else if (!strcmp(name, "cc")) {
+ label = _("Cc");
+ flags |= EM_FORMAT_HEADER_BOLD;
+ } else if (!strcmp(name, "bcc")) {
+ label = _("Bcc");
+ flags |= EM_FORMAT_HEADER_BOLD;
+ } else
label = namein;
}
efh_format_text_header(emf, stream, label, txt, flags);
g_free(value);
- }
#undef msg
#undef efh
}
--
dwmw2
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]