24#ifndef MUTT_MUTT_LIST_H
25#define MUTT_MUTT_LIST_H
54bool mutt_list_equal (
const struct ListHead *ah,
const struct ListHead *bh);
void mutt_list_copy_tail(struct ListHead *dst, const struct ListHead *src)
Copy a list into another list.
struct ListNode * mutt_list_insert_tail(struct ListHead *h, char *s)
Append a string to the end of a List.
struct ListNode * mutt_list_find(const struct ListHead *h, const char *data)
Find a string in a List.
struct ListNode * mutt_list_insert_head(struct ListHead *h, char *s)
Insert a string at the beginning of a List.
size_t mutt_list_write(const struct ListHead *h, struct Buffer *buf)
Write a list to a buffer.
void mutt_list_clear(struct ListHead *h)
Free a list, but NOT its strings.
size_t mutt_list_str_split(struct ListHead *head, const char *src, char sep)
Split a string into a list using a separator char.
void(* list_free_t)(void **ptr)
bool mutt_list_equal(const struct ListHead *ah, const struct ListHead *bh)
Compare two string lists.
void mutt_list_free(struct ListHead *h)
Free a List AND its strings.
void mutt_list_free_type(struct ListHead *h, list_free_t fn)
Free a List of type.
bool mutt_list_match(const char *s, struct ListHead *h)
Is the string in the list (see notes)
struct ListNode * mutt_list_insert_after(struct ListHead *h, struct ListNode *n, char *s)
Insert a string after a given ListNode.
#define STAILQ_HEAD(name, type)
String manipulation buffer.
STAILQ_ENTRY(ListNode) entries
Linked list.