]> git.cworth.org Git - notmuch/blobdiff - lib/open.cc
Merge tag 'debian/0.32.3-1'
[notmuch] / lib / open.cc
index 72f1232c1a990399407680779f2204b7f56a8a30..280ffee343f91e893a2743683290ea4b41c034ac 100644 (file)
@@ -220,6 +220,10 @@ _choose_database_path (void *ctx,
        }
     }
 
+    if (! *database_path) {
+       *database_path = getenv ("MAILDIR");
+    }
+
     if (! *database_path) {
        notmuch_status_t status;
 
@@ -256,6 +260,8 @@ _alloc_notmuch ()
     notmuch->writable_xapian_db = NULL;
     notmuch->config_path = NULL;
     notmuch->atomic_nesting = 0;
+    notmuch->transaction_count = 0;
+    notmuch->transaction_threshold = 0;
     notmuch->view = 1;
     return notmuch;
 }
@@ -365,6 +371,8 @@ _finish_open (notmuch_database_t *notmuch,
     notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
     char *incompat_features;
     char *message = NULL;
+    const char *autocommit_str;
+    char *autocommit_end;
     unsigned int version;
     const char *database_path = notmuch_database_get_path (notmuch);
 
@@ -461,6 +469,14 @@ _finish_open (notmuch_database_t *notmuch,
        if (status)
            goto DONE;
 
+       autocommit_str = notmuch_config_get (notmuch, NOTMUCH_CONFIG_AUTOCOMMIT);
+       if (unlikely (! autocommit_str)) {
+           INTERNAL_ERROR ("missing configuration for autocommit");
+       }
+       notmuch->transaction_threshold = strtoul (autocommit_str, &autocommit_end, 10);
+       if (*autocommit_end != '\0')
+           INTERNAL_ERROR ("Malformed database database.autocommit value: %s", autocommit_str);
+
        status = _notmuch_database_setup_standard_query_fields (notmuch);
        if (status)
            goto DONE;