X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sort.c;h=00f14aa4b31e6f0d8f33f69e1c2fec9a3a9653f5;hp=e7581748359a20a9275fcfdd4c059338f3c53c23;hb=bb8c11821cc88fef9da474587cc42e0f7554cf28;hpb=1ee89902de184a640c171ae3285bff6882a791bd diff --git a/sort.c b/sort.c index e758174..00f14aa 100644 --- a/sort.c +++ b/sort.c @@ -9,10 +9,13 @@ #include +#include + #include "mutt.h" #include "alias.h" #include "sort.h" #include "thread.h" +#include "score.h" #include "mutt_idna.h" #define SORTCODE(x) (Sort & SORT_REVERSE) ? -(x) : x @@ -28,37 +31,37 @@ static sort_t *AuxSort = NULL; if (!code) \ code = (*((HEADER **)a))->index - (*((HEADER **)b))->index; -int compare_score (const void *a, const void *b) +static int compare_score (const void *a, const void *b) { HEADER **pa = (HEADER **) a; HEADER **pb = (HEADER **) b; int result = (*pb)->score - (*pa)->score; /* note that this is reverse */ AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_size (const void *a, const void *b) +static int compare_size (const void *a, const void *b) { HEADER **pa = (HEADER **) a; HEADER **pb = (HEADER **) b; int result = (*pa)->content->length - (*pb)->content->length; AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_date_sent (const void *a, const void *b) +static int compare_date_sent (const void *a, const void *b) { HEADER **pa = (HEADER **) a; HEADER **pb = (HEADER **) b; int result = (*pa)->date_sent - (*pb)->date_sent; AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_subject (const void *a, const void *b) +static int compare_subject (const void *a, const void *b) { HEADER **pa = (HEADER **) a; HEADER **pb = (HEADER **) b; @@ -75,7 +78,7 @@ int compare_subject (const void *a, const void *b) else rc = m_strcasecmp((*pa)->env->real_subj, (*pb)->env->real_subj); AUXSORT (rc, a, b); - return (SORTCODE (rc)); + return SORTCODE (rc); } const char *mutt_get_name (address_t * a) @@ -96,7 +99,7 @@ const char *mutt_get_name (address_t * a) return name; } -int compare_to (const void *a, const void *b) +static int compare_to (const void *a, const void *b) { HEADER **ppa = (HEADER **) a; HEADER **ppb = (HEADER **) b; @@ -113,10 +116,10 @@ int compare_to (const void *a, const void *b) result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_from (const void *a, const void *b) +static int compare_from (const void *a, const void *b) { HEADER **ppa = (HEADER **) a; HEADER **ppb = (HEADER **) b; @@ -133,38 +136,28 @@ int compare_from (const void *a, const void *b) result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_date_received (const void *a, const void *b) +static int compare_date_received (const void *a, const void *b) { HEADER **pa = (HEADER **) a; HEADER **pb = (HEADER **) b; int result = (*pa)->received - (*pb)->received; AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } -int compare_order (const void *a, const void *b) +static int compare_order (const void *a, const void *b) { HEADER **ha = (HEADER **) a; HEADER **hb = (HEADER **) b; - -#ifdef USE_NNTP - if ((*ha)->article_num && (*hb)->article_num) { - int result = (*ha)->article_num - (*hb)->article_num; - - AUXSORT (result, a, b); - return (SORTCODE (result)); - } - else -#endif - /* no need to auxsort because you will never have equality here */ - return (SORTCODE ((*ha)->index - (*hb)->index)); + /* no need to auxsort because you will never have equality here */ + return SORTCODE ((*ha)->index - (*hb)->index); } -int compare_spam (const void *a, const void *b) +static int compare_spam (const void *a, const void *b) { HEADER **ppa = (HEADER **) a; HEADER **ppb = (HEADER **) b; @@ -179,14 +172,14 @@ int compare_spam (const void *a, const void *b) /* If one msg has spam attr but other does not, sort the one with first. */ if (ahas && !bhas) - return (SORTCODE (1)); + return SORTCODE (1); if (!ahas && bhas) - return (SORTCODE (-1)); + return SORTCODE (-1); /* Else, if neither has a spam attr, presume equality. Fall back on aux. */ if (!ahas && !bhas) { AUXSORT (result, a, b); - return (SORTCODE (result)); + return SORTCODE (result); } @@ -199,7 +192,7 @@ int compare_spam (const void *a, const void *b) /* If either aptr or bptr is equal to data, there is no numeric */ /* value for that spam attribute. In this case, compare lexically. */ if ((aptr == (*ppa)->env->spam->data) || (bptr == (*ppb)->env->spam->data)) - return (SORTCODE (m_strcmp(aptr, bptr))); + return SORTCODE (m_strcmp(aptr, bptr)); /* Otherwise, we have numeric value for both attrs. If these values */ /* are equal, then we first fall back upon string comparison, then */ @@ -210,32 +203,32 @@ int compare_spam (const void *a, const void *b) AUXSORT (result, a, b); } - return (SORTCODE (result)); + return SORTCODE (result); } sort_t *mutt_get_sort_func (int method) { switch (method & SORT_MASK) { case SORT_RECEIVED: - return (compare_date_received); + return compare_date_received; case SORT_ORDER: - return (compare_order); + return compare_order; case SORT_DATE: - return (compare_date_sent); + return compare_date_sent; case SORT_SUBJECT: - return (compare_subject); + return compare_subject; case SORT_FROM: - return (compare_from); + return compare_from; case SORT_SIZE: - return (compare_size); + return compare_size; case SORT_TO: - return (compare_to); + return compare_to; case SORT_SCORE: - return (compare_score); + return compare_score; case SORT_SPAM: - return (compare_spam); + return compare_spam; default: - return (NULL); + return NULL; } /* not reached */ } @@ -265,7 +258,7 @@ void mutt_sort_headers (CONTEXT * ctx, int init) if (!ctx->quiet) mutt_message _("Sorting mailbox..."); - if (option (OPTNEEDRESCORE) && option (OPTSCORE)) { + if (option (OPTNEEDRESCORE) && mod_score.enable) { for (i = 0; i < ctx->msgcount; i++) mutt_score_message (ctx, ctx->hdrs[i], 1); }