]> granicus.if.org Git - mutt/commitdiff
When recalling a postponed message that does not have a x-mutt-fcc header
authorMichael Elkins <me@sigpipe.org>
Fri, 4 Oct 2013 18:22:15 +0000 (18:22 +0000)
committerMichael Elkins <me@sigpipe.org>
Fri, 4 Oct 2013 18:22:15 +0000 (18:22 +0000)
field, generate a default FCC just as we do for new messages.  If x-mutt-fcc is
present but empty, we assume that means the user does not want a copy.

closes #3653

mutt.h
postpone.c
send.c

diff --git a/mutt.h b/mutt.h
index 06e3c8cd696a89efe93219e441983fc2ec6e605f..dcd7dc5f6fa79b97676f76dcefa653da323e3cc8 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -298,6 +298,7 @@ enum
 #define SENDMAILX      (1<<6)
 #define SENDKEY                (1<<7)
 #define SENDRESEND     (1<<8)
+#define SENDPOSTPONEDFCC       (1<<9) /* used by mutt_get_postponed() to signal that the x-mutt-fcc header field was present */
 
 /* flags to _mutt_select_file() */
 #define M_SEL_BUFFY    (1<<0)
index 7ff981452cb61d699dafc313b2778d7bfbc4be7e..2ba019c9f43ceb265cb0de157c4d743b1352aaef 100644 (file)
@@ -329,6 +329,12 @@ int mutt_get_postponed (CONTEXT *ctx, HEADER *hdr, HEADER **cur, char *fcc, size
       tmp->next = NULL;
       mutt_free_list (&tmp);
       tmp = next;
+     /* note that x-mutt-fcc was present.  we do this because we want to add a
+      * default fcc if the header was missing, but preserve the request of the
+      * user to not make a copy if the header field is present, but empty.
+      * see http://dev.mutt.org/trac/ticket/3653
+      */
+      code |= SENDPOSTPONEDFCC;
     }
     else if ((WithCrypto & APPLICATION_PGP)
              && (mutt_strncmp ("Pgp:", tmp->data, 4) == 0 /* this is generated
diff --git a/send.c b/send.c
index c9a834c916617fe6c34f6b22f6f8454ba0f1c055..fce003c03e502aca777b79964ac987a648ac98d3 100644 (file)
--- a/send.c
+++ b/send.c
@@ -1516,7 +1516,7 @@ ci_send_message (int flags,               /* send mode */
   /* specify a default fcc.  if we are in batchmode, only save a copy of
    * the message if the value of $copy is yes or ask-yes */
 
-  if (!fcc[0] && !(flags & (SENDPOSTPONED)) && (!(flags & SENDBATCH) || (quadoption (OPT_COPY) & 0x1)))
+  if (!fcc[0] && !(flags & (SENDPOSTPONEDFCC)) && (!(flags & SENDBATCH) || (quadoption (OPT_COPY) & 0x1)))
   {
     /* set the default FCC */
     if (!msg->env->from)