/* @@@HEAD@@@ // Declarations for ColdC lists. */ /* The header file ordering breaks down here; we need to run this file * after data.h has completed, not just after the typedefs are done. * Thus the ugly conditionals. */ #ifndef _list_h_ #define _list_h_ #include "cdc_types.h" list_t * list_new(int len); list_t * list_dup(list_t * list); int list_length(list_t * list); data_t * list_first(list_t * list); data_t * list_next(list_t * list, data_t * d); data_t * list_last(list_t * list); data_t * list_prev(list_t * list, data_t * d); data_t * list_elem(list_t * list, int i); data_t * list_empty_spaces(list_t * list, int spaces); int list_search(list_t * list, data_t * data); int list_cmp(list_t * l1, list_t * l2); list_t * list_insert(list_t * list, int pos, data_t * elem); list_t * list_add(list_t * list, data_t * elem); list_t * list_replace(list_t * list, int pos, data_t * elem); list_t * list_delete(list_t * list, int pos); list_t * list_delete_element(list_t * list, data_t * elem); list_t * list_append(list_t * list1, list_t * list2); list_t * list_reverse(list_t * list); list_t * list_setadd(list_t * list, data_t * elem); list_t * list_setremove(list_t * list, data_t * elem); list_t * list_union(list_t * list1, list_t * list2); list_t * list_sublist(list_t * list, int start, int len); void list_discard(list_t * list); #endif