X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=thread.c;h=e34c543ea88bf62b1d547c15eff7f8780dc22eab;hp=ee923b127f98a77569e61f9527dd95d21ca0e74d;hb=7e6ea12f3d017b6a04d86862e42ef3fd23780d8e;hpb=238b70e39b78f585c586bd51aef41988b3cc73d1 diff --git a/thread.c b/thread.c index ee923b1..e34c543 100644 --- a/thread.c +++ b/thread.c @@ -7,21 +7,12 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include +#include #include "mutt.h" #include "sort.h" #include "thread.h" - -#include -#include - #define VISIBLE(hdr, ctx) (hdr->virtual >= 0 || (hdr->collapsed && (!ctx->pattern || hdr->limited))) /* determine whether a is a descendant of b */ @@ -316,12 +307,12 @@ void mutt_draw_tree (CONTEXT * ctx) * has no message, we have to make a list of all the subjects of its * most immediate existing descendants. we also note the earliest * date on any of the parents and put it in *dateptr. */ -static LIST *make_subject_list (THREAD * cur, time_t * dateptr) +static string_list_t *make_subject_list (THREAD * cur, time_t * dateptr) { THREAD *start = cur; ENVELOPE *env; time_t thisdate; - LIST *curlist, *oldlist, *newlist, *subjects = NULL; + string_list_t *curlist, *oldlist, *newlist, *subjects = NULL; int rc = 0; for (;;) { @@ -345,7 +336,7 @@ static LIST *make_subject_list (THREAD * cur, time_t * dateptr) break; } if (!curlist || rc > 0) { - newlist = p_new(LIST, 1); + newlist = p_new(string_list_t, 1); newlist->data = env->real_subj; if (oldlist) { newlist->next = oldlist->next; @@ -378,7 +369,7 @@ static THREAD *find_subject (CONTEXT * ctx, THREAD * cur) struct hash_elem *ptr; THREAD *tmp, *last = NULL; int hash; - LIST *subjects = NULL, *oldlist; + string_list_t *subjects = NULL, *oldlist; time_t date = 0; subjects = make_subject_list (cur, &date); @@ -685,7 +676,7 @@ void mutt_sort_threads (CONTEXT * ctx, int init) HEADER *cur; int i, oldsort, using_refs = 0; THREAD *thread, *new, *tmp, top; - LIST *ref = NULL; + string_list_t *ref = NULL; /* set Sort to the secondary method to support the set sort_aux=reverse-* * settings. The sorting functions just look at the value of @@ -1233,15 +1224,15 @@ HASH *mutt_make_subj_hash (CONTEXT * ctx) return hash; } -static void clean_references (THREAD * brk, THREAD * cur) +static void clean_references (THREAD * tbrk, THREAD * cur) { THREAD *p; - LIST *ref = NULL; + string_list_t *ref = NULL; int done = 0; for (; cur; cur = cur->next, done = 0) { /* parse subthread recursively */ - clean_references (brk, cur->child); + clean_references (tbrk, cur->child); if (!cur->message) break; /* skip pseudo-message */ @@ -1249,7 +1240,7 @@ static void clean_references (THREAD * brk, THREAD * cur) /* Looking for the first bad reference according to the new threading. * Optimal since Mutt stores the references in reverse order, and the * first loop should match immediatly for mails respecting RFC2822. */ - for (p = brk; !done && p; p = p->parent) + for (p = tbrk; !done && p; p = p->parent) for (ref = cur->message->env->references; p->message && ref; ref = ref->next) if (!m_strcasecmp(ref->data, p->message->env->message_id)) { @@ -1261,7 +1252,7 @@ static void clean_references (THREAD * brk, THREAD * cur) HEADER *h = cur->message; /* clearing the References: header from obsolete Message-ID(s) */ - mutt_free_list (&ref->next); + string_list_wipe(&ref->next); h->env->refs_changed = h->changed = 1; } @@ -1270,8 +1261,8 @@ static void clean_references (THREAD * brk, THREAD * cur) void mutt_break_thread (HEADER * hdr) { - mutt_free_list (&hdr->env->in_reply_to); - mutt_free_list (&hdr->env->references); + string_list_wipe(&hdr->env->in_reply_to); + string_list_wipe(&hdr->env->references); hdr->env->irt_changed = hdr->env->refs_changed = hdr->changed = 1; clean_references (hdr->thread, hdr->thread->child); } @@ -1283,7 +1274,7 @@ static int link_threads (HEADER * parent, HEADER * child, CONTEXT * ctx) mutt_break_thread (child); - child->env->in_reply_to = mutt_new_list (); + child->env->in_reply_to = string_item_new(); child->env->in_reply_to->data = m_strdup(parent->env->message_id); mutt_set_flag (ctx, child, M_TAG, 0);