mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
lib: Treat messages in new/ as maildir messages with no flags set
Previously, notmuch new only synchronized maildir flags to tags for files with a maildir "info" part. Since messages in new/ don't have an info part, notmuch would ignore them for flag-to-tag synchronization. This patch makes notmuch consider messages in new/ to be legitimate maildir messages that simply have no maildir flags set. The most visible effect of this is that such messages now automatically get the unread tag.
This commit is contained in:
parent
750231bae8
commit
b88030bda6
2 changed files with 13 additions and 8 deletions
|
@ -1090,13 +1090,19 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
flags = strstr (filename, ":2,");
|
flags = strstr (filename, ":2,");
|
||||||
if (! flags)
|
if (flags) {
|
||||||
continue;
|
|
||||||
|
|
||||||
seen_maildir_info = 1;
|
seen_maildir_info = 1;
|
||||||
flags += 3;
|
flags += 3;
|
||||||
|
|
||||||
combined_flags = talloc_strdup_append (combined_flags, flags);
|
combined_flags = talloc_strdup_append (combined_flags, flags);
|
||||||
|
} else if (STRNCMP_LITERAL (dir, "new/") == 0) {
|
||||||
|
/* Messages are delivered to new/ with no "info" part, but
|
||||||
|
* they effectively have default maildir flags. According
|
||||||
|
* to the spec, we should ignore the info part for
|
||||||
|
* messages in new/, but some MUAs (mutt) can set maildir
|
||||||
|
* flags on messages in new/, so we're liberal in what we
|
||||||
|
* accept. */
|
||||||
|
seen_maildir_info = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If none of the filenames have any maildir info field (not even
|
/* If none of the filenames have any maildir info field (not even
|
||||||
|
|
|
@ -167,7 +167,6 @@ notmuch tag +unread +draft -flagged subject:"Non-compliant maildir info"
|
||||||
test_expect_equal "$(cd $MAIL_DIR/cur/; ls non-compliant*)" "non-compliant-maildir-info:2,These-are-not-flags-in-ASCII-order-donottouch"
|
test_expect_equal "$(cd $MAIL_DIR/cur/; ls non-compliant*)" "non-compliant-maildir-info:2,These-are-not-flags-in-ASCII-order-donottouch"
|
||||||
|
|
||||||
test_begin_subtest "Files in new/ get default synchronized tags"
|
test_begin_subtest "Files in new/ get default synchronized tags"
|
||||||
test_subtest_known_broken
|
|
||||||
OLDCONFIG=$(notmuch config get new.tags)
|
OLDCONFIG=$(notmuch config get new.tags)
|
||||||
notmuch config set new.tags test
|
notmuch config set new.tags test
|
||||||
add_message [subject]='"File in new/"' [dir]=new [filename]='file-in-new'
|
add_message [subject]='"File in new/"' [dir]=new [filename]='file-in-new'
|
||||||
|
|
Loading…
Reference in a new issue