Re: [Mutt] #2192: mutt save does not use alias names?
#2192: mutt save does not use alias names?
---------------------------------+------------------------------------------
Reporter: zimcomm@â | Owner: mutt-dev
Type: enhancement | Status: new
Priority: trivial | Milestone:
Component: mutt | Version: Mutt 1.4.2.1i (2004-02-12)
Keywords: |
---------------------------------+------------------------------------------
Comment(by Gregor Zattler):
{{{
Hi mutt developers,
* Mutt <fleas@xxxxxxxx> [08. Aug. 2010]:
The attached patch clarifies usage of the %F expando and provides
a new %R expando which expands to the recipients full name. It
consults alternates and expands aliases. I use this patch since
years to fcc-save messages according to recipient names. It
would be great if this functionality would become mainline. But
I do not rely on this kind of sorted storing of messages any more
since I search for messages via mairix.
The patch still applies on current mutt sources (current as in
debian sid).
Ciao, Gregor
diff -Nur mutt-1.5.17-orig/hdrline.c mutt-1.5.17/hdrline.c
--- mutt-1.5.17-orig/hdrline.c 2007-10-31 18:48:52.000000000 +0100
+++ mutt-1.5.17/hdrline.c 2008-01-10 21:03:05.000000000 +0100
@@ -127,6 +127,31 @@
*buf = 0;
}
+/* analog to "make_from" but generates "Real Name" of recipient without
preceding "To "
+ * don't know why original name is "make_from" so name it
make_from_without_to
+ */
+static void make_from_without_to (ENVELOPE *hdr, char *buf, size_t len,
int do_lists)
+{
+ int me;
+ me = mutt_addr_is_user (hdr->from);
+ if (do_lists || me)
+ {
+ if (check_for_mailing_list (hdr->to, "", buf, len))
+ return;
+ if (check_for_mailing_list (hdr->cc, "", buf, len))
+ return;
+ }
+
+ if (me && hdr->to)
+ snprintf (buf, len, "%s", mutt_get_name (hdr->to));
+ else if (me && hdr->cc)
+ snprintf (buf, len, "%s", mutt_get_name (hdr->cc));
+ else if (hdr->from)
+ strfcpy (buf, mutt_get_name (hdr->from), len);
+ else
+ *buf = 0;
+}
+
static void make_from_addr (ENVELOPE *hdr, char *buf, size_t len, int
do_lists)
{
int me;
@@ -546,6 +571,25 @@
strfcpy(dest, NONULL(hfi->pager_progress), destlen);
break;
+/* analog to 'n' but generates "Real Name" of recipient
+ */
+ case 'r':
+ mutt_format_s (dest, destlen, prefix, mutt_get_name
(hdr->env->to));
+ break;
+
+/* analog to 'F' but calls "make_from_without_to" and so
+ * generates "Real Name" of recipient without preceding "To "
+ */
+ case 'R':
+ if (!optional)
+ {
+ make_from_without_to (hdr->env, buf2, sizeof (buf2), 0);
+ mutt_format_s (dest, destlen, prefix, buf2);
+ }
+ else if (mutt_addr_is_user (hdr->env->from))
+ optional = 0;
+ break;
+
case 's':
if (flags & M_FORMAT_TREE && !hdr->collapsed)
diff -Nur mutt-1.5.17-orig/init.h mutt-1.5.17/init.h
--- mutt-1.5.17-orig/init.h 2008-01-10 21:06:57.000000000 +0100
+++ mutt-1.5.17/init.h 2008-01-10 21:05:14.000000000 +0100
@@ -1023,7 +1023,8 @@
** .dt %e .dd current message number in thread
** .dt %E .dd number of messages in current thread
** .dt %f .dd sender (address + real name), either From: or Return-
Path:
- ** .dt %F .dd author name, or recipient name if the message is from you
+ ** .dt %F .dd author's real name, or "To real name" of recipient if the
message
+ ** is from you (or address if no real name) (consults
``alternates'')
** .dt %H .dd spam attribute(s) of this message
** .dt %i .dd message-id of the current message
** .dt %l .dd number of lines in the message (does not work with
maildir,
@@ -1038,6 +1039,9 @@
** .dt %O .dd (_O_riginal save folder) Where mutt would formerly have
** stashed the message: list name or recipient name if no
list
** .dt %P .dd progress indicator for the builtin pager (how much of the
file has been displayed)
+ ** .dt %R .dd "Real Name" of author, or of recipient if the message is
from you
+ ** (or address if real name is missing) (consults
``alternates'')
+ ** .dt %r .dd recipient's real name (or address if missing)
** .dt %s .dd subject of the message
** .dt %S .dd status of the message (N/D/d/!/r/\(as)
** .dt %t .dd `to:' field (recipients)
diff -Nur mutt-1.5.17-orig/PATCHES mutt-1.5.17/PATCHES
--- mutt-1.5.17-orig/PATCHES 2007-03-21 19:26:38.000000000 +0100
+++ mutt-1.5.17/PATCHES 2008-01-10 21:06:09.000000000 +0100
@@ -0,0 +1 @@
+100_patch-mutt-1.5.17.grfz.fcc-save-correspondent.4
}}}
--
Ticket URL: <http://dev.mutt.org/trac/ticket/2192#comment:>
Mutt <http://www.mutt.org/>
The Mutt mail user agent