CLI/setup: special case single item lists

This matches the heuristic used by "notmuch config set" to decide if
something is a list.

This change fixes the bug reported at [1].

[1]: id:6O3LTUhoXlrnkPWCtPJCP4cagU7mFVEdyTpcC_37BoSzStlARXDBa7oczy6hB0jyjGjBQvgj_jFV58cw0aNx-jUg1h1O-FQ7820k68C0X4M=@protonmail.com
This commit is contained in:
David Bremner 2022-01-17 19:54:53 -04:00
parent 82e1279790
commit 88633bc7a7
3 changed files with 6 additions and 4 deletions

View file

@ -383,7 +383,10 @@ _config_set_list (notmuch_conffile_t *config,
const char *list[], const char *list[],
size_t length) size_t length)
{ {
if (length > 1)
g_key_file_set_string_list (config->key_file, group, key, list, length); g_key_file_set_string_list (config->key_file, group, key, list, length);
else
g_key_file_set_string (config->key_file, group, key, list[0]);
} }
void void

View file

@ -24,7 +24,6 @@ expected_dir=$NOTMUCH_SRCDIR/test/setup.expected-output
test_expect_equal_file ${expected_dir}/config-with-comments new-notmuch-config test_expect_equal_file ${expected_dir}/config-with-comments new-notmuch-config
test_begin_subtest "setup consistent with config-set for single items" test_begin_subtest "setup consistent with config-set for single items"
test_subtest_known_broken
# note this relies on the config state from the previous test. # note this relies on the config state from the previous test.
notmuch --config=new-notmuch-config config list > list.setup notmuch --config=new-notmuch-config config list > list.setup
notmuch --config=new-notmuch-config config set search.exclude_tags baz notmuch --config=new-notmuch-config config set search.exclude_tags baz

View file

@ -31,7 +31,7 @@ path=/path/to/maildir
[user] [user]
name=Test Suite name=Test Suite
primary_email=test.suite@example.com primary_email=test.suite@example.com
other_email=another.suite@example.com; other_email=another.suite@example.com
# Configuration for "notmuch new" # Configuration for "notmuch new"
# #
@ -60,7 +60,7 @@ tags=foo;bar;
# query will override that exclusion. # query will override that exclusion.
# #
[search] [search]
exclude_tags=baz; exclude_tags=baz
# Maildir compatibility configuration # Maildir compatibility configuration
# #