aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/thread.cc
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-04-24 06:45:51 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-04-24 06:50:04 -0700
commit7c421b87b05d2513540a75bbe1841e226072ad7c (patch)
tree8bc42fe7cf3f1f3fc88a982e7329a6abbadd9a27 /lib/thread.cc
parentd06a34ad5dcf4626164002e78d8b3ab01a5dd1a5 (diff)
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.
Diffstat (limited to 'lib/thread.cc')
-rw-r--r--lib/thread.cc47
1 files 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