Make the behaviour when passed NULL consistent with
notmuch_filenames_valid. The library already passes the result of
notmuch_message_get_tags without checking for NULL, so it should be
handled.
---
lib/notmuch.h | 3 +++
lib/tags.c | 2 +-
test/T565-lib-tags.sh | 1 -
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/notmuch.h b/lib/notmuch.h
index 2e6ec2af..44263a66 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -2262,6 +2262,9 @@ notmuch_message_properties_destroy (notmuch_message_properties_t *properties);
* valid string. Whereas when this function returns FALSE,
* notmuch_tags_get will return NULL.
*
+ * It is acceptable to pass NULL for 'tags', in which case this
+ * function will always return FALSE.
+
* See the documentation of notmuch_message_get_tags for example code
* showing how to iterate over a notmuch_tags_t object.
*/
diff --git a/lib/tags.c b/lib/tags.c
index c7d3f66f..ec5366ff 100644
--- a/lib/tags.c
+++ b/lib/tags.c
@@ -48,7 +48,7 @@ _notmuch_tags_create (const void *ctx, notmuch_string_list_t *list)
notmuch_bool_t
notmuch_tags_valid (notmuch_tags_t *tags)
{
- return tags->iterator != NULL;
+ return tags && (tags->iterator != NULL);
}
const char *
diff --git a/test/T565-lib-tags.sh b/test/T565-lib-tags.sh
index 0f3595d2..2a59f8dd 100755
--- a/test/T565-lib-tags.sh
+++ b/test/T565-lib-tags.sh
@@ -68,7 +68,6 @@ test_expect_equal_file EXPECTED OUTPUT.clean
restore_database
test_begin_subtest "NULL tags are not valid"
-test_subtest_known_broken
cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
{
notmuch_bool_t valid = TRUE;
--
2.35.2
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org