[balsa/wip/gmime3: 118/197] Decode all RFC-2047-encoded headers
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gmime3: 118/197] Decode all RFC-2047-encoded headers
- Date: Wed, 23 May 2018 21:22:17 +0000 (UTC)
commit f6e5b675c9e19183fbdf97e58c7476a6ae9469a7
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sun Jun 25 19:04:30 2017 -0400
Decode all RFC-2047-encoded headers
* libbalsa/message.c
(prepend_header_misc): decode header value;
(libbalsa_message_user_hdrs_from_gmime): streamline code.
ChangeLog | 9 +++++++++
libbalsa/message.c | 37 ++++++++++++++++++++-----------------
2 files changed, 29 insertions(+), 17 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 51e2f13..6ec57d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
2017-09-30 Peter Bloomfield <pbloomfield bellsouth net>
Remove unused make_gradient function, and build with
@@ -526,6 +527,14 @@
* libbalsa/send.c (libbalsa_fill_msg_queue_item_from_queu): use
GMimeFilterSmtpData to dot-stuff outgoing mail.
+2017-06-25 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Decode all RFC-2047-encoded headers
+
+ * libbalsa/message.c
+ (prepend_header_misc): decode header value;
+ (libbalsa_message_user_hdrs_from_gmime): streamline code.
+
2017-06-19 Peter Bloomfield <pbloomfield bellsouth net>
Possible fix for Red Hat Bugzilla #1462546, reported by jamesbdonovan rambler ru
diff --git a/libbalsa/message.c b/libbalsa/message.c
index b5ab155..5120ba5 100644
--- a/libbalsa/message.c
+++ b/libbalsa/message.c
@@ -431,9 +431,10 @@ libbalsa_message_set_user_header(LibBalsaMessage * message,
g_strdup(value)));
}
-static void
-prepend_header_misc(const char *name, const char *value,
- gpointer user_data)
+static GList *
+prepend_header_misc(GList *res,
+ const char *name,
+ const char *value)
{
char lcname[28]; /* one byte longer than the longest ignored header */
static const char ignored_headers[] =
@@ -441,22 +442,24 @@ prepend_header_misc(const char *name, const char *value,
"message-id references in-reply-to status lines"
"disposition-notification-to";
unsigned i;
- GList *res = *(GList **)user_data;
- if (!*value)
+
+ if (value[0] == '\0')
/* Empty header */
- return;
+ return res;
+
/* Standard Headers*/
- for(i=0; i<sizeof(lcname)-1 && name[i]; i++)
+ for(i = 0; i < sizeof(lcname) - 1 && name[i] != '\0'; i++) {
lcname[i] = tolower(name[i]);
- if (i < sizeof(lcname)) {
- /* short enough to be on the ignored-headers list */
- lcname[i] = '\0';
- if(strstr(ignored_headers, lcname))
- return;
}
+ lcname[i] = '\0';
+
+ if(strstr(ignored_headers, lcname) != NULL)
+ return res;
- res = g_list_prepend(res, libbalsa_create_hdr_pair(name, g_strdup(value)));
- *(GList **)user_data = res;
+ return
+ g_list_prepend(res,
+ libbalsa_create_hdr_pair(name,
+ g_mime_utils_header_decode_text(value)));
}
/*
@@ -529,9 +532,9 @@ libbalsa_message_user_hdrs_from_gmime(GMimeMessage * message)
GMimeHeader *header;
header = g_mime_header_list_get_header_at(hdrlist, i);
- prepend_header_misc(g_mime_header_get_name(header),
- g_mime_header_get_value(header),
- &res);
+ res = prepend_header_misc(res,
+ g_mime_header_get_name(header),
+ g_mime_header_get_value(header));
}
return g_list_reverse(res);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]