From ce5d78296251b529838df0dbd4dc3b9a90030924 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 23 Oct 2009 06:04:57 -0700 Subject: [PATCH] Fix notmuch_message_get_message_id to never return NULL. With the recent improvements to the handling of message IDs we "know" that a NULL message ID is impossible, (so we simply abort if the impossible happens). --- message.cc | 9 +++++---- notmuch.h | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/message.cc b/message.cc index ce600af9..65e5ad78 100644 --- a/message.cc +++ b/message.cc @@ -215,10 +215,11 @@ notmuch_message_get_message_id (notmuch_message_t *message) i = message->doc.termlist_begin (); i.skip_to (_find_prefix ("msgid")); - /* XXX: This should really be an internal error, but we'll need to - * fix the add_message side of things first. */ - if (i == message->doc.termlist_end ()) - return NULL; + if (i == message->doc.termlist_end ()) { + fprintf (stderr, "Internal error: Message with document ID of %d has no message ID.\n", + message->doc_id); + exit (1); + } message->message_id = talloc_strdup (message, (*i).c_str () + 1); return message->message_id; diff --git a/notmuch.h b/notmuch.h index 57ff8c8f..f568bc0a 100644 --- a/notmuch.h +++ b/notmuch.h @@ -338,6 +338,10 @@ notmuch_results_destroy (notmuch_results_t *results); * modified by the caller and will only be valid for as long as the * message is valid, (which is until the query from which it derived * is destroyed). + * + * This function will not return NULL since Notmuch ensures that every + * message has a unique message ID, (Notmuch will generate an ID for a + * message if the original file does not contain one). */ const char * notmuch_message_get_message_id (notmuch_message_t *message);