From cf36745b0c46b1203778ddc40b537905ff3a5d03 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sat, 21 Jan 2017 17:40:52 +0100 Subject: mscan: fmt_from: first decode RFC2047, then parse address --- mscan.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'mscan.c') diff --git a/mscan.c b/mscan.c index 39115c5..2a2c543 100644 --- a/mscan.c +++ b/mscan.c @@ -191,21 +191,24 @@ fmt_subject(struct message *msg, char *file, int strip) static char * fmt_from(struct message *msg) { - static char fromdec[64]; + static char fromdec[256]; char *from = "(unknown)"; - char to[256]; char *v, *w; if (!msg) return ""; if ((v = blaze822_hdr(msg, "from"))) { - if (itsme(v) && ((w = blaze822_hdr(msg, "to")))) { - snprintf(to, sizeof to, "TO:%s", w); - from = to; + blaze822_decode_rfc2047(fromdec, v, sizeof fromdec - 1, "UTF-8"); + fromdec[sizeof fromdec - 1] = 0; + from = fromdec; + + if (itsme(fromdec) && ((w = blaze822_hdr(msg, "to")))) { + snprintf(fromdec, sizeof fromdec, "TO:%s", w); + from = fromdec; } else { char *disp, *addr; - blaze822_addr(v, &disp, &addr); + blaze822_addr(fromdec, &disp, &addr); if (disp) from = disp; else if (addr) @@ -213,10 +216,7 @@ fmt_from(struct message *msg) } } - blaze822_decode_rfc2047(fromdec, from, sizeof fromdec - 1, "UTF-8"); - fromdec[sizeof fromdec - 1] = 0; - - return fromdec; + return from; } static char * -- cgit 1.4.1