]> git.notmuchmail.org Git - notmuch/blobdiff - lib/config.cc
lib/config: add HOOK_DIR
[notmuch] / lib / config.cc
index b2957f0c97c9a4fd0f9ca67d19b37ea204a40ffa..948751bc84b35fd7e2de04ccba14af13e6694ad1 100644 (file)
@@ -359,15 +359,45 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
     return status;
 }
 
+notmuch_status_t
+notmuch_config_get_bool (notmuch_database_t *notmuch, notmuch_config_key_t key, notmuch_bool_t *val)
+{
+    const char *key_string, *val_string;
+
+    key_string = _notmuch_config_key_to_string (key);
+    if (! key_string) {
+       return NOTMUCH_STATUS_ILLEGAL_ARGUMENT;
+    }
+
+    val_string = _notmuch_string_map_get (notmuch->config, key_string);
+    if (! val_string) {
+       *val = FALSE;
+       return NOTMUCH_STATUS_SUCCESS;
+    }
+
+    if (strcase_equal (val_string, "false") || strcase_equal (val_string, "no"))
+       *val = FALSE;
+    else if (strcase_equal (val_string, "true") || strcase_equal (val_string, "yes"))
+       *val = TRUE;
+    else
+       return NOTMUCH_STATUS_ILLEGAL_ARGUMENT;
+
+    return NOTMUCH_STATUS_SUCCESS;
+}
+
 static const char *
 _notmuch_config_key_to_string (notmuch_config_key_t key) {
     switch (key) {
     case NOTMUCH_CONFIG_DATABASE_PATH:
        return "database.path";
+    case NOTMUCH_CONFIG_HOOK_DIR:
+       return "database.hook_dir";
     case NOTMUCH_CONFIG_EXCLUDE_TAGS:
        return "search.exclude_tags";
     case NOTMUCH_CONFIG_NEW_TAGS:
        return "new.tags";
+    case NOTMUCH_CONFIG_NEW_IGNORE:
+       return "new.ignore";
     case NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS:
        return "maildir.synchronize_flags";
     case NOTMUCH_CONFIG_PRIMARY_EMAIL:
@@ -400,6 +430,8 @@ _notmuch_config_default (void *ctx, notmuch_config_key_t key) {
        return "inbox;unread";
     case NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS:
        return "true";
+    case NOTMUCH_CONFIG_HOOK_DIR:
+    case NOTMUCH_CONFIG_NEW_IGNORE:
     case NOTMUCH_CONFIG_USER_NAME:
     case NOTMUCH_CONFIG_PRIMARY_EMAIL:
     case NOTMUCH_CONFIG_OTHER_EMAIL:
@@ -438,3 +470,8 @@ notmuch_config_set (notmuch_database_t *notmuch, notmuch_config_key_t key, const
 
     return notmuch_database_set_config (notmuch, _notmuch_config_key_to_string (key), val);
 }
+
+void
+_notmuch_config_cache (notmuch_database_t *notmuch, notmuch_config_key_t key, const char *val) {
+    _notmuch_string_map_set (notmuch->config, _notmuch_config_key_to_string (key), val);
+}