From 4f1f0ea2b3193fb3b2f9222b1e71301c2aabc8a6 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 18 Jun 2021 01:03:17 +0200 Subject: maddr: decode only display part of address RFC 2047.6.2: NOTE: Decoding and display of encoded-words occurs *after* a structured field body is parsed into tokens. --- maddr.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/maddr.c b/maddr.c index 0169458..4982a8c 100644 --- a/maddr.c +++ b/maddr.c @@ -57,12 +57,14 @@ addr(char *file) v = blaze822_chdr(msg, h); if (v) { char *disp, *addr; - char vdec[16384]; - blaze822_decode_rfc2047(vdec, v, sizeof vdec - 1, "UTF-8"); - vdec[sizeof vdec - 1] = 0; - v = vdec; - + char ddec[16384]; while ((v = blaze822_addr(v, &disp, &addr))) { + if (disp) { + blaze822_decode_rfc2047(ddec, disp, sizeof ddec - 1, "UTF-8"); + ddec[sizeof ddec - 1] = 0; + disp = ddec; + } + if (disp && addr && strcmp(disp, addr) == 0) disp = 0; -- cgit 1.4.1