More things to the Mime package.
[apps/madmutt.git] / init.c
diff --git a/init.c b/init.c
index a897897..549ba24 100644 (file)
--- a/init.c
+++ b/init.c
@@ -519,40 +519,6 @@ int query_quadoption (int opt, const char *prompt)
   /* not reached */
 }
 
-static void add_to_list(string_list_t **list, const char *str)
-{
-    /* don't add a NULL or empty string to the list */
-    if (m_strisempty(str))
-        return;
-
-    /* check to make sure the item is not already on this list */
-    while (*list) {
-        if (!ascii_strcasecmp(str, (*list)->data))
-            return;
-        list = &(*list)->next;
-    }
-
-    *list = p_new(string_list_t, 1);
-    (*list)->data = m_strdup(str);
-}
-
-static void remove_from_list(string_list_t **l, const char *str)
-{
-    if (!m_strcmp("*", str)) {
-        string_list_wipe(l);  /* ``unCMD *'' means delete all current entries */
-        return;
-    }
-
-    while (*l) {
-        if (!ascii_strcasecmp(str, (*l)->data)) {
-            string_list_t *it = string_list_pop(l);
-            string_item_delete(&it);
-        } else {
-            l = &(*l)->next;
-        }
-    }
-}
-
 static int parse_unignore (BUFFER * buf, BUFFER * s,
                            unsigned long data __attribute__ ((unused)),
                            BUFFER * err __attribute__ ((unused)))
@@ -561,10 +527,12 @@ static int parse_unignore (BUFFER * buf, BUFFER * s,
     mutt_extract_token (buf, s, 0);
 
     /* don't add "*" to the unignore list */
-    if (m_strcmp (buf->data, "*"))
-      add_to_list (&UnIgnore, buf->data);
-
-    remove_from_list (&Ignore, buf->data);
+    if (m_strcmp(buf->data, "*")) {
+      string_list_add(&UnIgnore, buf->data);
+      string_list_remove(&Ignore, buf->data);
+    } else {
+      string_list_wipe(&Ignore);
+    }
   } while (MoreArgs (s));
 
   return 0;
@@ -576,8 +544,12 @@ static int parse_ignore (BUFFER * buf, BUFFER * s,
 {
   do {
     mutt_extract_token (buf, s, 0);
-    remove_from_list (&UnIgnore, buf->data);
-    add_to_list (&Ignore, buf->data);
+    if (m_strcmp(buf->data, "*")) {
+      string_list_remove(&UnIgnore, buf->data);
+    } else {
+      string_list_wipe(&UnIgnore);
+    }
+    string_list_add(&Ignore, buf->data);
   } while (MoreArgs(s));
   return 0;
 }
@@ -587,7 +559,7 @@ static int parse_list(BUFFER * buf, BUFFER * s, unsigned long data,
 {
   do {
     mutt_extract_token (buf, s, 0);
-    add_to_list ((string_list_t **) data, buf->data);
+    string_list_add ((string_list_t **) data, buf->data);
   } while (MoreArgs(s));
   return 0;
 }
@@ -600,11 +572,11 @@ static int parse_unlist (BUFFER * buf, BUFFER * s, unsigned long data,
     /*
      * Check for deletion of entire list
      */
-    if (m_strcmp(buf->data, "*") == 0) {
+    if (!m_strcmp(buf->data, "*")) {
       string_list_wipe((string_list_t **) data);
       break;
     }
-    remove_from_list ((string_list_t **) data, buf->data);
+    string_list_remove((string_list_t **) data, buf->data);
   }
   while (MoreArgs (s));
 
@@ -713,7 +685,7 @@ static int parse_unattach_list (BUFFER *buf, BUFFER *s, string_list_t **ldata,
     }
     major = mutt_check_mime_type(tmp);
 
-    /* We must do our own walk here because remove_from_list() will only
+    /* We must do our own walk here because string_list_remove() will only
      * remove the string_list_t->data, not anything pointed to by the string_list_t->data. */
     lastp = NULL;
     for(lp = *ldata; lp; ) {