Hi,
On Wed, Mar 08 2000 06:18:58 -0500 wrote David T-G
with subject "Re: Reply to full name from alias list":
> % I was close to ask the same question. Mutt doesn't have this feature
>
> I asked exactly this question, in fact, on 2000Feb08 but got absolutely
> no response. You guys must have been on vacation or something ;-)
I joined the list a little bit later but searched the archive for
similar questions (maybe not good enough) and found nothing.
> % so far. My solution was to modify `send.c' in that way that it takes
> % the alias address and real name rather than the presented `from' line
> % when I reply to someone. This is just a quick solution and there is no
>
> That's *exactly* what I'd like ...
Here comes my patch which should now work also for list replies and
group replies, but is not perfect when a `to' or `cc' line with more
than one recipient is presented (i.e works only on the first address).
I leave it to the developers to do something more with it :-). I also
did this reverse of aliases on the `Mail-Followup-To' header, not sure
if it works or if I break some rfc's with that.
Use at your own risk! (Do I have to say that? :)
> % way to turn it off (yet). And I'm not sure if it works in list-replys,
>
> ... and I can't see any reason to turn it off (for me, anyway).
just in case...
Enjoy, Stefan.
--
One Page Principle:
A specification that will not fit on one page of 8.5x11 inch
paper cannot be understood.
-- Mark Ardis
--- send.c.orig Wed Mar 8 16:14:17 2000
+++ send.c Wed Mar 8 18:04:52 2000
@@ -422,16 +422,22 @@ static int default_to (ADDRESS **to, ENV
{
char prompt[STRING];
int i = 0;
+ ADDRESS *adr_from, *adr_reply_to, *adr_to, *adr_cc, *adr_fup;
+ if(!(adr_from=alias_reverse_lookup(env->from))) adr_from = env->from;
+ if(!(adr_reply_to=alias_reverse_lookup(env->reply_to))) adr_reply_to =
+env->reply_to;
+ if(!(adr_to=alias_reverse_lookup(env->to))) adr_to = env->to;
+ if(!(adr_cc=alias_reverse_lookup(env->cc))) adr_cc = env->cc;
+ if(!(adr_fup=alias_reverse_lookup(env->mail_followup_to))) adr_fup =
+env->mail_followup_to;
+
if (flags && env->mail_followup_to)
{
snprintf (prompt, sizeof (prompt), _("Follow-up to %s%s?"),
- env->mail_followup_to->mailbox,
- env->mail_followup_to->next ? "..." : "");
+ adr_fup->mailbox, adr_fup->next ? "..." : "");
if (query_quadoption (OPT_MFUPTO, prompt) == M_YES)
{
- rfc822_append (to, env->mail_followup_to);
+ rfc822_append (to, adr_fup);
return 0;
}
}
@@ -445,7 +451,7 @@ static int default_to (ADDRESS **to, ENV
if (!option(OPTREPLYSELF) && mutt_addr_is_user (env->from))
{
/* mail is from the user, assume replying to recipients */
- rfc822_append (to, env->to);
+ rfc822_append (to, adr_to);
}
else if (env->reply_to)
{
@@ -463,7 +469,7 @@ static int default_to (ADDRESS **to, ENV
* in his From header.
*
*/
- rfc822_append (to, env->from);
+ rfc822_append (to, adr_from);
}
else if (!(mutt_addrcmp (env->from, env->reply_to) &&
!env->reply_to->next) &&
@@ -475,20 +481,19 @@ static int default_to (ADDRESS **to, ENV
* provides a way to do that.
*/
snprintf (prompt, sizeof (prompt), _("Reply to %s%s?"),
- env->reply_to->mailbox,
- env->reply_to->next?",...":"");
+ adr_reply_to->mailbox, adr_reply_to->next?",...":"");
if ((i = query_quadoption (OPT_REPLYTO, prompt)) == M_YES)
- rfc822_append (to, env->reply_to);
+ rfc822_append (to, adr_reply_to);
else if (i == M_NO)
- rfc822_append (to, env->from);
+ rfc822_append (to, adr_from);
else
return (-1); /* abort */
}
else
- rfc822_append (to, env->reply_to);
+ rfc822_append (to, adr_reply_to);
}
else
- rfc822_append (to, env->from);
+ rfc822_append (to, adr_from);
return (0);
}
@@ -496,9 +501,13 @@ static int default_to (ADDRESS **to, ENV
int mutt_fetch_recips (ENVELOPE *out, ENVELOPE *in, int flags)
{
ADDRESS *tmp;
+ ADDRESS *adr_to, *adr_cc;
+ if(!(adr_to=alias_reverse_lookup(in->to))) adr_to = in->to;
+ if(!(adr_cc=alias_reverse_lookup(in->cc))) adr_cc = in->cc;
+
if (flags & SENDLISTREPLY)
{
- tmp = find_mailing_lists (in->to, in->cc);
+ tmp = find_mailing_lists (adr_to, adr_cc);
rfc822_append (&out->to, tmp);
rfc822_free_address (&tmp);
@@ -514,8 +523,8 @@ int mutt_fetch_recips (ENVELOPE *out, EN
if ((flags & SENDGROUPREPLY) && !in->mail_followup_to)
{
/* if(!mutt_addr_is_user(in->to)) */
- rfc822_append (&out->cc, in->to);
- rfc822_append (&out->cc, in->cc);
+ rfc822_append (&out->cc, adr_to);
+ rfc822_append (&out->cc, adr_cc);
}
}
return 0;