X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/ed90ea49e025e0c8083f9d98768d870e6a880f13..e81de14faf3f9bd59e357eb2a9f5ff48cc3df00c:/ll.c?ds=sidebyside

diff --git a/ll.c b/ll.c
index 83a5b37..f59d73a 100644
--- a/ll.c
+++ b/ll.c
@@ -1,5 +1,6 @@
 // L2TPNS Linked List Stuff
-// $Id: ll.c,v 1.3 2004/06/23 03:52:24 fred_nerk Exp $
+
+char const *cvs_id_ll = "$Id: ll.c,v 1.6 2004/11/18 08:12:55 bodea Exp $";
 
 #include <stdio.h>
 #include <sys/file.h>
@@ -15,127 +16,126 @@
 
 linked_list *ll_init()
 {
-    return (linked_list *)calloc(sizeof(linked_list), 1);
+	return (linked_list *)calloc(sizeof(linked_list), 1);
 }
 
 void ll_done(linked_list *l)
 {
-    li *i = l->head, *n;
+	li *i = l->head, *n;
 
-    while (i)
-    {
-	n = i->next;
-	free(i);
-	i = n;
-    }
+	while (i)
+	{
+		n = i->next;
+		free(i);
+		i = n;
+	}
 
-    free(l);
+	free(l);
 }
 
 li *ll_push(linked_list *l, void *data)
 {
-    li *i;
+	li *i;
 
-    if (!l) return NULL;
-    if (!(i = (li *)calloc(sizeof(li), 1))) return NULL;
+	if (!l) return NULL;
+	if (!(i = (li *)calloc(sizeof(li), 1))) return NULL;
 
-    i->data = data;
-    i->next = NULL;
-    if (l->end)
-	l->end->next = i;
-    else
-	l->head = i;
-    l->end = i;
+	i->data = data;
+	i->next = NULL;
+	if (l->end)
+		l->end->next = i;
+	else
+		l->head = i;
+	l->end = i;
 
-    return i;
+	return i;
 }
 
 void *ll_pop(linked_list *l)
 {
-    li *i;
-    void *data;
-
-    if (!l) return NULL;
-    if (!l->head)
-	return NULL;
-
-    data = l->head->data;
-    i = l->head->next;
-    free(l->head);
-    l->head = i;
-    return data;
+	li *i;
+	void *data;
+
+	if (!l) return NULL;
+	if (!l->head)
+		return NULL;
+
+	data = l->head->data;
+	i = l->head->next;
+	free(l->head);
+	l->head = i;
+	return data;
 }
 
 void ll_iterate(linked_list *l, int(*func)(void *))
 {
-    li *i;
-    if (!l || !func) return;
-
-    for (i = l->head; i; i = i->next)
-    {
-	if (i->data)
-	    if (!func(i))
-		break;
-    }
+	li *i;
+	if (!l || !func) return;
+
+	for (i = l->head; i; i = i->next)
+	{
+		if (i->data && !func(i->data))
+			break;
+	}
 }
 
 void ll_reset(linked_list *l)
 {
-    if (!l) return;
-    l->current = NULL;
+	if (!l) return;
+	l->current = NULL;
 }
 
 void *ll_next(linked_list *l)
 {
-    if (!l) return NULL;
-    if (!l->current)
-	l->current = l->head;
-    else
-	l->current = l->current->next;
-    if (!l->current)
-	return NULL;
-    return l->current->data;
+	if (!l) return NULL;
+	if (!l->current)
+		l->current = l->head;
+	else
+		l->current = l->current->next;
+	if (!l->current)
+		return NULL;
+	return l->current->data;
 }
 
 void ll_delete(linked_list *l, void *data)
 {
-    li *i = l->head, *p = NULL;
+	li *i = l->head, *p = NULL;
 
-    while (i)
-    {
-	if (i->data == data)
+	while (i)
 	{
-	    if (l->head == i) l->head = i->next;
-	    if (l->end == i) l->end = i->next;
-	    if (p) p->next = i->next;
-	    free(i);
-	    l->current = NULL;
-	    return;
+		if (i->data == data)
+		{
+			if (l->head == i) l->head = i->next;
+			if (l->end == i)  l->end = p;
+			if (p)            p->next = i->next;
+			free(i);
+			l->current = NULL;
+			return;
+		}
+		p = i;
+		i = i->next;
 	}
-	p = i;
-	i = i->next;
-    }
 }
 
 int ll_size(linked_list *l)
 {
-    int count = 0;
-    li *i;
+	int count = 0;
+	li *i;
 
-    if (!l) return 0;
+	if (!l) return 0;
 
-    for (i = l->head; i; i = i->next)
-	if (i->data) count++;
+	for (i = l->head; i; i = i->next)
+		if (i->data) count++;
 
-    return count;
+	return count;
 }
 
 int ll_contains(linked_list *l, void *search)
 {
-    li *i;
-    for (i = l->head; i; i = i->next)
-	if (i->data == search)
-	    return 1;
-    return 0;
+	li *i;
+	for (i = l->head; i; i = i->next)
+		if (i->data == search)
+			return 1;
+	return 0;
 }