aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--composer/ChangeLog5
-rw-r--r--composer/e-msg-composer-hdrs.c7
-rw-r--r--mail/ChangeLog6
-rw-r--r--mail/mail-format.c49
4 files changed, 48 insertions, 19 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index 87229237fd..470f00fc06 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-28 Dan Winship <danw@helixcode.com>
+
+ * e-msg-composer-hdrs.c (set_recipients): Update (minimally) for
+ Camel recipient changes.
+
2000-04-27 Dan Winship <danw@helixcode.com>
* e-msg-composer.c (e_msg_composer_new_from_url): New routine, to
diff --git a/composer/e-msg-composer-hdrs.c b/composer/e-msg-composer-hdrs.c
index e69c15efae..fb6d5adf3f 100644
--- a/composer/e-msg-composer-hdrs.c
+++ b/composer/e-msg-composer-hdrs.c
@@ -249,6 +249,7 @@ set_recipients (CamelMimeMessage *msg,
EMsgComposerAddressEntry *entry;
GList *list;
GList *p;
+ struct _header_address *addr;
entry = E_MSG_COMPOSER_ADDRESS_ENTRY (entry_widget);
list = e_msg_composer_address_entry_get_addresses (entry);
@@ -256,8 +257,10 @@ set_recipients (CamelMimeMessage *msg,
/* FIXME leak? */
for (p = list; p != NULL; p = p->next) {
- printf ("Adding `%s:' header: %s\n", type, (gchar *) p->data);
- camel_mime_message_add_recipient (msg, type, (gchar *) p->data);
+ addr = header_address_decode (p->data);
+ camel_mime_message_add_recipient (msg, type, addr->name,
+ addr->v.addr);
+ header_address_unref (addr);
}
g_list_free (list);
diff --git a/mail/ChangeLog b/mail/ChangeLog
index b8c18f3731..baac4be710 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,9 @@
+2000-04-28 Dan Winship <danw@helixcode.com>
+
+ * mail-format.c (write_recipients_to_stream, write_headers,
+ mail_generate_reply): Update (minimally) for Camel recipient
+ changes.
+
2000-04-28 Ettore Perazzoli <ettore@helixcode.com>
* main.c (init_bonobo): Don't call `init_corba()' and don't get
diff --git a/mail/mail-format.c b/mail/mail-format.c
index 9e6e2cc785..b9689394d0 100644
--- a/mail/mail-format.c
+++ b/mail/mail-format.c
@@ -370,22 +370,24 @@ write_field_to_stream (const char *description, const char *value,
static void
write_recipients_to_stream (const gchar *recipient_type,
- const GList *recipients, gboolean bold,
- GtkHTML *html,
+ const CamelInternetAddress *recipients,
+ gboolean bold, GtkHTML *html,
GtkHTMLStreamHandle *stream)
{
- gchar *recipients_string = NULL;
+ int i;
+ char *recipients_string = NULL;
+ const char *name, *addr;
- while (recipients) {
- gchar *old_string = recipients_string;
+ i = 0;
+ while (camel_internet_address_get (recipients, i++, &name, &addr)) {
+ char *old_string = recipients_string;
recipients_string =
- g_strdup_printf ("%s%s%s",
+ g_strdup_printf ("%s%s%s%s%s <%s>",
old_string ? old_string : "",
- old_string ? "; " : "",
- (gchar *)recipients->data);
+ old_string ? ", " : "",
+ *name ? "\"" : "", name,
+ *name ? "\"" : "", addr);
g_free (old_string);
-
- recipients = recipients->next;
}
write_field_to_stream (recipient_type, recipients_string,
@@ -398,7 +400,7 @@ write_recipients_to_stream (const gchar *recipient_type,
static void
write_headers (CamelMimeMessage *mime_message, GtkBox *box)
{
- const GList *recipients;
+ const CamelInternetAddress *recipients;
GtkHTML *html;
GtkHTMLStreamHandle *stream;
@@ -856,10 +858,14 @@ find_preferred_alternative (CamelMultipart *multipart)
nparts = camel_multipart_get_number (multipart);
for (i = 0; i < nparts; i++) {
CamelMimePart *part = camel_multipart_get_part (multipart, i);
+ char *mime_type = gmime_content_field_get_mime_type (
+ camel_mime_part_get_content_type (part));
- if (lookup_handler (part, &generic) &&
+ g_strdown (mime_type);
+ if (lookup_handler (mime_type, &generic) &&
(!preferred_part || !generic))
preferred_part = part;
+ g_free (mime_type);
}
return preferred_part;
@@ -1233,17 +1239,26 @@ mail_generate_reply (CamelMimeMessage *message, gboolean to_all)
to = g_list_append (NULL, (gpointer)repl_to);
if (to_all) {
- const GList *recip;
+ const CamelInternetAddress *recip;
+ const char *name, *addr;
+ char *fulladdr;
+ int i;
recip = camel_mime_message_get_recipients (message,
CAMEL_RECIPIENT_TYPE_TO);
- cc = g_list_copy ((GList*)recip);
+ i = 0;
+ cc = NULL;
+ while (camel_internet_address_get (recip, i++, &name, &addr)) {
+ fulladdr = g_strdup_printf ("%s <%s>", name, addr);
+ cc = g_list_append (cc, fulladdr);
+ }
recip = camel_mime_message_get_recipients (message,
CAMEL_RECIPIENT_TYPE_CC);
- while (recip) {
- cc = g_list_append (cc, recip->data);
- recip = recip->next;
+ i = 0;
+ while (camel_internet_address_get (recip, i++, &name, &addr)) {
+ fulladdr = g_strdup_printf ("%s <%s>", name, addr);
+ cc = g_list_append (cc, fulladdr);
}
} else
cc = NULL;