From 4fc05261ce7edf2a67f455bdff02a023ea90f9b6 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Fri, 6 May 2022 22:09:50 +0300 Subject: [PATCH] message: implement rfc2047-encoding addresses For address names with commas, quotes etc. --- lib/message/mu-mime-object.cc | 21 +++++++++++++++++++-- lib/message/mu-mime-object.hh | 14 ++++++++++++++ mu/mu-cmd-cfind.cc | 2 +- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/lib/message/mu-mime-object.cc b/lib/message/mu-mime-object.cc index 6930264c..d0fceaf6 100644 --- a/lib/message/mu-mime-object.cc +++ b/lib/message/mu-mime-object.cc @@ -64,6 +64,23 @@ Mu::init_gmime(void) } +std::string +Mu::address_rfc2047(const Contact& contact) +{ + init_gmime(); + + InternetAddress *addr = + internet_address_mailbox_new(contact.name.c_str(), + contact.email.c_str()); + + std::string encoded = to_string_gchar( + internet_address_to_string(addr, {}, true)); + + g_object_unref(addr); + + return encoded; +} + /* * MimeObject @@ -602,8 +619,8 @@ MimeMultipartSigned::verify(const MimeCryptoContext& ctx, VerifyFlags vflags) co std::vector sigs; for (auto i = 0; i != g_mime_signature_list_length(siglist); ++i) { - GMimeSignature *sig = g_mime_signature_list_get_signature(siglist, i); - sigs.emplace_back(MimeSignature(sig)); + GMimeSignature *msig = g_mime_signature_list_get_signature(siglist, i); + sigs.emplace_back(MimeSignature(msig)); } g_object_unref(siglist); diff --git a/lib/message/mu-mime-object.hh b/lib/message/mu-mime-object.hh index 14475cf9..e8f3cbd4 100644 --- a/lib/message/mu-mime-object.hh +++ b/lib/message/mu-mime-object.hh @@ -45,6 +45,16 @@ using MimeFormatOptions = deletable_unique_ptr" : ci.name.c_str(), - ci.display_name().c_str(), + ci.display_name(true).c_str(), ci.personal ? "yes" : "no", ci.frequency, datebuf);