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,
}
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;
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) {
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);
+
+}