diff options
author | Gnome CVS User <gnomecvs@src.gnome.org> | 1997-11-26 01:52:50 +0000 |
---|---|---|
committer | Gnome CVS User <gnomecvs@src.gnome.org> | 1997-11-26 01:52:50 +0000 |
commit | aedb8717f13d126b7bf9c8a4db028579d564156a (patch) | |
tree | 728b3b43af425a14ae33af4325a078888cdf632d /glib | |
parent | 33b94315803c6a7c9fe3826f0d4b11a26392137a (diff) | |
download | gtk+-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.h | 4 | ||||
-rw-r--r-- | glib/glist.c | 18 | ||||
-rw-r--r-- | glib/gslist.c | 14 |
3 files changed, 36 insertions, 0 deletions
diff --git a/glib/glib.h b/glib/glib.h index 9af5fa1bbc..68496c70fa 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 f5a31d7439..833ee9e5d2 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 e09198522e..a0782673eb 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) |