+ /* Has a message previously been added with the same ID? */
+ old_filename = notmuch_message_get_filename (message);
+ if (old_filename && strlen (old_filename)) {
+ /* XXX: This is too noisy to actually print, and what do we
+ * really expect the user to do? Go manually delete a
+ * redundant message or merge two similar messages?
+ * Instead we should handle this transparently.
+ *
+ * What we likely want to move to is adding both filenames
+ * to the database so that subsequent indexing will pick up
+ * terms from both files.
+ */
+#if 0
+ fprintf (stderr,
+ "Note: Attempting to add a message with a duplicate message ID:\n"
+ "Old: %s\n" "New: %s\n",
+ old_filename, filename);
+ fprintf (stderr, "The old filename will be used, but any new terms\n"
+ "from the new message will added to the database.\n");
+#endif
+ } else {
+ _notmuch_message_set_filename (message, filename);
+ _notmuch_message_add_term (message, "type", "mail");
+ }
+
+ /* Next, find the thread(s) to which this message belongs. */
+ 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++)
+ _notmuch_message_add_term (message, "ref",
+ (char *) g_ptr_array_index (parents, i));
+