diff options
author | David Bremner <david@tethera.net> | 2020-07-05 10:00:25 -0300 |
---|---|---|
committer | David Bremner <david@tethera.net> | 2020-07-14 07:31:45 -0300 |
commit | aa8e3f4487897f0c650dc37d99153099c3d3df5e (patch) | |
tree | f1e427b1238f705280cacccd571a84cb581c65ed /lib | |
parent | 0fc769aa4fa45b2fcd9f1624fc45946581d6f34f (diff) |
lib: catch Xapian exceptions in n_m_remove_tag
The churn here is again mainly re-indentation.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/message.cc | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/lib/message.cc b/lib/message.cc index 62a181c1..e4848f83 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -1623,24 +1623,29 @@ notmuch_message_remove_tag (notmuch_message_t *message, const char *tag) notmuch_private_status_t private_status; notmuch_status_t status; - status = _notmuch_database_ensure_writable (message->notmuch); - if (status) - return status; + try { + status = _notmuch_database_ensure_writable (message->notmuch); + if (status) + return status; - if (tag == NULL) - return NOTMUCH_STATUS_NULL_POINTER; + if (tag == NULL) + return NOTMUCH_STATUS_NULL_POINTER; - if (strlen (tag) > NOTMUCH_TAG_MAX) - return NOTMUCH_STATUS_TAG_TOO_LONG; + if (strlen (tag) > NOTMUCH_TAG_MAX) + return NOTMUCH_STATUS_TAG_TOO_LONG; - private_status = _notmuch_message_remove_term (message, "tag", tag); - if (private_status) { - INTERNAL_ERROR ("_notmuch_message_remove_term return unexpected value: %d\n", - private_status); - } + private_status = _notmuch_message_remove_term (message, "tag", tag); + if (private_status) { + INTERNAL_ERROR ("_notmuch_message_remove_term return unexpected value: %d\n", + private_status); + } - if (! message->frozen) - _notmuch_message_sync (message); + if (! message->frozen) + _notmuch_message_sync (message); + } catch (Xapian::Error &error) { + LOG_XAPIAN_EXCEPTION (message, error); + return NOTMUCH_STATUS_XAPIAN_EXCEPTION; + } return NOTMUCH_STATUS_SUCCESS; } |