]> git.notmuchmail.org Git - notmuch/blobdiff - lib/config.cc
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / lib / config.cc
index f61eb63699ce5c0114c18152d54401721efc6c46..6cd15fab26bc16610e1c56e1b5e0019b41279259 100644 (file)
@@ -416,7 +416,8 @@ _expand_path (void *ctx, const char *key, const char *val)
 
 notmuch_status_t
 _notmuch_config_load_from_file (notmuch_database_t *notmuch,
-                               GKeyFile *file)
+                               GKeyFile *file,
+                               char **status_string)
 {
     notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
     gchar **groups = NULL, **keys, *val;
@@ -435,11 +436,7 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
        for (gchar **keys_p = keys; *keys_p; keys_p++) {
            char *absolute_key = talloc_asprintf (notmuch, "%s.%s", *grp,  *keys_p);
            char *normalized_val;
-           val = g_key_file_get_string (file, *grp, *keys_p, NULL);
-           if (! val) {
-               status = NOTMUCH_STATUS_FILE_ERROR;
-               goto DONE;
-           }
+           GError *gerr = NULL;
 
            /* If we opened from a given path, do not overwrite it */
            if (strcmp (absolute_key, "database.path") == 0 &&
@@ -447,6 +444,19 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
                notmuch->xapian_db)
                continue;
 
+           val = g_key_file_get_string (file, *grp, *keys_p, &gerr);
+           if (gerr) {
+               if (status_string)
+                   IGNORE_RESULT (asprintf (status_string,
+                                            "GLib: %s\n",
+                                            gerr->message));
+               g_error_free (gerr);
+           }
+           if (! val) {
+               status = NOTMUCH_STATUS_FILE_ERROR;
+               goto DONE;
+           }
+
            normalized_val = _expand_path (notmuch, absolute_key, val);
            _notmuch_string_map_set (notmuch->config, absolute_key, normalized_val);
            g_free (val);
@@ -596,6 +606,10 @@ _notmuch_config_key_to_string (notmuch_config_key_t key)
        return "user.name";
     case NOTMUCH_CONFIG_AUTOCOMMIT:
        return "database.autocommit";
+    case NOTMUCH_CONFIG_EXTRA_HEADERS:
+       return "show.extra_headers";
+    case NOTMUCH_CONFIG_INDEX_AS_TEXT:
+       return "index.as_text";
     default:
        return NULL;
     }
@@ -639,10 +653,12 @@ _notmuch_config_default (notmuch_database_t *notmuch, notmuch_config_key_t key)
        else
            email = _get_email_from_passwd_file (notmuch);
        return email;
+    case NOTMUCH_CONFIG_INDEX_AS_TEXT:
     case NOTMUCH_CONFIG_NEW_IGNORE:
        return "";
     case NOTMUCH_CONFIG_AUTOCOMMIT:
        return "8000";
+    case NOTMUCH_CONFIG_EXTRA_HEADERS:
     case NOTMUCH_CONFIG_HOOK_DIR:
     case NOTMUCH_CONFIG_BACKUP_DIR:
     case NOTMUCH_CONFIG_OTHER_EMAIL: