Mon, 11 Nov 2019 21:31:35 -0600
Add implementations for g_hash_table_contains and g_queue_free_full when compiling against glib < 2.32.0
--- a/libpurple/Makefile.am Mon Nov 11 02:14:55 2019 -0600 +++ b/libpurple/Makefile.am Mon Nov 11 21:31:35 2019 -0600 @@ -47,6 +47,7 @@ desktopitem.c \ eventloop.c \ ft.c \ + glibcompat.c \ idle.c \ imgstore.c \ log.c \
--- a/libpurple/Makefile.mingw Mon Nov 11 02:14:55 2019 -0600 +++ b/libpurple/Makefile.mingw Mon Nov 11 21:31:35 2019 -0600 @@ -64,6 +64,7 @@ dnssrv.c \ eventloop.c \ ft.c \ + glibcompat.c \ idle.c \ imgstore.c \ log.c \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/glibcompat.c Mon Nov 11 21:31:35 2019 -0600 @@ -0,0 +1,43 @@ +/* purple + * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#include "glibcompat.h" + +#if !GLIB_CHECK_VERSION(2,32,0) + +gboolean +g_hash_table_contains(GHashTable *hash_table, gconstpointer key) { + return g_hash_table_lookup_extended(hash_table, key, NULL, NULL); +} + +void +g_queue_free_full(GQueue *queue, GDestroyNotify free_func) { + GList *l = NULL; + + for(l = queue->head; l != NULL; l = l->next) { + free_func(l->data); + } + + g_queue_free(queue); +} + +#endif /* !GLIB_CHECK_VERSION(2,32,0) */ +
--- a/libpurple/glibcompat.h Mon Nov 11 02:14:55 2019 -0600 +++ b/libpurple/glibcompat.h Mon Nov 11 21:31:35 2019 -0600 @@ -32,6 +32,11 @@ #if !GLIB_CHECK_VERSION(2,32,0) # define G_GNUC_BEGIN_IGNORE_DEPRECATIONS # define G_GNUC_END_IGNORE_DEPRECATIONS + +void g_queue_free_full(GQueue *queue, GDestroyNotify free_func); + +gboolean g_hash_table_contains (GHashTable *hash_table, gconstpointer key); + #endif /* !GLIB_CHECK_VERSION(2,32,0) */ #ifdef __clang__