From 0eb1da8dd7fa3ae9d95e12df6058fb41a5ec1c11 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Tue, 12 Apr 2011 19:10:50 +0200 Subject: Add linked lists implementation. As discussed on the mailing lists, the various linked list implementations we currently use at a dozen of different places in the calcurse source tree are inconvenient and should be replaced by a single generic solution. This is a first approach to introduce such a generic implemetation. It provides following functions: * llist_init(): Initialize a list. * llist_free_inner(): Loop through a list and free all items. * llist_free(): Free the list itself (but not the individual items). * llist_first(): Get the first item of a list. * llist_nth(): Get the nth item of a list. * llist_next(): Get the successor of a list item. * llist_find_first(): Find an item using a callback function. * llist_find_next(): Find the next match using a callback function. * llist_find_nth(): Find the nth item in a list (using a callback). * llist_get_data(): Get a pointer to the actual data of a list item. * llist_add(): Add an item at the end of a list. * llist_add_sorted(): Add an item to a sorted list (using a comparison callback function). * llist_remove(): Remove an item from a list. Linked lists are stored in "llist_t" structures, list items are to be stored in "llist_item_t" structs. All of the llist_*() functions either expect a pointer to a llist_t structure (in case the function operates on the list itself) or a pointer to a llist_item_t (llist_*_next() and llist_get_data()). Signed-off-by: Lukas Fleischer --- src/calcurse.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/calcurse.h') diff --git a/src/calcurse.h b/src/calcurse.h index 916fc92..8c9d894 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -54,6 +54,7 @@ #include #include +#include "llist.h" #include "htable.h" /* Internationalization. */ -- cgit v1.2.3-54-g00ecf