]> granicus.if.org Git - neomutt/commitdiff
Make the heap method and datatype a plain list 380/head
authorGuyzmo <guyzmo+github+pub@m0g.net>
Wed, 8 Feb 2017 18:41:00 +0000 (19:41 +0100)
committerGuillaume Brogi <gui-gui@netcourrier.com>
Thu, 9 Feb 2017 18:14:23 +0000 (19:14 +0100)
Instead of a useless typedef, making all the stack operations work on
plain LIST types.

N.B.: I used *heap* when I really meant *stack*.

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
init.c
mutt.h
muttlib.c

diff --git a/init.c b/init.c
index c591c93b8f82d3b7d80a4aed60381f24b2622d90..303a966639372e63291c87ac2c5dfea946174c66 100644 (file)
--- a/init.c
+++ b/init.c
@@ -2607,10 +2607,10 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
   return (r);
 }
 
-/* Heap structure
+/* Stack structure
  * FILO designed to contain the list of config files that have been sourced
  * and avoid cyclic sourcing */
-static HEAP *MuttrcHeap;
+static LIST *MuttrcStack;
 
 /* Use POSIX functions to convert a path to absolute, relatively to another path
  * Args:
@@ -2676,15 +2676,15 @@ static int source_rc (const char *rcfile_path, BUFFER *err)
 
   if (rcfile[rcfilelen-1] != '|')
   {
-      if (!to_absolute_path(rcfile, mutt_front_heap(MuttrcHeap)))
+      if (!to_absolute_path(rcfile, mutt_front_list(MuttrcStack)))
       {
         mutt_error("Error: impossible to build path of '%s'.", rcfile_path);
         return (-1);
       }
 
-      if (!MuttrcHeap || mutt_find_heap(MuttrcHeap, rcfile) == NULL)
+      if (!MuttrcStack || mutt_find_list(MuttrcStack, rcfile) == NULL)
       {
-        mutt_push_heap(&MuttrcHeap, rcfile);
+        mutt_push_list(&MuttrcStack, rcfile);
       }
       else
       {
@@ -2744,7 +2744,7 @@ static int source_rc (const char *rcfile_path, BUFFER *err)
     rc = -1;
   }
 
-  mutt_pop_heap(&MuttrcHeap);
+  mutt_pop_list(&MuttrcStack);
 
   return (rc);
 }
diff --git a/mutt.h b/mutt.h
index 92f3aa422562849087f9fa570f3bbcebc4b14ba0..8b2958ecd2618c64e449777602b3f5516cf40227 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -640,8 +640,6 @@ typedef struct list_t
   struct list_t *next;
 } LIST;
 
-typedef struct list_t HEAP;
-
 typedef struct rx_list_t
 {
   REGEXP *rx;
@@ -661,11 +659,6 @@ inline LIST *mutt_new_list()
   return safe_calloc (1, sizeof (LIST));
 }
 
-inline HEAP *mutt_new_heap()
-{
-  return safe_calloc (1, sizeof (HEAP));
-}
-
 inline RX_LIST *mutt_new_rx_list()
 {
   return safe_calloc (1, sizeof (RX_LIST));
@@ -689,11 +682,10 @@ LIST *mutt_add_list_n (LIST*, const void *, size_t);
 LIST *mutt_find_list (LIST *, const char *);
 int mutt_remove_from_rx_list (RX_LIST **l, const char *str);
 
-/* handle heap */
-void mutt_push_heap(HEAP **head, const char *data);
-int mutt_pop_heap(HEAP **head);
-const char *mutt_front_heap(HEAP *head);
-HEAP *mutt_find_heap(HEAP *head, const char *data);
+/* handle stack */
+void mutt_push_list(LIST **head, const char *data);
+int mutt_pop_list(LIST **head);
+const char *mutt_front_list(LIST *head);
 
 void mutt_init (int, LIST *);
 
index ce94e7bfe10d7f66aff1707a13d5fd01c0056646..8b315ac502646a4f0f8549f62b57832a6da3bd51 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -57,7 +57,6 @@
  * External definitions for inline functions in mutt.h
  */
 extern LIST *mutt_new_list();
-extern HEAP *mutt_new_heap();
 extern RX_LIST *mutt_new_rx_list();
 extern SPAM_LIST *mutt_new_spam_list();
 extern PARAMETER *mutt_new_parameter();
@@ -295,18 +294,18 @@ LIST *mutt_find_list (LIST *l, const char *data)
   return NULL;
 }
 
-void mutt_push_heap(HEAP **head, const char *data)
+void mutt_push_list(LIST **head, const char *data)
 {
-  HEAP *tmp;
-  tmp = safe_malloc(sizeof(HEAP));
+  LIST *tmp;
+  tmp = safe_malloc(sizeof(LIST));
   tmp->data = safe_strdup(data);
   tmp->next = *head;
   *head = tmp;
 }
 
-int mutt_pop_heap(HEAP **head)
+int mutt_pop_list(LIST **head)
 {
-  HEAP *elt = *head;
+  LIST *elt = *head;
   if (!elt)
     return 0;
   *head = elt->next;
@@ -315,18 +314,13 @@ int mutt_pop_heap(HEAP **head)
   return 1;
 }
 
-const char *mutt_front_heap(HEAP *head)
+const char *mutt_front_list(LIST *head)
 {
   if (!head || !head->data)
     return "";
   return head->data;
 }
 
-HEAP *mutt_find_heap(HEAP *head, const char *data)
-{
-  return (HEAP *) mutt_find_list((LIST *) head, data);
-}
-
 int mutt_remove_from_rx_list (RX_LIST **l, const char *str)
 {
   RX_LIST *p, *last = NULL;