about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maddr.c12
1 files 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;