22 #ifndef __EKG_DYNSTUFF_H
23 #define __EKG_DYNSTUFF_H
81 #ifndef EKG2_WIN32_NOFUNCTION
82 #define LIST_ADD_COMPARE(x, type) int x(const type data1, const type data2)
83 #define LIST_ADD_SORTED(list, data, comp) list_add_sorted(list, data, (void *) comp)
84 #define LIST_ADD_SORTED2(list, data, comp) list_add_sorted3((list_t *) (void *) list, (list_t) data, (void *) comp)
85 #define LIST_ADD_BEGINNING2(list, data) list_add_beginning3((list_t *) (void *) list, (list_t) data)
86 #define LIST_ADD2(list, data) list_add3((list_t *) (void *) list, (list_t) data)
88 #define LIST_COUNT2(list) list_count((list_t) list)
89 #define LIST_GET_NTH2(list, id) list_get_nth3((list_t) list, id)
90 #define LIST_RESORT(list, comp) list_resort(list, (void *) comp)
91 #define LIST_RESORT2(list, comp) list_resort3((list_t *) (void *) list, (void *) comp)
93 #define LIST_REMOVE(list, data, func) list_remove2(list, data, (void *) func)
94 #define LIST_REMOVE2(list, elem, func) list_remove3((list_t *) (void *) list, (list_t) elem, (void *) func)
95 #define LIST_UNLINK2(list, elem) list_unlink3((list_t *) (void *) list, (list_t) elem)
96 #define LIST_FREE_ITEM(x, type) void x(type data)
98 #define LIST_DESTROY(list, func) list_destroy2(list, (void *) func)
99 #define LIST_DESTROY2(list, func) list_destroy3((list_t) list, (void *) func)
105 void *
list_add3(list_t *list, list_t new_);
107 void *
list_add_sorted3(list_t *list, list_t new_,
int (*comparision)(
void *,
void *));
113 void list_resort(list_t *list,
int (*comparision)(
void *,
void *));
114 void list_resort3(list_t *list,
int (*comparision)(
void *,
void *));
116 int list_remove(list_t *list,
void *data,
int free_data);
117 int list_remove2(list_t *list,
void *data,
void (*func)(
void *));
118 void *
list_remove3(list_t *list, list_t elem,
void (*func)(list_t));
119 void *
list_remove3i(list_t *list, list_t elem,
void (*func)(list_t data));
156 void string_insert_n(string_t s,
int index,
const char *str,
int count);
162 char **
array_make(
const char *
string,
const char *sep,
int max,
int trim,
int quotes);
165 int array_add(
char ***array,
char *
string);
167 int array_contains(
char **array,
const char *
string,
int casesensitive);
175 const char *
cssfind(
const char *haystack,
const char *needle,
const char sep,
int caseinsensitive);
177 char *
escape(
const char *src);
201 #if !GLIB_CHECK_VERSION(2, 28, 0)