From: Austin Clements Date: Sat, 9 Jun 2012 19:14:16 +0000 (-0400) Subject: lib: Only synchronize maildir flags for messages in maildirs X-Git-Tag: 0.14~89 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=750231bae8a0bdb3273c2f9a74da14327fbc5d52 lib: Only synchronize maildir flags for messages in maildirs Previously, we synchronized flags to tags for any message that looked like it had maildir flags in its file name, regardless of whether it was in a maildir-like directory structure. This was asymmetric with tag-to-flag synchronization, which only applied to messages in directories named new/ and cur/ (introduced by 95dd5fe5). This change makes our interpretation stricter and addresses this asymmetry by only synchronizing flags to tags for messages in directories named new/ or cur/. It also prepares us to treat messages in new/ as maildir messages, even though they lack maildir flags. --- diff --git a/lib/message.cc b/lib/message.cc index ed96477f..bbac2ffa 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -1074,7 +1074,7 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message) const char *flags; notmuch_status_t status; notmuch_filenames_t *filenames; - const char *filename; + const char *filename, *dir; char *combined_flags = talloc_strdup (message, ""); unsigned i; int seen_maildir_info = 0; @@ -1084,6 +1084,10 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message) notmuch_filenames_move_to_next (filenames)) { filename = notmuch_filenames_get (filenames); + dir = _filename_is_in_maildir (filename); + + if (! dir) + continue; flags = strstr (filename, ":2,"); if (! flags)