From 70a6dbff8767b9a836e6d62411d5d4450cc884fc Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Mon, 23 Nov 1998 01:52:07 +0000 Subject: [PATCH] new function g_slist_copy() to duplicate a list with all its data Sun Nov 22 17:07:03 1998 Tim Janik * glib.h: * gslist.c: new function g_slist_copy() to duplicate a list with all its data pointers. * glist.c: new function g_list_copy. --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-0 | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-12 | 8 ++++++++ ChangeLog.pre-2-2 | 8 ++++++++ ChangeLog.pre-2-4 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ glib.h | 2 ++ glib/glib.h | 2 ++ glib/glist.c | 26 ++++++++++++++++++++++++++ glib/gslist.c | 25 +++++++++++++++++++++++++ glist.c | 26 ++++++++++++++++++++++++++ gslist.c | 25 +++++++++++++++++++++++++ 14 files changed, 170 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9d97aba..6fbd262 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9d97aba..6fbd262 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Sun Nov 22 17:07:03 1998 Tim Janik + + * glib.h: + * gslist.c: new function g_slist_copy() to duplicate a list with all its + data pointers. + * glist.c: new function g_list_copy. + Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * INSTALL: @@ -9,6 +16,7 @@ Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson * Released GLib 1.1.5 Wed Nov 18 1998 Elliot Lee + * gdataset.c: There was a code path into g_data_set_internal through a function (g_datalist_id_set_full). Neither function checked for g_dataset_init having been run, but diff --git a/glib.h b/glib.h index 1b66572..551c2eb 100644 --- a/glib.h +++ b/glib.h @@ -885,6 +885,7 @@ GList* g_list_remove (GList *list, GList* g_list_remove_link (GList *list, GList *llink); GList* g_list_reverse (GList *list); +GList* g_list_copy (GList *list); GList* g_list_nth (GList *list, guint n); GList* g_list_find (GList *list, @@ -932,6 +933,7 @@ GSList* g_slist_remove (GSList *list, GSList* g_slist_remove_link (GSList *list, GSList *llink); GSList* g_slist_reverse (GSList *list); +GSList* g_slist_copy (GSList *list); GSList* g_slist_nth (GSList *list, guint n); GSList* g_slist_find (GSList *list, diff --git a/glib/glib.h b/glib/glib.h index 1b66572..551c2eb 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -885,6 +885,7 @@ GList* g_list_remove (GList *list, GList* g_list_remove_link (GList *list, GList *llink); GList* g_list_reverse (GList *list); +GList* g_list_copy (GList *list); GList* g_list_nth (GList *list, guint n); GList* g_list_find (GList *list, @@ -932,6 +933,7 @@ GSList* g_slist_remove (GSList *list, GSList* g_slist_remove_link (GSList *list, GSList *llink); GSList* g_slist_reverse (GSList *list); +GSList* g_slist_copy (GSList *list); GSList* g_slist_nth (GSList *list, guint n); GSList* g_slist_find (GSList *list, diff --git a/glib/glist.c b/glib/glist.c index eaa77d8..ee9ad69 100644 --- a/glib/glist.c +++ b/glib/glist.c @@ -274,6 +274,32 @@ g_list_remove_link (GList *list, } GList* +g_list_copy (GList *list) +{ + GList *new_list = NULL; + + if (list) + { + GList *last; + + new_list = g_list_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = g_list_alloc (); + last->next->prev = last; + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GList* g_list_reverse (GList *list) { GList *last; diff --git a/glib/gslist.c b/glib/gslist.c index e952900..6a76d22 100644 --- a/glib/gslist.c +++ b/glib/gslist.c @@ -256,6 +256,31 @@ g_slist_remove_link (GSList *list, } GSList* +g_slist_copy (GSList *list) +{ + GSList *new_list = NULL; + + if (list) + { + GSList *last; + + new_list = g_slist_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = g_slist_alloc (); + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GSList* g_slist_reverse (GSList *list) { GSList *tmp; diff --git a/glist.c b/glist.c index eaa77d8..ee9ad69 100644 --- a/glist.c +++ b/glist.c @@ -274,6 +274,32 @@ g_list_remove_link (GList *list, } GList* +g_list_copy (GList *list) +{ + GList *new_list = NULL; + + if (list) + { + GList *last; + + new_list = g_list_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = g_list_alloc (); + last->next->prev = last; + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GList* g_list_reverse (GList *list) { GList *last; diff --git a/gslist.c b/gslist.c index e952900..6a76d22 100644 --- a/gslist.c +++ b/gslist.c @@ -256,6 +256,31 @@ g_slist_remove_link (GSList *list, } GSList* +g_slist_copy (GSList *list) +{ + GSList *new_list = NULL; + + if (list) + { + GSList *last; + + new_list = g_slist_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = g_slist_alloc (); + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GSList* g_slist_reverse (GSList *list) { GSList *tmp; -- 2.7.4