* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <unistd.h>
-
#include <lib-lib/lib-lib.h>
+#include <lib-ui/lib-ui.h>
+
#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
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;
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)
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;
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;
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;
/* 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);
}
/* 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 */
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 */
}
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);
}