summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2009-10-23 05:30:37 -0700
committerCarl Worth <cworth@cworth.org>2009-10-23 05:30:37 -0700
commit31044d10ed114637464481d1a0f4771ed170950e (patch)
tree55bff5e2b98744175e835d99e83f37c63754dc09
parentc78358fa8adc0e8fa4f889e479df76e8df186264 (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.cc30
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++)