]> granicus.if.org Git - neomutt/commitdiff
fix Mailbox->append,changed flags
authorRichard Russon <rich@flatcap.org>
Sun, 14 Apr 2019 14:30:23 +0000 (15:30 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 16 Apr 2019 11:30:19 +0000 (12:30 +0100)
Replying to an email caused some unwanted side-effects:
- Updating the Context left `m->changed == false`
- `mutt_write_fcc()` left `m->append == true`

maildir/maildir.c
maildir/mh.c
sendlib.c

index 7928963b2937c6544e17a0624ab7ecac5249d96a..a657093b70ae2fa96a7a976fa52e19da55af15a9 100644 (file)
@@ -507,7 +507,10 @@ int maildir_mbox_check(struct Mailbox *m, int *index_hint)
   /* Incorporate new messages */
   num_new = maildir_move_to_mailbox(m, &md);
   if (num_new > 0)
+  {
     mutt_mailbox_changed(m, MBN_INVALID);
+    m->changed = true;
+  }
 
   mutt_buffer_pool_release(&buf);
 
index d767878e31b1c47433984dabda0b7cec58c16166..bd8c0e396e3590f64ab790ee40261ecdd3768d57 100644 (file)
@@ -708,7 +708,10 @@ int mh_mbox_check(struct Mailbox *m, int *index_hint)
   /* Incorporate new messages */
   num_new = maildir_move_to_mailbox(m, &md);
   if (num_new > 0)
+  {
     mutt_mailbox_changed(m, MBN_INVALID);
+    m->changed = true;
+  }
 
   if (occult)
     return MUTT_REOPENED;
index 0ee4478a501bf32c143560f74fff4160528a86f6..9903ce07f480740ce11053ce004540e2d87ce1c7 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -3146,6 +3146,7 @@ int mutt_write_fcc(const char *path, struct Email *e, const char *msgid,
   mutt_folder_hook(path, NULL);
 #endif
   struct Mailbox *m_fcc = mx_path_resolve(path);
+  bool old_append = m_fcc->append;
   struct Context *ctx_fcc = mx_mbox_open(m_fcc, MUTT_APPEND | MUTT_QUIET);
   if (!ctx_fcc)
   {
@@ -3333,6 +3334,7 @@ int mutt_write_fcc(const char *path, struct Email *e, const char *msgid,
     set_noconv_flags(e->content, false);
 
 done:
+  m_fcc->append = old_append;
 #ifdef RECORD_FOLDER_HOOK
   /* We ran a folder hook for the destination mailbox,
    * now we run it for the user's current mailbox */