summaryrefslogtreecommitdiff
path: root/database.cc
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2009-10-23 14:40:33 -0700
committerCarl Worth <cworth@cworth.org>2009-10-23 14:40:33 -0700
commitb3cbcea8fdfdc71c5021fac483943a45ace816d3 (patch)
treefbdf39aa5fb88fa3b6e25543a22e48441a191426 /database.cc
parentedd37e68a96ada9187976dd0421b3f545fffbf78 (diff)
Add NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID
And document that notmuch_database_add_message can return this value. This pushes the hard decision of what to do with duplicate messages out to the user, but that's OK. (We weren't really doing anything with these ourselves, and this way the user is at least informed of the issue, rather than it just getting papered over internally.)
Diffstat (limited to 'database.cc')
-rw-r--r--database.cc21
1 files changed, 4 insertions, 17 deletions
diff --git a/database.cc b/database.cc
index 415040b..712ab26 100644
--- a/database.cc
+++ b/database.cc
@@ -40,6 +40,8 @@ notmuch_status_to_string (notmuch_status_t status)
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:
@@ -656,23 +658,8 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
/* 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");