cli/new: only ignore .notmuch at top level

Since the bug was first reported in [1], notmuch has gained the
ability to have the database located outside the mail root, hence this
this change differs slightly from Jani's proposed solution [2] in not
using notmuch_database_get_path, but rather the already retrieved
mail_root.

[1]: id:87mwhifu9a.fsf@trouble.defaultvalue.org
[2]: id:87ios5v59p.fsf@nikula.org
This commit is contained in:
David Bremner 2021-12-26 08:24:10 -04:00
parent fd6d50b38f
commit 6472dbf4b7
2 changed files with 3 additions and 3 deletions

View file

@ -601,11 +601,12 @@ add_files (notmuch_database_t *notmuch,
continue; continue;
} }
/* Ignore the .notmuch directory and any "tmp" directory /* Ignore any top level .notmuch directory and any "tmp" directory
* that appears within a maildir. * that appears within a maildir.
*/ */
if ((is_maildir && strcmp (entry->d_name, "tmp") == 0) || if ((is_maildir && strcmp (entry->d_name, "tmp") == 0) ||
strcmp (entry->d_name, ".notmuch") == 0) (strcmp (entry->d_name, ".notmuch") == 0
&& (strcmp (path, state->mail_root)) == 0))
continue; continue;
next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name); next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name);

View file

@ -352,7 +352,6 @@ test_expect_code 1 "NOTMUCH_NEW --debug 2>&1"
notmuch config set new.tags $OLDCONFIG notmuch config set new.tags $OLDCONFIG
test_begin_subtest ".notmuch only ignored at top level" test_begin_subtest ".notmuch only ignored at top level"
test_subtest_known_broken
generate_message '[dir]=foo/bar/.notmuch/cur' '[subject]="Do not ignore, very important"' generate_message '[dir]=foo/bar/.notmuch/cur' '[subject]="Do not ignore, very important"'
NOTMUCH_NEW > OUTPUT NOTMUCH_NEW > OUTPUT
notmuch search subject:Do-not-ignore | notmuch_search_sanitize >> OUTPUT notmuch search subject:Do-not-ignore | notmuch_search_sanitize >> OUTPUT