92 #define add_on(l,x) l = push (l,first_node (x)) 93 #define next_one(l) l = list_rest (l) 155 if (!(*is_equal).Run (
first_node (list), key)) {
236 return (item1 == item2);
247 return (!strcmp ((
char *) item1, (
char *) item2));
387 result = (*compare) (variable,
first_node (l));
390 else if (result < 0) {
int(* int_compare)(void *, void *)
void insert(LIST list, void *node)
LIST delete_d(LIST list, void *key, int_compare is_equal)
LIST join(LIST list1, LIST list2)
#define copy_first(l1, l2)
LIST search(LIST list, void *key, int_compare is_equal)
LIST push_last(LIST list, void *item)
LIST s_adjoin(LIST var_list, void *variable, int_compare compare)
LIST reverse_d(LIST list)
void destroy_nodes(LIST list, void_dest destructor)
LIST push(LIST list, void *element)
int is_same(void *item1, void *item2)
#define set_rest(l, cell)
void * nth_cell(LIST var_list, int item_num)
void(* void_dest)(void *)
int is_same_node(void *item1, void *item2)