aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wiretap/glib-new.c13
-rw-r--r--wiretap/glib-new.h4
2 files changed, 17 insertions, 0 deletions
diff --git a/wiretap/glib-new.c b/wiretap/glib-new.c
index 5b88f1d8da..d8f6ee6d1c 100644
--- a/wiretap/glib-new.c
+++ b/wiretap/glib-new.c
@@ -89,4 +89,17 @@ g_strjoin (const gchar *separator,
return string;
}
+
+/* this was introduced sometime between glib-1.0.1 and glib-1.0.4 */
+gpointer
+g_slist_nth_data (GSList *list,
+ guint n)
+{
+ while ((n-- > 0) && list)
+ list = list->next;
+
+ return list ? list->data : NULL;
+}
+
+
#endif
diff --git a/wiretap/glib-new.h b/wiretap/glib-new.h
index f6ddb14088..562efdbbb2 100644
--- a/wiretap/glib-new.h
+++ b/wiretap/glib-new.h
@@ -24,3 +24,7 @@ g_memdup (const gpointer mem,
gchar*
g_strjoin (const gchar *separator,
...);
+
+gpointer
+g_slist_nth_data (GSList *list,
+ guint n);