mscan: fmt_from: first decode RFC2047, then parse address

pull/11/head
Leah Neukirchen 7 years ago
parent 225e5787bf
commit cf36745b0c

@ -191,21 +191,24 @@ fmt_subject(struct message *msg, char *file, int strip)
static char * static char *
fmt_from(struct message *msg) fmt_from(struct message *msg)
{ {
static char fromdec[64]; static char fromdec[256];
char *from = "(unknown)"; char *from = "(unknown)";
char to[256];
char *v, *w; char *v, *w;
if (!msg) if (!msg)
return ""; return "";
if ((v = blaze822_hdr(msg, "from"))) { if ((v = blaze822_hdr(msg, "from"))) {
if (itsme(v) && ((w = blaze822_hdr(msg, "to")))) { blaze822_decode_rfc2047(fromdec, v, sizeof fromdec - 1, "UTF-8");
snprintf(to, sizeof to, "TO:%s", w); fromdec[sizeof fromdec - 1] = 0;
from = to; from = fromdec;
if (itsme(fromdec) && ((w = blaze822_hdr(msg, "to")))) {
snprintf(fromdec, sizeof fromdec, "TO:%s", w);
from = fromdec;
} else { } else {
char *disp, *addr; char *disp, *addr;
blaze822_addr(v, &disp, &addr); blaze822_addr(fromdec, &disp, &addr);
if (disp) if (disp)
from = disp; from = disp;
else if (addr) else if (addr)
@ -213,10 +216,7 @@ fmt_from(struct message *msg)
} }
} }
blaze822_decode_rfc2047(fromdec, from, sizeof fromdec - 1, "UTF-8"); return from;
fromdec[sizeof fromdec - 1] = 0;
return fromdec;
} }
static char * static char *

Loading…
Cancel
Save