From aafeb82a6efbbb20389e1a2c6642e3dc5887159f Mon Sep 17 00:00:00 2001 From: djcb Date: Tue, 14 Aug 2018 22:38:27 +0300 Subject: [PATCH] mu: decode rfc-2047-encoded mailing lists Fixes #1292. Note: does require rebuilding the mu database (--rebuild). --- lib/mu-msg-file.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/mu-msg-file.c b/lib/mu-msg-file.c index d9678874..b9e926f0 100644 --- a/lib/mu-msg-file.c +++ b/lib/mu-msg-file.c @@ -228,22 +228,29 @@ get_fake_mailing_list_maybe (MuMsgFile *self) static gchar* get_mailing_list (MuMsgFile *self) { - const char *hdr, *b, *e; + char *dechdr, *res; + const char *hdr, *b, *e; hdr = g_mime_object_get_header (GMIME_OBJECT(self->_mime_msg), "List-Id"); if (mu_str_is_empty (hdr)) return get_fake_mailing_list_maybe (self); + dechdr = g_mime_utils_header_decode_phrase (hdr); + if (!dechdr) + return NULL; + e = NULL; - b = strchr (hdr, '<'); + b = strchr (dechdr, '<'); if (b) e = strchr (b, '>'); if (b && e) - return g_strndup (b + 1, e - b - 1); + res = g_strndup (b + 1, e - b - 1); else - return g_strdup (hdr); + res = g_strdup (dechdr); + + return res; }