diff -ur ../MUTT/mutt/PATCHES mutt/PATCHES --- ../MUTT/mutt/PATCHES 2002-12-09 18:44:54.000000000 +0100 +++ mutt/PATCHES 2004-03-26 12:56:27.000000000 +0100 @@ -0,0 +1 @@ +patch-1.5.6.sec.reverse_reply.1 diff -ur ../MUTT/mutt/protos.h mutt/protos.h --- ../MUTT/mutt/protos.h 2004-02-13 16:08:32.000000000 +0100 +++ mutt/protos.h 2004-03-26 12:55:51.000000000 +0100 @@ -77,6 +77,7 @@ ADDRESS *mutt_get_address (ENVELOPE *, char **); ADDRESS *mutt_lookup_alias (const char *s); ADDRESS *mutt_remove_duplicates (ADDRESS *); +ADDRESS *mutt_reverse_address (ADDRESS *); ADDRESS *mutt_expand_aliases (ADDRESS *); ADDRESS *mutt_parse_adrlist (ADDRESS *, const char *); diff -ur ../MUTT/mutt/send.c mutt/send.c --- ../MUTT/mutt/send.c 2004-01-05 19:49:00.000000000 +0100 +++ mutt/send.c 2004-03-26 12:55:51.000000000 +0100 @@ -583,6 +583,10 @@ /* the CC field can get cluttered, especially with lists */ env->to = mutt_remove_duplicates (env->to); env->cc = mutt_remove_duplicates (env->cc); + if (option (OPTREVALIAS)){ + env->to = mutt_reverse_address (env->to); + env->cc = mutt_reverse_address (env->cc); + } env->cc = mutt_remove_xrefs (env->to, env->cc); } diff -ur ../MUTT/mutt/sendlib.c mutt/sendlib.c --- ../MUTT/mutt/sendlib.c 2003-09-19 15:03:26.000000000 +0200 +++ mutt/sendlib.c 2004-03-26 12:55:51.000000000 +0100 @@ -2330,6 +2330,37 @@ } } +/* given a list of addresses, return a list of reverse_alias'ed addresses */ +ADDRESS *mutt_reverse_address (ADDRESS *addr) +{ + ADDRESS *top,*tmp,*ptr,*ali; + + if ((top=addr)==NULL) + return NULL; + + if ((ali = alias_reverse_lookup (top)) && ali->personal){ + tmp=rfc822_cpy_adr_real(ali); + tmp->next=top->next; + top->next=NULL; + rfc822_free_address(&top); + top=tmp; + } + + ptr=top; + while (top->next != NULL){ + tmp=top->next; + if ((ali = alias_reverse_lookup (tmp)) && ali->personal){ + top->next=rfc822_cpy_adr_real(ali); + top->next->next=tmp->next; + tmp->next=NULL; + rfc822_free_address(&tmp); + tmp=top->next; + } + top=tmp; + } + return ptr; +} + int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc) { CONTEXT f;