The NNTP patch is a joke, let's drop it altogether.
[apps/madmutt.git] / lib-lib / list.h
index 918eff8..4f54d32 100644 (file)
@@ -25,9 +25,6 @@
 #ifndef MUTT_LIB_LIB_LIST_H
 #define MUTT_LIB_LIB_LIST_H
 
-#include "mem.h"
-#include "str.h"
-
 #define DO_SLIST(type, prefix, dtor)                                         \
     static inline type *prefix##_list_pop(type **list) {                     \
         if (*list) {                                                         \
         list = prefix##_list_last(list);                                     \
         *list = item;                                                        \
         return list;                                                         \
+    }                                                                        \
+    static inline type *prefix##_list_rev(type *list) {                      \
+        type *l = NULL;                                                      \
+        while (list) {                                                       \
+            prefix##_list_push(&l, prefix##_list_pop(&list));                \
+        }                                                                    \
+        return l;                                                            \
     }                                                                        \
                                                                              \
     static inline type **prefix##_list_init(type **list) {                   \
@@ -82,7 +86,11 @@ DO_DELETE(string_list_t, string_item);
 DO_SLIST(string_list_t, string, string_item_delete);
 
 string_list_t *string_list_dup(const string_list_t *);
+int string_list_contains(const string_list_t *, const char *, const char *);
+void string_list_add(string_list_t **, const char *);
+void string_list_remove(string_list_t **l, const char *str);
 
+/* FIXME: b0rken API's, replace that at any cost */
 /* add an element to a list */
 string_list_t *mutt_add_list_n(string_list_t*, const void*, size_t len);
 static inline string_list_t *mutt_add_list(string_list_t *head, const char *data) {
@@ -90,6 +98,4 @@ static inline string_list_t *mutt_add_list(string_list_t *head, const char *data
     return mutt_add_list_n(head, data, len ? len + 1 : 0);
 }
 
-
-
 #endif /* MUTT_LIB_LIB_LIST_H */