X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fadd-message.cc;h=f5fac8be751fa2706d09383c07390652e73dc679;hp=711ed9fac80cc045aa641420ec993eb3420f94ef;hb=4dfcc8c9b2e1dbb965f69283dca50c7581c88050;hpb=5b93fa6e70c905e3c5f2a8109683db29ccfd5bcf diff --git a/lib/add-message.cc b/lib/add-message.cc index 711ed9fa..f5fac8be 100644 --- a/lib/add-message.cc +++ b/lib/add-message.cc @@ -404,7 +404,7 @@ static notmuch_status_t _notmuch_database_link_message (notmuch_database_t *notmuch, notmuch_message_t *message, notmuch_message_file_t *message_file, - notmuch_bool_t is_ghost) + bool is_ghost) { void *local = talloc_new (NULL); notmuch_status_t status; @@ -458,15 +458,17 @@ _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 *indexopts, + notmuch_message_t **message_ret) { notmuch_message_file_t *message_file; notmuch_message_t *message = NULL; notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS, ret2; notmuch_private_status_t private_status; - notmuch_bool_t is_ghost = FALSE, is_new = FALSE; + bool is_ghost = false, is_new = false; + notmuch_indexopts_t *def_indexopts = NULL; const char *date; const char *from, *to, *subject; @@ -509,12 +511,12 @@ notmuch_database_add_message (notmuch_database_t *notmuch, /* We cannot call notmuch_message_get_flag for a new message */ switch (private_status) { case NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND: - is_ghost = FALSE; - is_new = TRUE; + is_ghost = false; + is_new = true; break; case NOTMUCH_PRIVATE_STATUS_SUCCESS: is_ghost = notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_GHOST); - is_new = FALSE; + is_new = false; break; default: ret = COERCE_STATUS (private_status, @@ -539,7 +541,12 @@ notmuch_database_add_message (notmuch_database_t *notmuch, if (is_new || is_ghost) _notmuch_message_set_header_values (message, date, from, subject); - ret = _notmuch_message_index_file (message, message_file); + if (!indexopts) { + def_indexopts = notmuch_database_get_default_indexopts (notmuch); + indexopts = def_indexopts; + } + + ret = _notmuch_message_index_file (message, indexopts, message_file); if (ret) goto DONE; @@ -550,12 +557,15 @@ notmuch_database_add_message (notmuch_database_t *notmuch, } catch (const Xapian::Error &error) { _notmuch_database_log (notmuch, "A Xapian exception occurred adding message: %s.\n", error.get_msg().c_str()); - notmuch->exception_reported = TRUE; + notmuch->exception_reported = true; ret = NOTMUCH_STATUS_XAPIAN_EXCEPTION; goto DONE; } DONE: + if (def_indexopts) + notmuch_indexopts_destroy (def_indexopts); + if (message) { if ((ret == NOTMUCH_STATUS_SUCCESS || ret == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) && message_ret) @@ -575,3 +585,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); + +}