diff options
author | Alexander Færøy <ahf@0x90.dk> | 2015-08-24 22:22:01 +0200 |
---|---|---|
committer | Alexander Færøy <ahf@0x90.dk> | 2015-08-24 22:22:01 +0200 |
commit | d2c9f309775b0263937c0e0c8a9b15496d46135a (patch) | |
tree | 7f6f2c0bfa21c3bf6604582552f4c36790f892d0 /src/core | |
parent | 14c7c0484c79ac42df2b17241e584c0c30c3b4ef (diff) | |
parent | b0e7c183764e696b1e1a79c51651bc6573257bf8 (diff) | |
download | irssi-d2c9f309775b0263937c0e0c8a9b15496d46135a.zip |
Merge pull request #222 from LemonBoy/cap-support
[RFC] CAP support
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/misc.c | 24 | ||||
-rw-r--r-- | src/core/misc.h | 3 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/core/misc.c b/src/core/misc.c index ef8501d5..395e47ad 100644 --- a/src/core/misc.c +++ b/src/core/misc.c @@ -211,6 +211,30 @@ void *gslist_foreach_find(GSList *list, FOREACH_FIND_FUNC func, const void *data return NULL; } +void gslist_free_full (GSList *list, GDestroyNotify free_func) +{ + GSList *tmp; + + if (!list) + return; + + for (tmp = list; tmp != NULL; tmp = tmp->next) + free_func(tmp->data); + + g_slist_free(list); +} + +GSList *gslist_remove_string (GSList *list, const char *str) +{ + GSList *l; + + l = g_slist_find_custom(list, str, (GCompareFunc) g_strcmp0); + if (l != NULL) + return g_slist_remove_link(list, l); + + return list; +} + /* `list' contains pointer to structure with a char* to string. */ char *gslistptr_to_string(GSList *list, int offset, const char *delimiter) { diff --git a/src/core/misc.h b/src/core/misc.h index c6369489..7e78d3b9 100644 --- a/src/core/misc.h +++ b/src/core/misc.h @@ -21,6 +21,9 @@ GSList *gslist_find_string(GSList *list, const char *key); GSList *gslist_find_icase_string(GSList *list, const char *key); GList *glist_find_string(GList *list, const char *key); GList *glist_find_icase_string(GList *list, const char *key); +GSList *gslist_remove_string (GSList *list, const char *str); + +void gslist_free_full (GSList *list, GDestroyNotify free_func); void *gslist_foreach_find(GSList *list, FOREACH_FIND_FUNC func, const void *data); |