diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-23 05:30:37 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-23 05:30:37 -0700 |
commit | 31044d10ed114637464481d1a0f4771ed170950e (patch) | |
tree | 55bff5e2b98744175e835d99e83f37c63754dc09 | |
parent | c78358fa8adc0e8fa4f889e479df76e8df186264 (diff) |
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.
-rw-r--r-- | database.cc | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/database.cc b/database.cc index c5d7747..b58d92d 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++) |