summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorGnome CVS User <gnomecvs@src.gnome.org>1997-11-26 01:52:50 +0000
committerGnome CVS User <gnomecvs@src.gnome.org>1997-11-26 01:52:50 +0000
commitaedb8717f13d126b7bf9c8a4db028579d564156a (patch)
tree728b3b43af425a14ae33af4325a078888cdf632d /glib
parent33b94315803c6a7c9fe3826f0d4b11a26392137a (diff)
downloadgdk-pixbuf-aedb8717f13d126b7bf9c8a4db028579d564156a.tar.gz
Moved list concatenation code from gtkmain.c into its proper
place in glib/glist.c, added corresponding g_slist_concat.
Diffstat (limited to 'glib')
-rw-r--r--glib/glib.h4
-rw-r--r--glib/glist.c18
-rw-r--r--glib/gslist.c14
3 files changed, 36 insertions, 0 deletions
diff --git a/glib/glib.h b/glib/glib.h
index 9af5fa1bb..68496c70f 100644
--- a/glib/glib.h
+++ b/glib/glib.h
@@ -367,6 +367,8 @@ GList* g_list_prepend (GList *list,
GList* g_list_insert (GList *list,
gpointer data,
gint position);
+GList* g_list_concat (GList *list1,
+ GList *list2);
GList* g_list_remove (GList *list,
gpointer data);
GList* g_list_remove_link (GList *list,
@@ -396,6 +398,8 @@ GSList* g_slist_prepend (GSList *list,
GSList* g_slist_insert (GSList *list,
gpointer data,
gint position);
+GSList* g_slist_concat (GSList *list1,
+ GSList *list2);
GSList* g_slist_remove (GSList *list,
gpointer data);
GSList* g_slist_remove_link (GSList *list,
diff --git a/glib/glist.c b/glib/glist.c
index f5a31d743..833ee9e5d 100644
--- a/glib/glist.c
+++ b/glib/glist.c
@@ -202,6 +202,24 @@ g_list_insert (GList *list,
return list;
}
+GList *
+g_list_concat (GList *list1, GList *list2)
+{
+ GList *tmp_list;
+
+ if (list2)
+ {
+ tmp_list = g_list_last (list1);
+ if (tmp_list)
+ tmp_list->next = list2;
+ else
+ list1 = list2;
+ list2->prev = tmp_list;
+ }
+
+ return list1;
+}
+
GList*
g_list_remove (GList *list,
gpointer data)
diff --git a/glib/gslist.c b/glib/gslist.c
index e09198522..a0782673e 100644
--- a/glib/gslist.c
+++ b/glib/gslist.c
@@ -174,6 +174,20 @@ g_slist_insert (GSList *list,
return list;
}
+GSList *
+g_slist_concat (GSList *list1, GSList *list2)
+{
+ if (list2)
+ {
+ if (list1)
+ g_slist_last (list1)->next = list2;
+ else
+ list1 = list2;
+ }
+
+ return list1;
+}
+
GSList*
g_slist_remove (GSList *list,
gpointer data)