From 7cfa1c69610bcf15fb47868131d3d9102f899225 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Thu, 14 Dec 2017 22:29:57 -0400 Subject: [PATCH] lib: return "" rather than NULL from notmuch_thread_get_authors The current behaviour is at best under-documented. The modified test in T470-missing-headers.sh previously relied on printf doing the right thing with NULL, which seems icky. The use of talloc_strdup here is probably overkill, but it avoids having to enforce that thread->authors is never mutated outside _resolve_thread_authors_string. --- lib/thread.cc | 3 +++ test/T470-missing-headers.sh | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/thread.cc b/lib/thread.cc index 1632da4c..3561b27f 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -160,6 +160,9 @@ _resolve_thread_authors_string (notmuch_thread_t *thread) thread->authors_array = NULL; g_ptr_array_free (thread->matched_authors_array, true); thread->matched_authors_array = NULL; + + if (!thread->authors) + thread->authors = talloc_strdup(thread, ""); } /* clean up the ugly "Lastname, Firstname" format that some mail systems diff --git a/test/T470-missing-headers.sh b/test/T470-missing-headers.sh index 4bf5d285..555fd4e9 100755 --- a/test/T470-missing-headers.sh +++ b/test/T470-missing-headers.sh @@ -25,7 +25,7 @@ NOTMUCH_NEW >/dev/null test_begin_subtest "Search: text" output=$(notmuch search '*' | notmuch_search_sanitize) test_expect_equal "$output" "\ -thread:XXX 2001-01-05 [1/1] (null); (inbox unread) +thread:XXX 2001-01-05 [1/1] ; (inbox unread) thread:XXX 1970-01-01 [1/1] Notmuch Test Suite; (inbox unread)" test_begin_subtest "Search: json"