X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=thread.c;h=d07f32855b62d6933bdb7317c8ccce9bbd83acca;hp=1cff9e56b124e7e717d3f97f25f2f35886bb1615;hb=ce5e12405904f419adf8b4b6d4465fb27274c08b;hpb=c3e57678c8be193fc137854020f3a90887be97c9 diff --git a/thread.c b/thread.c index 1cff9e5..d07f328 100644 --- a/thread.c +++ b/thread.c @@ -14,6 +14,9 @@ #include "mutt.h" #include "sort.h" +#include "lib/mem.h" +#include "lib/intl.h" + #include #include @@ -840,7 +843,7 @@ void mutt_sort_threads (CONTEXT * ctx, int init) if (new->duplicate_thread) new = new->parent; if (is_descendant (new, thread)) /* no loops! */ - break; + continue; } if (thread->parent) @@ -1247,7 +1250,7 @@ static void clean_references (THREAD * brk, THREAD * cur) for (p = brk; !done && p; p = p->parent) for (ref = cur->message->env->references; p->message && ref; ref = ref->next) - if (!mutt_strcasecmp (ref->data, p->message->env->message_id)) { + if (!safe_strcasecmp (ref->data, p->message->env->message_id)) { done = 1; break; } @@ -1258,14 +1261,7 @@ static void clean_references (THREAD * brk, THREAD * cur) /* clearing the References: header from obsolete Message-Id(s) */ mutt_free_list (&ref->next); - if (h->new_env) - mutt_free_list (&h->new_env->references); - else - h->new_env = mutt_new_envelope (); - - h->new_env->references = mutt_copy_list (h->env->references); - - h->refs_changed = h->changed = 1; + h->env->refs_changed = h->changed = 1; } } } @@ -1274,15 +1270,7 @@ void mutt_break_thread (HEADER * hdr) { mutt_free_list (&hdr->env->in_reply_to); mutt_free_list (&hdr->env->references); - hdr->irt_changed = hdr->refs_changed = hdr->changed = 1; - - if (hdr->new_env) { - mutt_free_list (&hdr->new_env->in_reply_to); - mutt_free_list (&hdr->new_env->references); - } - else - hdr->new_env = mutt_new_envelope (); - + hdr->env->irt_changed = hdr->env->refs_changed = 1; clean_references (hdr->thread, hdr->thread->child); } @@ -1296,12 +1284,9 @@ static int link_threads (HEADER * parent, HEADER * child, CONTEXT * ctx) child->env->in_reply_to = mutt_new_list (); child->env->in_reply_to->data = safe_strdup (parent->env->message_id); - child->new_env->in_reply_to = mutt_new_list (); - child->new_env->in_reply_to->data = safe_strdup (parent->env->message_id); - mutt_set_flag (ctx, child, M_TAG, 0); - child->irt_changed = child->changed = 1; + child->env->irt_changed = child->changed = 1; return 1; }