From: Damien Riegel Date: Tue, 8 Nov 2016 02:06:13 +0000 (-0800) Subject: attach_format: add new %F placeholder X-Git-Tag: mutt-1-8-rel~105 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e8b8560351db51fb871675eeccc648fba6897bcf;p=mutt attach_format: add new %F placeholder This new placeholder allows to print the attachment name as it will be seen on the recipient side. --- diff --git a/init.h b/init.h index 782cf8ea..48cf915a 100644 --- a/init.h +++ b/init.h @@ -225,6 +225,7 @@ struct option_t MuttVars[] = { ** .dt %D .dd deleted flag ** .dt %d .dd description ** .dt %e .dd MIME content-transfer-encoding + ** .dt %F .dd filename for content-disposition header ** .dt %f .dd filename ** .dt %I .dd disposition (``I'' for inline, ``A'' for attachment) ** .dt %m .dd major MIME type diff --git a/recvattach.c b/recvattach.c index 9d2cc8b6..9693827e 100644 --- a/recvattach.c +++ b/recvattach.c @@ -160,6 +160,7 @@ ATTACHPTR **mutt_gen_attach_list (BODY *m, * %D = deleted flag * %d = description * %e = MIME content-transfer-encoding + * %F = filename for content-disposition header * %f = filename * %I = content-disposition, either I (inline) or A (attachment) * %t = tagged flag @@ -263,6 +264,25 @@ const char *mutt_attach_fmt (char *dest, else if(!aptr->content->filename) optional = 0; break; + case 'F': + if (!optional) + { + char fname[_POSIX_PATH_MAX]; + char *src = NULL; + + if (aptr->content->d_filename) + src = aptr->content->d_filename; + else if (aptr->content->filename) + src = aptr->content->filename; + else + break; + + strfcpy (fname, mutt_basename (NONULL (src)), sizeof (fname)); + mutt_format_s (dest, destlen, prefix, fname); + } + else if (!aptr->content->d_filename && !aptr->content->filename) + optional = 0; + break; case 'D': if(!optional) snprintf (dest, destlen, "%c", aptr->content->deleted ? 'D' : ' ');