]> granicus.if.org Git - neomutt/commitdiff
create enum SortType
authorRichard Russon <rich@flatcap.org>
Sun, 3 Mar 2019 20:38:48 +0000 (20:38 +0000)
committerRichard Russon <rich@flatcap.org>
Tue, 5 Mar 2019 01:28:47 +0000 (01:28 +0000)
12 files changed:
commands.c
commands.h
config/sort.h
imap/imap.c
maildir/shared.c
mbox/mbox.c
mutt_thread.c
nntp/newsrc.c
sidebar.c
sort.c
sort.h
status.c

index fd1238cc3aa03b8ea3aaae298db5efbd12421fc1..8472a9dfa67ddbd97866fafe416911bb44b2495d 100644 (file)
@@ -708,12 +708,12 @@ void mutt_print_message(struct Mailbox *m, struct EmailList *el)
 /**
  * mutt_select_sort - Ask the user for a sort method
  * @param reverse If true make it a reverse sort
- * @retval num Sort type, e.g. #SORT_DATE
+ * @retval num Sort type, see #SortType
  */
-int mutt_select_sort(int reverse)
+int mutt_select_sort(bool reverse)
 {
-  int method = C_Sort; /* save the current method in case of abort */
-  int new_sort = -1;
+  enum SortType method = C_Sort; /* save the current method in case of abort */
+  enum SortType new_sort = C_Sort;
 
   switch (mutt_multi_choice(reverse ?
                                 /* L10N: The highlighted letters must match the "Sort" options */
index 559ae84dd5ca104d95c1ca8158c05cb7f7ce1e9b..8d80d1a32ce0318150c0de99959959d35a947d2b 100644 (file)
@@ -54,7 +54,7 @@ void mutt_pipe_message(struct Mailbox *m, struct EmailList *el);
 void mutt_print_message(struct Mailbox *m, struct EmailList *el);
 int  mutt_save_message_ctx(struct Email *e, bool delete, bool decode, bool decrypt, struct Mailbox *m);
 int  mutt_save_message(struct Mailbox *m, struct EmailList *el, bool delete, bool decode, bool decrypt);
-int  mutt_select_sort(int reverse);
+int  mutt_select_sort(bool reverse);
 void mutt_shell_escape(void);
 
 #endif /* MUTT_COMMANDS_H */
index 293eb1b34e7245f26f6cc83c45f73036183920d2..6d98461e11e5f7225dca044361c13696df3d29d9 100644 (file)
@@ -42,27 +42,35 @@ extern const struct Mapping SortSidebarMethods[];
 #define DT_SORT_AUX     0x200 /**< Sort id for #SortAliasMethods */
 #define DT_SORT_SIDEBAR 0x400 /**< Sort id for #SortSidebarMethods */
 
-#define SORT_DATE      1 /**< Sort by the date the email was sent. */
-#define SORT_SIZE      2 /**< Sort by the size of the email */
-#define SORT_ALPHA     3 /**< Required by makedoc.c */
-#define SORT_SUBJECT   3 /**< Sort by the email's subject */
-#define SORT_FROM      4 /**< Sort by the email's From field */
-#define SORT_ORDER     5 /**< Sort by the order the messages appear in the mailbox */
-#define SORT_THREADS   6 /**< Sort by email threads */
-#define SORT_RECEIVED  7 /**< Sort by when the message were delivered locally */
-#define SORT_TO        8 /**< Sort by the email's To field */
-#define SORT_SCORE     9 /**< Sort by the email's score */
-#define SORT_ALIAS    10 /**< Sort by email alias */
-#define SORT_ADDRESS  11 /**< Sort by email address */
-#define SORT_KEYID    12 /**< Sort by the encryption key's ID */
-#define SORT_TRUST    13 /**< Sort by encryption key's trust level */
-#define SORT_SPAM     14 /**< Sort by the email's spam score */
-#define SORT_COUNT    15 /**< Sort by number of emails in a folder */
-#define SORT_UNREAD   16 /**< Sort by the number of unread emails */
-#define SORT_FLAGGED  17 /**< Sort by the number of flagged emails */
-#define SORT_PATH     18 /**< Sort by the folder's path */
-#define SORT_LABEL    19 /**< Sort by the emails label */
-#define SORT_DESC     20 /**< Sort by the folder's description */
+/**
+ * enum SortType - Methods for sorting
+ */
+enum SortType
+{
+  SORT_DATE     =  1, ///< Sort by the date the email was sent
+  SORT_SIZE     =  2, ///< Sort by the size of the email
+  SORT_ALPHA    =  3, ///< Required by makedoc.c
+  SORT_SUBJECT  =  3, ///< Sort by the email's subject
+  SORT_FROM     =  4, ///< Sort by the email's From field
+  SORT_ORDER    =  5, ///< Sort by the order the messages appear in the mailbox
+  SORT_THREADS  =  6, ///< Sort by email threads
+  SORT_RECEIVED =  7, ///< Sort by when the message were delivered locally
+  SORT_TO       =  8, ///< Sort by the email's To field
+  SORT_SCORE    =  9, ///< Sort by the email's score
+  SORT_ALIAS    = 10, ///< Sort by email alias
+  SORT_ADDRESS  = 11, ///< Sort by email address
+  SORT_KEYID    = 12, ///< Sort by the encryption key's ID
+  SORT_TRUST    = 13, ///< Sort by encryption key's trust level
+  SORT_SPAM     = 14, ///< Sort by the email's spam score
+  SORT_COUNT    = 15, ///< Sort by number of emails in a folder
+  SORT_UNREAD   = 16, ///< Sort by the number of unread emails
+  SORT_FLAGGED  = 17, ///< Sort by the number of flagged emails
+  SORT_PATH     = 18, ///< Sort by the folder's path
+  SORT_LABEL    = 19, ///< Sort by the emails label
+  SORT_DESC     = 20, ///< Sort by the folder's description
+
+  SORT_MAX,
+};
 
 /* C_Sort and C_SortAux are shorts, and are a composite of a constant sort
  * operation number and a set of compounded bitflags.
index 84c5a25ffd420679f6de9cdd7a8149063e703396..ae68994d9425daf1f970cfd3a88116cdaae60291 100644 (file)
@@ -178,7 +178,7 @@ static void set_flag(struct Mailbox *m, AclFlags aclflag, int flag,
  * @param[out] pos     Cursor used for multiple calls to this function
  * @retval num Messages in the set
  *
- * @note Headers must be in SORT_ORDER. See imap_exec_msgset() for args.
+ * @note Headers must be in #SORT_ORDER. See imap_exec_msgset() for args.
  * Pos is an opaque pointer a la strtok(). It should be 0 at first call.
  */
 static int make_msg_set(struct Mailbox *m, struct Buffer *buf, int flag,
index 0ceb09dab1d13a0ff870fe0feebcee7ec2f1488f..d66352e3ec86049396433ddf35d78953b7b54bf2 100644 (file)
@@ -1218,7 +1218,7 @@ void maildir_update_tables(struct Context *ctx, int *index_hint)
 
   if (C_Sort != SORT_ORDER)
   {
-    const short old_sort = C_Sort;
+    const enum SortType old_sort = C_Sort;
     C_Sort = SORT_ORDER;
     mutt_sort_headers(ctx, true);
     C_Sort = old_sort;
index d43163d66eec0748f0e6e6d8e36797de9ca333ad..af242b8b9ead91e210ecc6fa6408a81a14e360f7 100644 (file)
@@ -1132,7 +1132,8 @@ static int mbox_mbox_sync(struct Mailbox *m, int *index_hint)
 
   char tempfile[PATH_MAX];
   char buf[32];
-  int i, j, save_sort = SORT_ORDER;
+  int i, j;
+  enum SortType save_sort = SORT_ORDER;
   int rc = -1;
   int need_sort = 0; /* flag to resort mailbox if new mail arrives */
   int first = -1;    /* first message to be written */
index 85ff56ab40ee241df9476c0a428c19b032867ac0..996159f7c8c1a7c45767cc98833dee94435620c0 100644 (file)
@@ -639,7 +639,7 @@ static int compare_threads(const void *a, const void *b)
    */
   else
   {
-    sort_func = mutt_get_sort_func(C_Sort);
+    sort_func = mutt_get_sort_func(C_Sort & SORT_MASK);
     return sort_func ? 1 : 0;
   }
 }
index 0ef3f6338a12bad891b17fcf85aaa72448a237ec..37dfe07f3e801545f465eae5a71d4345f99715ad 100644 (file)
@@ -304,7 +304,7 @@ void nntp_newsrc_gen_entries(struct Mailbox *m)
   struct NntpMboxData *mdata = m->mdata;
   anum_t last = 0, first = 1;
   bool series;
-  int save_sort = SORT_ORDER;
+  enum SortType save_sort = SORT_ORDER;
   unsigned int entries;
 
   if (C_Sort != SORT_ORDER)
index 63cfbd5865593eb867f636a2f4c81f5f25f6f525..80c14c8f844e23e00bd735be24ec89424ec476ab 100644 (file)
--- a/sidebar.c
+++ b/sidebar.c
@@ -428,7 +428,7 @@ static void unsort_entries(void)
  */
 static void sort_entries(void)
 {
-  short ssm = (C_SidebarSortMethod & SORT_MASK);
+  enum SortType ssm = (C_SidebarSortMethod & SORT_MASK);
 
   /* These are the only sort methods we understand */
   if ((ssm == SORT_COUNT) || (ssm == SORT_UNREAD) || (ssm == SORT_FLAGGED) || (ssm == SORT_PATH))
diff --git a/sort.c b/sort.c
index bfaec559eabb6b414a6f81118ea9b34d274270b7..7b2782a3d66fa81b8d59cdbef7879b6b3a65c48c 100644 (file)
--- a/sort.c
+++ b/sort.c
@@ -314,12 +314,12 @@ static int compare_label(const void *a, const void *b)
 
 /**
  * mutt_get_sort_func - Get the sort function for a given sort id
- * @param method Sort id, e.g. #SORT_DATE
+ * @param method Sort type, see #SortType
  * @retval ptr sort function - Implements ::sort_t
  */
-sort_t *mutt_get_sort_func(int method)
+sort_t *mutt_get_sort_func(enum SortType method)
 {
-  switch (method & SORT_MASK)
+  switch (method)
   {
     case SORT_DATE:
       return compare_date_sent;
@@ -415,8 +415,8 @@ void mutt_sort_headers(struct Context *ctx, bool init)
     }
     mutt_sort_threads(ctx, init);
   }
-  else if (!(sortfunc = mutt_get_sort_func(C_Sort)) ||
-           !(AuxSort = mutt_get_sort_func(C_SortAux)))
+  else if (!(sortfunc = mutt_get_sort_func(C_Sort & SORT_MASK)) ||
+           !(AuxSort = mutt_get_sort_func(C_SortAux & SORT_MASK)))
   {
     mutt_error(_("Could not find sorting function [report this bug]"));
     return;
diff --git a/sort.h b/sort.h
index bb3e000b3643933a58fe3606ba20c1139ca48bf9..0bd8593d26e4decedfe9f99480d5f5968df9e85a 100644 (file)
--- a/sort.h
+++ b/sort.h
@@ -47,7 +47,7 @@ extern bool C_ReverseAlias;
  */
 typedef int sort_t(const void *a, const void *b);
 
-sort_t *mutt_get_sort_func(int method);
+sort_t *mutt_get_sort_func(enum SortType method);
 
 void mutt_sort_headers(struct Context *ctx, bool init);
 int perform_auxsort(int retval, const void *a, const void *b);
index 6568a4fa70af325d07d6e59e7eb6de5099bb4c69..318b88b41cc1ca04badbd569ecf210fe63c8b3de 100644 (file)
--- a/status.c
+++ b/status.c
@@ -48,10 +48,10 @@ struct MbTable *C_StatusChars; ///< Config: Indicator characters for the status
  * get_sort_str - Get the sort method as a string
  * @param buf    Buffer for the sort string
  * @param buflen Length of the buffer
- * @param method Sort method, e.g. #SORT_DATE
+ * @param method Sort method, see #SortType
  * @retval ptr Buffer pointer
  */
-static char *get_sort_str(char *buf, size_t buflen, int method)
+static char *get_sort_str(char *buf, size_t buflen, enum SortType method)
 {
   snprintf(buf, buflen, "%s%s%s", (method & SORT_REVERSE) ? "reverse-" : "",
            (method & SORT_LAST) ? "last-" : "",