Rocco Rutte:
[apps/madmutt.git] / thread.c
index 814e00e..d07f328 100644 (file)
--- a/thread.c
+++ b/thread.c
@@ -338,7 +338,7 @@ static LIST *make_subject_list (THREAD * cur, time_t * dateptr)
         ((env->real_subj != env->subject) || (!option (OPTSORTRE)))) {
       for (curlist = subjects, oldlist = NULL;
            curlist; oldlist = curlist, curlist = curlist->next) {
-        rc = safe_strcmp (env->real_subj, curlist->data);
+        rc = mutt_strcmp (env->real_subj, curlist->data);
         if (rc >= 0)
           break;
       }
@@ -398,7 +398,7 @@ static THREAD *find_subject (CONTEXT * ctx, THREAD * cur)
             (last->message->received < tmp->message->received) :
             (last->message->date_sent < tmp->message->date_sent))) &&
           tmp->message->env->real_subj &&
-          safe_strcmp (subjects->data, tmp->message->env->real_subj) == 0)
+          mutt_strcmp (subjects->data, tmp->message->env->real_subj) == 0)
         last = tmp;             /* best match so far */
     }
 
@@ -471,7 +471,7 @@ static void pseudo_threads (CONTEXT * ctx)
          * parent, since otherwise they rightly belong to the message
          * we're attaching. */
         if (tmp == cur
-            || !safe_strcmp (tmp->message->env->real_subj,
+            || !mutt_strcmp (tmp->message->env->real_subj,
                              parent->message->env->real_subj)) {
           tmp->message->subject_changed = 0;
 
@@ -669,7 +669,7 @@ static void check_subjects (CONTEXT * ctx, int init)
     if (!tmp)
       cur->subject_changed = 1;
     else if (cur->env->real_subj && tmp->message->env->real_subj)
-      cur->subject_changed = safe_strcmp (cur->env->real_subj,
+      cur->subject_changed = mutt_strcmp (cur->env->real_subj,
                                           tmp->message->env->
                                           real_subj) ? 1 : 0;
     else
@@ -821,7 +821,7 @@ void mutt_sort_threads (CONTEXT * ctx, int init)
         if (!cur->env->references)
           ref = ref->next;
         else {
-          if (safe_strcmp (ref->data, cur->env->references->data))
+          if (mutt_strcmp (ref->data, cur->env->references->data))
             ref = cur->env->references;
           else
             ref = cur->env->references->next;
@@ -843,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)
@@ -1261,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;
     }
   }
 }
@@ -1277,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);
 }
 
@@ -1299,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;
 }