24#ifndef __M_LLIST_STR_H__
25#define __M_LLIST_STR_H__
29#include <mstdlib/base/m_defs.h>
30#include <mstdlib/base/m_types.h>
31#include <mstdlib/base/m_sort.h>
65struct M_llist_str_node;
void M_llist_str_set_first(M_llist_str_node_t *n)
M_llist_str_node_t * M_llist_str_insert_first(M_llist_str_t *d, const char *val)
M_llist_str_node_t * M_llist_str_insert_after(M_llist_str_node_t *n, const char *val)
struct M_llist_str_node M_llist_str_node_t
Definition: m_llist_str.h:69
char * M_llist_str_take_node(M_llist_str_node_t *n)
void M_llist_str_merge(M_llist_str_t **dest, M_llist_str_t *src, M_bool include_duplicates) M_FREE(2)
M_llist_str_t * M_llist_str_duplicate(const M_llist_str_t *d) M_MALLOC
size_t M_llist_str_remove_val(M_llist_str_t *d, const char *val, M_uint32 type)
M_bool M_llist_str_move_after(M_llist_str_node_t *move, M_llist_str_node_t *after)
size_t M_llist_str_count(const M_llist_str_t *d, const char *val, M_uint32 type)
const char * M_llist_str_node_val(const M_llist_str_node_t *n)
M_bool M_llist_str_change_sorting(M_llist_str_t *d, M_sort_compar_t equality_cb, void *equality_thunk)
M_llist_str_flags_t
Definition: m_llist_str.h:73
M_bool M_llist_str_remove_node(M_llist_str_node_t *n)
void M_llist_str_remove_duplicates(M_llist_str_t *d)
M_llist_str_node_t * M_llist_str_insert(M_llist_str_t *d, const char *val)
M_llist_str_node_t * M_llist_str_insert_before(M_llist_str_node_t *n, const char *val)
M_llist_str_node_t * M_llist_str_last(const M_llist_str_t *d)
struct M_llist_str M_llist_str_t
Definition: m_llist_str.h:63
M_llist_str_node_t * M_llist_str_first(const M_llist_str_t *d)
M_llist_str_t * M_llist_str_create(M_uint32 flags) M_MALLOC
M_llist_str_node_t * M_llist_str_find(const M_llist_str_t *d, const char *val, M_uint32 type)
M_llist_str_node_t * M_llist_str_node_next(const M_llist_str_node_t *n)
M_llist_str_match_type_t
Definition: m_llist_str.h:83
M_llist_str_node_t * M_llist_str_node_prev(const M_llist_str_node_t *n)
size_t M_llist_str_len(const M_llist_str_t *d)
M_bool M_llist_str_move_before(M_llist_str_node_t *move, M_llist_str_node_t *before)
void M_llist_str_destroy(M_llist_str_t *d) M_FREE(1)
@ M_LLIST_STR_CASECMP
Definition: m_llist_str.h:77
@ M_LLIST_STR_NONE
Definition: m_llist_str.h:74
@ M_LLIST_STR_SORTDESC
Definition: m_llist_str.h:76
@ M_LLIST_STR_CIRCULAR
Definition: m_llist_str.h:78
@ M_LLIST_STR_SORTASC
Definition: m_llist_str.h:75
@ M_LLIST_STR_MATCH_ALL
Definition: m_llist_str.h:86
@ M_LLIST_STR_MATCH_PTR
Definition: m_llist_str.h:85
@ M_LLIST_STR_MATCH_VAL
Definition: m_llist_str.h:84
int(* M_sort_compar_t)(const void *arg1, const void *arg2, void *thunk)
Definition: m_sort.h:78