X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fadd-message.cc;h=711ed9fac80cc045aa641420ec993eb3420f94ef;hb=55f9f6505e4dc92b92aedbc431bb7911046ab83a;hp=2922eaa9e9b2f8088d0b454a841d85bb1668862d;hpb=4fdabd636e1b0417bb40c71bdce64e18f0f347e2;p=notmuch diff --git a/lib/add-message.cc b/lib/add-message.cc index 2922eaa9..711ed9fa 100644 --- a/lib/add-message.cc +++ b/lib/add-message.cc @@ -220,7 +220,7 @@ _my_talloc_free_for_g_hash (void *ptr) talloc_free (ptr); } -static notmuch_status_t +notmuch_status_t _notmuch_database_link_message_to_parents (notmuch_database_t *notmuch, notmuch_message_t *message, notmuch_message_file_t *message_file, @@ -529,19 +529,22 @@ notmuch_database_add_message (notmuch_database_t *notmuch, if (is_ghost) /* Convert ghost message to a regular message */ _notmuch_message_remove_term (message, "type", "ghost"); - ret = _notmuch_database_link_message (notmuch, message, + } + + ret = _notmuch_database_link_message (notmuch, message, message_file, is_ghost); - if (ret) - goto DONE; + if (ret) + goto DONE; + if (is_new || is_ghost) _notmuch_message_set_header_values (message, date, from, subject); - ret = _notmuch_message_index_file (message, message_file); - if (ret) - goto DONE; - } else { + ret = _notmuch_message_index_file (message, message_file); + if (ret) + goto DONE; + + if (! is_new && !is_ghost) ret = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID; - } _notmuch_message_sync (message); } catch (const Xapian::Error &error) {