Reduce GLib requirement

This commit is contained in:
Berke Viktor 2013-05-12 06:16:26 +02:00
parent 171dbcdedf
commit 9327a5c71f
3 changed files with 37 additions and 2 deletions

View File

@ -184,7 +184,7 @@ dnl *********************************************************************
dnl ** GLIB *************************************************************
dnl *********************************************************************
AM_PATH_GLIB_2_0(2.34.0, glib=yes, glib=no)
AM_PATH_GLIB_2_0(2.28.0, glib=yes, glib=no)
if test "$glib" = no; then
AC_MSG_ERROR(Cannot find GLib!)
fi

View File

@ -22,7 +22,7 @@ in general. HexChat runs on most BSD and POSIX compliant operating systems.
## Requirements:
* GTK+ 2.24
* GLib 2.34
* GLib 2.28
HexChat is known to work on, at least:

View File

@ -581,6 +581,41 @@ static const struct defaultserver def[] =
GSList *network_list = 0;
#if !GLIB_CHECK_VERSION(2,34,0)
#define g_slist_copy_deep servlist_slist_copy_deep
/* FIXME copy-paste from gslist.c, should be dumped sometime */
static GSList*
servlist_slist_copy_deep (GSList *list, GCopyFunc func, gpointer user_data)
{
GSList *new_list = NULL;
if (list)
{
GSList *last;
new_list = g_slice_new (GSList);
if (func)
new_list->data = func (list->data, user_data);
else
new_list->data = list->data;
last = new_list;
list = list->next;
while (list)
{
last->next = g_slice_new (GSList);
last = last->next;
if (func)
last->data = func (list->data, user_data);
else
last->data = list->data;
list = list->next;
}
last->next = NULL;
}
return new_list;
}
#endif
void
servlist_connect (session *sess, ircnet *net, gboolean join)