ports/81549: mail/mutt-devel: add reverse_reply patch
Ed Schouten
ed at fxq.nl
Fri May 27 10:30:02 UTC 2005
>Number: 81549
>Category: ports
>Synopsis: mail/mutt-devel: add reverse_reply patch
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Fri May 27 10:30:01 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: Ed Schouten
>Release: 5.4
>Organization:
>Environment:
FreeBSD palm.hoeg.nl 5.4-STABLE FreeBSD 5.4-STABLE #0: Fri May 20 09:31:40 CEST 2005 root at palm.hoeg.nl:/usr/obj/usr/src/sys/PALM i386
>Description:
This patch adds support for Mutt's reverse_reply patch, which gives you the ability to set an option which tries to resolve the correct names when replying to an email message. So if someone emails to a group of people without specifying the names with the addresses and you already have some of them in your aliases, Mutt will add the name to the To: and Cc: headers when replying.
Something like reverse_alias, but then for replying to messages. The patch is based on:
http://www.df7cb.de/projects/mutt/reverse_reply/patch-1.5.6.cb.reverse_reply.2
>How-To-Repeat:
n/a
>Fix:
Below is a patch which should be applied to the ports tree to add a special build option called WITH_MUTT_REVERSE_REPLY_PATCH:
diff -ur --new-file ports/mail/mutt-devel.orig/Makefile ports/mail/mutt-devel/Makefile
--- ports/mail/mutt-devel.orig/Makefile Wed May 25 19:03:42 2005
+++ ports/mail/mutt-devel/Makefile Wed May 25 19:08:32 2005
@@ -93,6 +93,9 @@
# If you do not want mutt to use the flock() function define:
# WITHOUT_MUTT_FLOCK
#
+# If you want to enable reverse_reply option define:
+# WITH_MUTT_REVERSE_REPLY_PATCH
+#
PORTNAME= mutt-devel
PORTVERSION= 1.5.9
@@ -307,6 +310,11 @@
.if defined(WITH_MUTT_ASPELL)
pre-configure::
@${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-aspell
+.endif
+
+.if defined(WITH_MUTT_REVERSE_REPLY_PATCH)
+pre-configure::
+ @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-reverse_reply
.endif
.if defined(WITHOUT_MUTT_FLOCK)
diff -ur --new-file ports/mail/mutt-devel.orig/files/extra-patch-reverse_reply ports/mail/mutt-devel/files/extra-patch-reverse_reply
--- ports/mail/mutt-devel.orig/files/extra-patch-reverse_reply Thu Jan 1 01:00:00 1970
+++ ports/mail/mutt-devel/files/extra-patch-reverse_reply Wed May 25 19:09:13 2005
@@ -0,0 +1,87 @@
+--- init.h.orig 2005-03-01 16:56:02.000000000 +0100
++++ init.h 2005-05-25 18:20:57.000000000 +0200
+@@ -2257,6 +2257,13 @@
+ ** possibly including eventual real names. When it is unset, mutt will
+ ** override any such real names with the setting of the $realname variable.
+ */
++ { "reverse_reply", DT_BOOL, R_NONE, OPTREVREPLY, 0 },
++ /*
++ ** .pp
++ ** When set, this variable uses the name from your aliases in the To and Cc
++ ** headers of reply mails you send, like $reverse_alias does in the index.
++ ** When unset, the headers taken from the original mail are left unchanged.
++ */
+ { "rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, 0 },
+ /*
+ ** .pp
+--- mutt.h.orig 2005-02-28 16:13:57.000000000 +0100
++++ mutt.h 2005-05-25 18:20:57.000000000 +0200
+@@ -410,6 +410,7 @@
+ OPTREVALIAS,
+ OPTREVNAME,
+ OPTREVREAL,
++ OPTREVREPLY,
+ OPTRFC2047PARAMS,
+ OPTSAVEADDRESS,
+ OPTSAVEEMPTY,
+--- protos.h.orig 2005-02-01 09:59:02.000000000 +0100
++++ protos.h 2005-05-25 18:20:57.000000000 +0200
+@@ -84,6 +84,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 *);
+
+--- send.c.orig 2005-02-03 19:47:53.000000000 +0100
++++ send.c 2005-05-25 18:20:57.000000000 +0200
+@@ -588,6 +588,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 (OPTREVREPLY)){
++ env->to = mutt_reverse_address (env->to);
++ env->cc = mutt_reverse_address (env->cc);
++ }
+ env->cc = mutt_remove_xrefs (env->to, env->cc);
+ }
+
+--- sendlib.c.orig 2005-02-21 05:45:57.000000000 +0100
++++ sendlib.c 2005-05-25 18:20:57.000000000 +0200
+@@ -2341,6 +2341,35 @@
+ }
+ }
+
++/* given a list of addresses, return a list of reverse_alias'ed addresses */
++ADDRESS *mutt_reverse_address (ADDRESS *addr)
++{
++ ADDRESS *top,*tmp,*alias;
++
++ if (addr == NULL)
++ return NULL;
++
++ if ((alias = alias_reverse_lookup (addr)) && alias->personal) {
++ tmp = rfc822_cpy_adr_real(alias);
++ tmp->next = addr->next;
++ addr->next = NULL;
++ rfc822_free_address(&addr);
++ addr = tmp;
++ }
++
++ for (top = addr; top->next != NULL; top = tmp) {
++ tmp = top->next;
++ if ((alias = alias_reverse_lookup (tmp)) && alias->personal) {
++ top->next = rfc822_cpy_adr_real(alias);
++ top->next->next = tmp->next;
++ tmp->next = NULL;
++ rfc822_free_address(&tmp);
++ tmp = top->next;
++ }
++ }
++ return addr;
++}
++
+ int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc)
+ {
+ CONTEXT f;
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list