]> git.notmuchmail.org Git - notmuch/blobdiff - database.cc
TODO: A couple new items.
[notmuch] / database.cc
index 9831d79cdf912f50da160289268c1db504d6d836..71246eb456115ade91ee9b47b89629850ab32e11 100644 (file)
@@ -104,12 +104,12 @@ typedef struct {
 
 prefix_t BOOLEAN_PREFIX_INTERNAL[] = {
     { "type", "T" },
-    { "thread", "G" },
     { "ref", "XREFERENCE" },
     { "timestamp", "XTIMESTAMP" },
 };
 
 prefix_t BOOLEAN_PREFIX_EXTERNAL[] = {
+    { "thread", "G" },
     { "tag", "K" },
     { "id", "Q" }
 };
@@ -489,6 +489,7 @@ notmuch_database_open (const char *path)
     } catch (const Xapian::Error &error) {
        fprintf (stderr, "A Xapian exception occurred: %s\n",
                 error.get_msg().c_str());
+       notmuch = NULL;
     }
     
   DONE:
@@ -505,6 +506,8 @@ notmuch_database_open (const char *path)
 void
 notmuch_database_close (notmuch_database_t *notmuch)
 {
+    notmuch->xapian_db->flush ();
+
     delete notmuch->query_parser;
     delete notmuch->xapian_db;
     talloc_free (notmuch);
@@ -834,6 +837,9 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
     const char *from, *to, *subject, *old_filename;
     char *message_id;
 
+    if (message_ret)
+       *message_ret = NULL;
+
     message_file = notmuch_message_file_open (filename);
     if (message_file == NULL) {
        ret = NOTMUCH_STATUS_FILE_ERROR;
@@ -930,7 +936,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
 
   DONE:
     if (message) {
-       if (message_ret)
+       if (ret == NOTMUCH_STATUS_SUCCESS && message_ret)
            *message_ret = message;
        else
            notmuch_message_destroy (message);