X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fadd-message.cc;h=73bde7faf049601e90e0a7af91de806fcc009a7d;hb=0082a55785a5ae64da22fe72af6c0ae928f13c03;hp=2922eaa9e9b2f8088d0b454a841d85bb1668862d;hpb=4fdabd636e1b0417bb40c71bdce64e18f0f347e2;p=notmuch diff --git a/lib/add-message.cc b/lib/add-message.cc index 2922eaa9..73bde7fa 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, @@ -458,9 +458,10 @@ _notmuch_database_link_message (notmuch_database_t *notmuch, } notmuch_status_t -notmuch_database_add_message (notmuch_database_t *notmuch, - const char *filename, - notmuch_message_t **message_ret) +notmuch_database_index_file (notmuch_database_t *notmuch, + const char *filename, + notmuch_indexopts_t unused (*indexopts), + notmuch_message_t **message_ret) { notmuch_message_file_t *message_file; notmuch_message_t *message = NULL; @@ -529,19 +530,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) { @@ -572,3 +576,14 @@ notmuch_database_add_message (notmuch_database_t *notmuch, return ret; } + +notmuch_status_t +notmuch_database_add_message (notmuch_database_t *notmuch, + const char *filename, + notmuch_message_t **message_ret) +{ + return notmuch_database_index_file (notmuch, filename, + NULL, + message_ret); + +}