File aw.listreply.diff of Package mutt

ask when sending list message replies to author only - Armin Wolfermann (aw)

---
 init.h |    7 +++++++
 mutt.h |    1 +
 send.c |   18 ++++++++++++++++++
 3 files changed, 26 insertions(+)

--- init.h
+++ init.h	2017-09-11 11:57:46.199273705 +0000
@@ -1662,6 +1662,13 @@ struct Option MuttVars[] = {
   ** ``$$keywords_standard'' are \fCfalse\fP, mutt will save keywords
   ** to legacy headers to ensure that it does not lose your labels.
   */
+  { "list_reply",      DT_QUAD, R_NONE, OPT_LIST_REPLY, MUTT_NO },
+  /*
+  ** .pp
+  ** When set, address replies to the mailing list the original message came
+  ** from (instead to the author only).  Setting this option to ``ask-yes'' or
+  ** ``ask-no'' will ask if you really intended to reply to the author only.
+  */
   { "mail_check",       DT_NUMBER,  R_NONE, UL &MailCheck, 5 },
   /*
   ** .pp
--- mutt.h
+++ mutt.h	2017-09-11 11:59:08.957770801 +0000
@@ -266,6 +266,7 @@ enum QuadOptionVars
 #endif
   OPT_ABORT_NOSUBJECT,
   OPT_CRYPT_VERIFY_SIG, /* verify PGP signatures */
+  OPT_LIST_REPLY,
 #ifdef USE_NNTP
   OPT_POST_MODERATED,
   OPT_CATCHUP_NEWSGROUP,
--- send.c
+++ send.c	2017-09-11 12:00:28.680322715 +0000
@@ -532,6 +532,7 @@ static int include_reply(struct Context
 static int default_to(struct Address **to, struct Envelope *env, int flags, int hmfupto)
 {
   char prompt[STRING];
+  struct Address *tmp;
 
   if (flags && env->mail_followup_to && hmfupto == MUTT_YES)
   {
@@ -545,6 +546,23 @@ static int default_to(struct Address **t
   if (flags & SENDLISTREPLY)
     return 0;
 
+  /* If this message came from a mailing list, ask the user if he really
+   * intended to reply to the author only.
+   */
+  if (!(flags & SENDGROUPREPLY) && mutt_is_list_cc (0, env->to, env->cc)) {
+    switch (query_quadoption (OPT_LIST_REPLY,
+            _("Message came from a mailing list. Reply to author only?")))
+    {
+    case MUTT_NO:
+      tmp = find_mailing_lists (env->to, env->cc);
+      rfc822_append (to, tmp, 0);
+      rfc822_free_address (&tmp);
+      return 0;
+    case -1:
+      return -1; /* abort */
+    }
+  }
+
   if (!option(OPT_REPLY_SELF) && mutt_addr_is_user(env->from))
   {
     /* mail is from the user, assume replying to recipients */
openSUSE Build Service is sponsored by