X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sort.c;h=d97535ffe0de6cfad8d0a9d11f87cb1e2d3b70c3;hp=52f4dffe19db18b4fd468b3ac62e5cb7c4c95162;hb=dc726add2e8fe52be1f6859ea7cbe4651498eeb8;hpb=7f7a0be369840b290248e5b0302beb447fa1b3cd diff --git a/sort.c b/sort.c index 52f4dff..d97535f 100644 --- a/sort.c +++ b/sort.c @@ -7,24 +7,17 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include -#include -#include +#include #include "mutt.h" +#include "alias.h" #include "sort.h" #include "thread.h" +#include "score.h" #include "mutt_idna.h" - -#include -#include -#include -#include - #define SORTCODE(x) (Sort & SORT_REVERSE) ? -(x) : x /* function to use as discriminator when normal sort method is equal */ @@ -38,7 +31,7 @@ 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; @@ -48,7 +41,7 @@ int compare_score (const void *a, const void *b) 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; @@ -58,7 +51,7 @@ int compare_size (const void *a, const void *b) 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; @@ -68,7 +61,7 @@ int compare_date_sent (const void *a, const void *b) 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; @@ -83,18 +76,18 @@ int compare_subject (const void *a, const void *b) else if (!(*pb)->env->real_subj) rc = 1; else - rc = str_casecmp ((*pa)->env->real_subj, (*pb)->env->real_subj); + rc = m_strcasecmp((*pa)->env->real_subj, (*pb)->env->real_subj); AUXSORT (rc, a, b); return (SORTCODE (rc)); } -const char *mutt_get_name (ADDRESS * a) +const char *mutt_get_name (address_t * a) { - ADDRESS *ali; + const address_t *ali; const char *name = ""; if (a) { - if (option (OPTREVALIAS) && (ali = alias_reverse_lookup (a)) + if (option (OPTREVALIAS) && (ali = alias_reverse_lookup(a)) && ali->personal) name = ali->personal; else if (a->personal) @@ -106,7 +99,7 @@ const char *mutt_get_name (ADDRESS * 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; @@ -118,18 +111,15 @@ int compare_to (const void *a, const void *b) * On the next call that pointer may get smashed so we copy the return value * to our own memory space. */ - strncpy (fa, mutt_get_name ((*ppa)->env->to), sizeof (fa)); - fa[sizeof (fa) - 1] = '\0'; - - strncpy (fb, mutt_get_name ((*ppb)->env->to), sizeof (fb)); - fb[sizeof (fb) - 1] = '\0'; + m_strcpy(fa, sizeof(fa), mutt_get_name((*ppa)->env->to)); + m_strcpy(fb, sizeof(fb), mutt_get_name((*ppb)->env->to)); - result = str_casecmp (fa, fb); + result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); 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; @@ -141,18 +131,15 @@ int compare_from (const void *a, const void *b) * On the next call that pointer may get smashed so we copy the return value * to our own memory space. */ - strncpy (fa, mutt_get_name ((*ppa)->env->from), sizeof (fa)); - fa[sizeof (fa) - 1] = '\0'; + m_strcpy(fa, sizeof(fa), mutt_get_name((*ppa)->env->from)); + m_strcpy(fb, sizeof(fb), mutt_get_name((*ppb)->env->from)); - strncpy (fb, mutt_get_name ((*ppb)->env->from), sizeof (fb)); - fb[sizeof (fb) - 1] = '\0'; - - result = str_casecmp (fa, fb); + result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); 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; @@ -162,25 +149,15 @@ int compare_date_received (const void *a, const void *b) 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; @@ -215,13 +192,13 @@ 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 (str_cmp (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 */ /* upon auxiliary sort. */ if (result == 0) { - result = str_cmp (aptr, bptr); + result = m_strcmp(aptr, bptr); if (result == 0) AUXSORT (result, a, b); } @@ -281,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); }