]> git.notmuchmail.org Git - notmuch/blobdiff - lib/add-message.cc
Merge remote-tracking branch 'origin/debian/bullseye' into release
[notmuch] / lib / add-message.cc
index 485debad225239211e9a6f165f24be519080a0ed..d6e5e73d35f4b4c3183df5642ac251c95ad48641 100644 (file)
@@ -407,14 +407,17 @@ static notmuch_status_t
 _notmuch_database_link_message (notmuch_database_t *notmuch,
                                notmuch_message_t *message,
                                notmuch_message_file_t *message_file,
-                               bool is_ghost)
+                               bool is_ghost,
+                               bool is_new)
 {
     void *local = talloc_new (NULL);
     notmuch_status_t status;
     const char *thread_id = NULL;
 
     /* Check if the message already had a thread ID */
-    if (notmuch->features & NOTMUCH_FEATURE_GHOSTS) {
+    if (! is_new) {
+       thread_id = notmuch_message_get_thread_id (message);
+    } else if (notmuch->features & NOTMUCH_FEATURE_GHOSTS) {
        if (is_ghost)
            thread_id = notmuch_message_get_thread_id (message);
     } else {
@@ -529,7 +532,9 @@ notmuch_database_index_file (notmuch_database_t *notmuch,
            goto DONE;
        }
 
-       _notmuch_message_add_filename (message, filename);
+       ret = _notmuch_message_add_filename (message, filename);
+       if (ret)
+           goto DONE;
 
        if (is_new || is_ghost) {
            _notmuch_message_add_term (message, "type", "mail");
@@ -539,7 +544,7 @@ notmuch_database_index_file (notmuch_database_t *notmuch,
        }
 
        ret = _notmuch_database_link_message (notmuch, message,
-                                             message_file, is_ghost);
+                                             message_file, is_ghost, is_new);
        if (ret)
            goto DONE;