config: only exclude messages if 'search.exclude_tags' is explicitly set

Currently, the 'search.exclude_tags' option is automatically
set to "deleted;spam;" if it's missing from the config file.

This violates the Principle of Least Surprise, so *only* set
'search.exclude_tags' to "deleted;spam;" if we didn't find a
configuration file at all.

This patch is actually Austin Clements' work:
  id:"20120117203211.GQ16740@mit.edu"
This commit is contained in:
Pieter Praet 2012-01-23 05:22:34 +01:00 committed by David Bremner
parent 6795c62a50
commit ba33a15ec3
2 changed files with 6 additions and 3 deletions

View file

@ -362,8 +362,12 @@ notmuch_config_open (void *ctx,
} }
if (notmuch_config_get_search_exclude_tags (config, &tmp) == NULL) { if (notmuch_config_get_search_exclude_tags (config, &tmp) == NULL) {
const char *tags[] = { "deleted", "spam" }; if (is_new) {
notmuch_config_set_search_exclude_tags (config, tags, 2); const char *tags[] = { "deleted", "spam" };
notmuch_config_set_search_exclude_tags (config, tags, 2);
} else {
notmuch_config_set_search_exclude_tags (config, NULL, 0);
}
} }
error = NULL; error = NULL;

View file

@ -149,7 +149,6 @@ test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; N
thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)" thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
test_begin_subtest "Don't exclude \"deleted\" messages from search if not configured" test_begin_subtest "Don't exclude \"deleted\" messages from search if not configured"
test_subtest_known_broken
notmuch config set search.exclude_tags notmuch config set search.exclude_tags
output=$(notmuch search subject:deleted | notmuch_search_sanitize) output=$(notmuch search subject:deleted | notmuch_search_sanitize)
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread) test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)