add_message: Re-order the code a bit (find message-id first).
authorCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2009 12:30:37 +0000 (05:30 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2009 12:30:37 +0000 (05:30 -0700)
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

index c5d774763307ab8b9c1b862ef7c0b4371d586511..b58d92d974915c52808c4f761aaf3a750606c906 100644 (file)
@@ -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++)