X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fconfig.cc;h=f2060e281cea249c1ef06b7a6fe6d05732e10b00;hb=e3a4abc513d314cf7550d43fdcba458421a2daac;hp=6993e67f5ba4fdc59a25150926cdce84b49f34b0;hpb=50092a03752180489ecc343eea93f0540c6a47af;p=notmuch diff --git a/lib/config.cc b/lib/config.cc index 6993e67f..f2060e28 100644 --- a/lib/config.cc +++ b/lib/config.cc @@ -406,6 +406,8 @@ _notmuch_config_key_to_string (notmuch_config_key_t key) switch (key) { case NOTMUCH_CONFIG_DATABASE_PATH: return "database.path"; + case NOTMUCH_CONFIG_MAIL_ROOT: + return "database.mail_root"; case NOTMUCH_CONFIG_HOOK_DIR: return "database.hook_dir"; case NOTMUCH_CONFIG_EXCLUDE_TAGS: @@ -428,7 +430,7 @@ _notmuch_config_key_to_string (notmuch_config_key_t key) } static const char * -_notmuch_config_default (void *ctx, notmuch_config_key_t key) +_notmuch_config_default (notmuch_database_t *notmuch, notmuch_config_key_t key) { char *path; @@ -436,11 +438,14 @@ _notmuch_config_default (void *ctx, notmuch_config_key_t key) case NOTMUCH_CONFIG_DATABASE_PATH: path = getenv ("MAILDIR"); if (path) - path = talloc_strdup (ctx, path); + path = talloc_strdup (notmuch, path); else - path = talloc_asprintf (ctx, "%s/mail", + path = talloc_asprintf (notmuch, "%s/mail", getenv ("HOME")); return path; + case NOTMUCH_CONFIG_MAIL_ROOT: + /* by default, mail root is the same as database path */ + return notmuch_database_get_path (notmuch); case NOTMUCH_CONFIG_EXCLUDE_TAGS: return ""; case NOTMUCH_CONFIG_NEW_TAGS: @@ -496,5 +501,8 @@ notmuch_config_set (notmuch_database_t *notmuch, notmuch_config_key_t key, const void _notmuch_config_cache (notmuch_database_t *notmuch, notmuch_config_key_t key, const char *val) { + if (notmuch->config == NULL) + notmuch->config = _notmuch_string_map_create (notmuch); + _notmuch_string_map_set (notmuch->config, _notmuch_config_key_to_string (key), val); }