aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-04-21 15:06:02 -0700
committerCarl Worth <cworth@cworth.org>2010-04-21 15:06:02 -0700
commit36e4459a328b8449b3e9d510be81a332a9b35aaa (patch)
treed0b45eaf7516e91cbf91c0b3f638e54fa8937158 /lib
parent4971b85641def6b17072ae1b0de0adf15d197f2c (diff)
thread: Simplify code for assigning the subject.
We know that matched messages are always added in order, so we can always just grab the subject from the first message. This is the same approach that was used previously in _thread_add_message. That is, the recent feature of renaming a thread based on the subject of the "first" matched message is as simple as moving the subject assignment from _thread_add_message to _thread_add_matched_message.
Diffstat (limited to 'lib')
-rw-r--r--lib/thread.cc38
1 files changed, 14 insertions, 24 deletions
diff --git a/lib/thread.cc b/lib/thread.cc
index 5bf8354..9b37143 100644
--- a/lib/thread.cc
+++ b/lib/thread.cc
@@ -112,12 +112,6 @@ _thread_add_message (notmuch_thread_t *thread,
g_object_unref (G_OBJECT (list));
}
- if (! thread->subject) {
- const char *subject;
- subject = notmuch_message_get_header (message, "subject");
- thread->subject = talloc_strdup (thread, subject);
- }
-
for (tags = notmuch_message_get_tags (message);
notmuch_tags_valid (tags);
notmuch_tags_move_to_next (tags))
@@ -143,26 +137,22 @@ _thread_add_matched_message (notmuch_thread_t *thread,
if (date > thread->newest || ! thread->matched_messages)
thread->newest = date;
- const char *subject;
- const char *cleaned_subject;
-
- subject = notmuch_message_get_header (message, "subject");
-
- if ((strncasecmp (subject, "Re: ", 4) == 0) ||
- (strncasecmp (subject, "Aw: ", 4) == 0) ||
- (strncasecmp (subject, "Vs: ", 4) == 0) ||
- (strncasecmp (subject, "Sv: ", 4) == 0)) {
+ if (! thread->subject) {
+ const char *subject;
- cleaned_subject = talloc_strndup (thread,
- subject + 4,
- strlen(subject) - 4);
- } else {
- cleaned_subject = talloc_strdup (thread, subject);
- }
+ subject = notmuch_message_get_header (message, "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 ((strncasecmp (subject, "Re: ", 4) == 0) ||
+ (strncasecmp (subject, "Aw: ", 4) == 0) ||
+ (strncasecmp (subject, "Vs: ", 4) == 0) ||
+ (strncasecmp (subject, "Sv: ", 4) == 0))
+ {
+ thread->subject = talloc_strdup (thread, subject + 4);
+ }
+ else
+ {
+ thread->subject = talloc_strdup (thread, subject);
+ }
}
thread->matched_messages++;