return "Something went wrong trying to read or write a file";
case NOTMUCH_STATUS_FILE_NOT_EMAIL:
return "File is not an email";
+ case NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID:
+ return "Message ID is identical to a message in database";
case NOTMUCH_STATUS_NULL_POINTER:
return "Erroneous NULL pointer";
case NOTMUCH_STATUS_TAG_TOO_LONG:
/* 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
+ ret = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID;
+ goto DONE;
} else {
_notmuch_message_set_filename (message, filename);
_notmuch_message_add_term (message, "type", "mail");
* NOTMUCH_STATUS_FILE_NOT_EMAIL: A file was presented that doesn't
* appear to be an email message.
*
+ * NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID: A file contains a message ID
+ * that is identical to a message already in the database.
+ *
* NOTMUCH_STATUS_NULL_POINTER: The user erroneously passed a NULL
* pointer to a notmuch function.
*
NOTMUCH_STATUS_XAPIAN_EXCEPTION,
NOTMUCH_STATUS_FILE_ERROR,
NOTMUCH_STATUS_FILE_NOT_EMAIL,
+ NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID,
NOTMUCH_STATUS_NULL_POINTER,
NOTMUCH_STATUS_TAG_TOO_LONG,
*
* NOTMUCH_STATUS_SUCCESS: Message successfully added to database.
*
+ * NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID: Message has the same message
+ * ID as another message already in the database. Nothing added
+ * to the database.
+ *
* NOTMUCH_STATUS_FILE_ERROR: an error occurred trying to open the
* file, (such as permission denied, or file not found,
* etc.). Nothing added to the database.