lib/n_m_g_filename: catch Xapian exceptions, document NULL return

This is the same machinery as applied for

     notmuch_message_get_{thread,message}_id
This commit is contained in:
David Bremner 2020-07-04 09:20:31 -03:00
parent 46e8076281
commit a606cba32b
3 changed files with 8 additions and 2 deletions

View file

@ -1122,7 +1122,12 @@ _notmuch_message_ensure_filename_list (notmuch_message_t *message)
const char *
notmuch_message_get_filename (notmuch_message_t *message)
{
_notmuch_message_ensure_filename_list (message);
try {
_notmuch_message_ensure_filename_list (message);
} catch (Xapian::Error &error) {
LOG_XAPIAN_EXCEPTION (message, error);
return NULL;
}
if (message->filename_list == NULL)
return NULL;

View file

@ -1433,6 +1433,8 @@ notmuch_message_count_files (notmuch_message_t *message);
* this function will arbitrarily return a single one of those
* filenames. See notmuch_message_get_filenames for returning the
* complete list of filenames.
*
* This function returns NULL if it triggers a Xapian exception.
*/
const char *
notmuch_message_get_filename (notmuch_message_t *message);

View file

@ -406,7 +406,6 @@ EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "Handle getting message filename from closed database"
test_subtest_known_broken
cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR}
{
const char *filename;