summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sp_list.c6
-rw-r--r--src/sp_list.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/sp_list.c b/src/sp_list.c
index 92e628d..ab752f7 100644
--- a/src/sp_list.c
+++ b/src/sp_list.c
@@ -75,3 +75,9 @@ sp_list_node *sp_list_prepend(sp_list_node *list, void *data) {
75 new->data = data; 75 new->data = data;
76 return new; 76 return new;
77} 77}
78
79size_t sp_list_len(sp_list_node *p) {
80 size_t num = 0;
81 for (; p; p = p->next) { num++; }
82 return num;
83}
diff --git a/src/sp_list.h b/src/sp_list.h
index 7ceee50..81bbb29 100644
--- a/src/sp_list.h
+++ b/src/sp_list.h
@@ -13,5 +13,6 @@ sp_list_node *sp_list_insert(sp_list_node *, void *);
13sp_list_node *sp_list_prepend(sp_list_node *, void *); 13sp_list_node *sp_list_prepend(sp_list_node *, void *);
14void sp_list_free(sp_list_node *, void (*free_data_func)(void *data)); 14void sp_list_free(sp_list_node *, void (*free_data_func)(void *data));
15void sp_list_free2(sp_list_node *node); 15void sp_list_free2(sp_list_node *node);
16size_t sp_list_len(sp_list_node *p);
16 17
17#endif 18#endif