From 31044d10ed114637464481d1a0f4771ed170950e Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 23 Oct 2009 05:30:37 -0700 Subject: [PATCH] add_message: Re-order the code a bit (find message-id first). We're preparing for being able to deal with files with duplicate message IDs here. The plan is to create a notmuch_message_t object in add_message that may or may not reference a document that exists in the database. So to do this, we have to find the message ID before we do any manipulation of the doc. --- database.cc | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/database.cc b/database.cc index c5d77476..b58d92d9 100644 --- a/database.cc +++ b/database.cc @@ -482,21 +482,6 @@ notmuch_database_add_message (notmuch_database_t *notmuch, (char *) NULL); try { - doc.set_data (filename); - - add_term (doc, "type", "mail"); - - parents = g_ptr_array_new (); - - refs = notmuch_message_file_get_header (message_file, "references"); - parse_references (parents, refs); - - in_reply_to = notmuch_message_file_get_header (message_file, "in-reply-to"); - parse_references (parents, in_reply_to); - - for (i = 0; i < parents->len; i++) - add_term (doc, "ref", (char *) g_ptr_array_index (parents, i)); - header = notmuch_message_file_get_header (message_file, "message-id"); if (header) { message_id = parse_message_id (header, NULL); @@ -519,6 +504,21 @@ notmuch_database_add_message (notmuch_database_t *notmuch, free (sha1); } + doc.set_data (filename); + + add_term (doc, "type", "mail"); + + parents = g_ptr_array_new (); + + refs = notmuch_message_file_get_header (message_file, "references"); + parse_references (parents, refs); + + in_reply_to = notmuch_message_file_get_header (message_file, "in-reply-to"); + parse_references (parents, in_reply_to); + + for (i = 0; i < parents->len; i++) + add_term (doc, "ref", (char *) g_ptr_array_index (parents, i)); + thread_ids = find_thread_ids (notmuch, parents, message_id); for (i = 0; i < parents->len; i++)