X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sort.c;h=2b700011d6483b3e6754461a4336a8896206d9dc;hp=79fac85e740f97c528368dcb08f56f784981e724;hb=230399f9632c37b66c1c117a17e8327eae6b3235;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/sort.c b/sort.c index 79fac85..2b70001 100644 --- a/sort.c +++ b/sort.c @@ -1,34 +1,29 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1996-2000 Michael R. Elkins - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * + * This file is part of mutt-ng, see http://www.muttng.org/. + * It's licensed under the GNU General Public License, + * please see the file GPL in the top level source directory. */ #if HAVE_CONFIG_H # include "config.h" #endif -#include "mutt.h" -#include "sort.h" -#include "mutt_idna.h" - #include #include #include #include +#include + +#include "mutt.h" +#include "alias.h" +#include "sort.h" +#include "thread.h" +#include "mutt_idna.h" + #define SORTCODE(x) (Sort & SORT_REVERSE) ? -(x) : x /* function to use as discriminator when normal sort method is equal */ @@ -87,18 +82,18 @@ int compare_subject (const void *a, const void *b) else if (!(*pb)->env->real_subj) rc = 1; else - rc = mutt_strcasecmp ((*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) @@ -122,13 +117,10 @@ 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'; + m_strcpy(fa, sizeof(fa), mutt_get_name((*ppa)->env->to)); + m_strcpy(fb, sizeof(fb), mutt_get_name((*ppb)->env->to)); - strncpy (fb, mutt_get_name ((*ppb)->env->to), sizeof (fb)); - fb[sizeof (fb) - 1] = '\0'; - - result = mutt_strcasecmp (fa, fb); + result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); return (SORTCODE (result)); } @@ -145,13 +137,10 @@ 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'; - - strncpy (fb, mutt_get_name ((*ppb)->env->from), sizeof (fb)); - fb[sizeof (fb) - 1] = '\0'; + m_strcpy(fa, sizeof(fa), mutt_get_name((*ppa)->env->from)); + m_strcpy(fb, sizeof(fb), mutt_get_name((*ppb)->env->from)); - result = mutt_strcasecmp (fa, fb); + result = m_strcasecmp(fa, fb); AUXSORT (result, a, b); return (SORTCODE (result)); } @@ -219,13 +208,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 (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 */ /* upon auxiliary sort. */ if (result == 0) { - result = strcmp (aptr, bptr); + result = m_strcmp(aptr, bptr); if (result == 0) AUXSORT (result, a, b); }