From 7c421b87b05d2513540a75bbe1841e226072ad7c Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 24 Apr 2010 06:45:51 -0700 Subject: [PATCH] lib: Simplify code to set subject from matched message. Simply moving the code from _add_matched_message to a new _set_subject_from_message function. --- lib/thread.cc | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/lib/thread.cc b/lib/thread.cc index 5bf83540..1cc22acd 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -128,21 +128,9 @@ _thread_add_message (notmuch_thread_t *thread, } static void -_thread_add_matched_message (notmuch_thread_t *thread, - notmuch_message_t *message, - notmuch_sort_t sort) +_thread_set_subject_from_message (notmuch_thread_t *thread, + notmuch_message_t *message) { - time_t date; - notmuch_message_t *hashed_message; - - date = notmuch_message_get_date (message); - - if (date < thread->oldest || ! thread->matched_messages) - thread->oldest = date; - - if (date > thread->newest || ! thread->matched_messages) - thread->newest = date; - const char *subject; const char *cleaned_subject; @@ -160,10 +148,27 @@ _thread_add_matched_message (notmuch_thread_t *thread, cleaned_subject = talloc_strdup (thread, subject); } - if ((sort == NOTMUCH_SORT_OLDEST_FIRST && date <= thread->newest) || - (sort != NOTMUCH_SORT_OLDEST_FIRST && date == thread->newest)) { - thread->subject = talloc_strdup (thread, cleaned_subject); - } + if (thread->subject) + talloc_free (thread->subject); + + thread->subject = talloc_strdup (thread, cleaned_subject); +} + +static void +_thread_add_matched_message (notmuch_thread_t *thread, + notmuch_message_t *message, + notmuch_sort_t sort) +{ + time_t date; + notmuch_message_t *hashed_message; + + date = notmuch_message_get_date (message); + + if (date < thread->oldest || ! thread->matched_messages) + thread->oldest = date; + + if (date > thread->newest || ! thread->matched_messages) + thread->newest = date; thread->matched_messages++; @@ -173,6 +178,12 @@ _thread_add_matched_message (notmuch_thread_t *thread, notmuch_message_set_flag (hashed_message, NOTMUCH_MESSAGE_FLAG_MATCH, 1); } + + if ((sort == NOTMUCH_SORT_OLDEST_FIRST && date <= thread->newest) || + (sort != NOTMUCH_SORT_OLDEST_FIRST && date == thread->newest)) + { + _thread_set_subject_from_message (thread, message); + } } static void