notmuch tag: Fix crash when removing a tag that didn't exist
authorCarl Worth <cworth@cworth.org>
Wed, 28 Oct 2009 06:59:06 +0000 (23:59 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 28 Oct 2009 06:59:06 +0000 (23:59 -0700)
Xapian is trying to be useful by reporting that the specified term
didn't exist, but this is one case where we just don't care. :-)

message.cc

index 6e15b51118be82b960fb13aae667241fdbf36048..66747b5c0aedd38e40b02d128ba7040826cd061f 100644 (file)
@@ -465,7 +465,14 @@ _notmuch_message_remove_term (notmuch_message_t *message,
     if (strlen (term) > NOTMUCH_TERM_MAX)
        return NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG;
 
-    message->doc.remove_term (term);
+    try {
+       message->doc.remove_term (term);
+    } catch (const Xapian::InvalidArgumentError) {
+       /* We'll let the philosopher's try to wrestle with the
+        * question of whether failing to remove that which was not
+        * there in the first place is failure. For us, we'll silently
+        * consider it all good. */
+    }
 
     talloc_free (term);