From e96f0707de039d8a58fb6b3d4037a345ae6f31cc Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sun, 17 Jan 2021 23:23:15 +0100 Subject: mshow: show last part of multipart/mixed when none matched This is in conformance with RFC 1341. --- mshow.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'mshow.c') diff --git a/mshow.c b/mshow.c index f66e7b2..5ab309a 100644 --- a/mshow.c +++ b/mshow.c @@ -336,7 +336,7 @@ nofilter: static void choose_alternative(struct message *msg, int depth) { - int n = 1; + int n = 0; int m = 0; char *p = Aflag + strlen(Aflag); @@ -363,6 +363,13 @@ choose_alternative(struct message *msg, int depth) } blaze822_free(imsg); + if (n == 0) { + // No part matched, use last part as per RFC1341 7.2.3 + // "In general, choosing the best type means displaying + // only the LAST part that can be displayed." + n = m; + } + imsg = 0; while (blaze822_multipart(msg, &imsg)) if (--n == 0) -- cgit 1.4.1