aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-01-06 10:06:00 -0800
committerGravatar Carl Worth <cworth@cworth.org>2010-01-06 10:32:06 -0800
commit4b418343f656c2de5503d907d075019626561373 (patch)
treefb5d30faffaf7161211c163d08f288e7a8fa055f /lib
parent777cd23d9db64c8015fe880a106e84c3634bf19f (diff)
lib: Indicate whether notmuch_database_remove_message removed anything.
Similar to the return value of notmuch_database_add_message, we now enhance the return value of notmuch_database_remove_message to indicate whether the message document was entirely removed (SUCCESS) or whether only this filename was removed and the document exists under other filenamed (DUPLICATE_MESSAGE_ID).
Diffstat (limited to 'lib')
-rw-r--r--lib/database.cc4
-rw-r--r--lib/notmuch.h21
2 files changed, 18 insertions, 7 deletions
diff --git a/lib/database.cc b/lib/database.cc
index 205d0360..dc967c8c 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -1201,14 +1201,16 @@ notmuch_database_remove_message (notmuch_database_t *notmuch,
strncmp ((*j).c_str (), prefix, strlen (prefix)))
{
db->delete_document (document.get_docid ());
+ status = NOTMUCH_STATUS_SUCCESS;
} else {
db->replace_document (document.get_docid (), document);
+ status = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID;
}
}
talloc_free (local);
- return NOTMUCH_STATUS_SUCCESS;
+ return status;
}
notmuch_tags_t *
diff --git a/lib/notmuch.h b/lib/notmuch.h
index 52078e81..110061c2 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -237,12 +237,21 @@ notmuch_database_add_message (notmuch_database_t *database,
/* Remove a message from the given notmuch database.
*
- * Note that the only this particular filename association is removed
- * from the database. If the same message (as determined by the
- * message ID) is still available via other filenames, then the
- * message will persist in the database for those filenames. When the
- * last filename is removed for a particular message, the database
- * content for that message will be entirely removed.
+ * Note that only this particular filename association is removed from
+ * the database. If the same message (as determined by the message ID)
+ * is still available via other filenames, then the message will
+ * persist in the database for those filenames. When the last filename
+ * is removed for a particular message, the database content for that
+ * message will be entirely removed.
+ *
+ * Return value:
+ *
+ * NOTMUCH_STATUS_SUCCESS: The last filename was removed and the
+ * message was removed from the database.
+ *
+ * NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID: This filename was removed but
+ * the message persists in the database with at least one other
+ * filename.
*/
notmuch_status_t
notmuch_database_remove_message (notmuch_database_t *database,