lib/config: expand relative paths when reading from database

This makes the treatment of relative paths consistent between the
database and config files.
This commit is contained in:
David Bremner 2021-05-07 07:27:37 -03:00
parent 322a492c77
commit 1040e7aa07
2 changed files with 5 additions and 4 deletions

View file

@ -46,6 +46,7 @@ struct _notmuch_config_pairs {
}; };
static const char *_notmuch_config_key_to_string (notmuch_config_key_t key); static const char *_notmuch_config_key_to_string (notmuch_config_key_t key);
static char *_expand_path (void *ctx, const char *key, const char *val);
static int static int
_notmuch_config_list_destroy (notmuch_config_list_t *list) _notmuch_config_list_destroy (notmuch_config_list_t *list)
@ -257,9 +258,10 @@ _notmuch_config_load_from_database (notmuch_database_t *notmuch)
return status; return status;
for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) { for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) {
_notmuch_string_map_append (notmuch->config, const char *key = notmuch_config_list_key (list);
notmuch_config_list_key (list), char *normalized_val = _expand_path (list, key, notmuch_config_list_value (list));
notmuch_config_list_value (list)); _notmuch_string_map_append (notmuch->config, key, normalized_val);
talloc_free (normalized_val);
} }
return status; return status;

View file

@ -407,7 +407,6 @@ rm home/Maildir
test_expect_equal_file EXPECTED OUTPUT test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "Relative mail root (in db) expanded in new" test_begin_subtest "Relative mail root (in db) expanded in new"
test_subtest_known_broken
ln -s "$PWD/mail" home/Maildir ln -s "$PWD/mail" home/Maildir
notmuch config set --database database.mail_root Maildir notmuch config set --database database.mail_root Maildir
generate_message generate_message