Lines Matching refs:lp
47 zero_list(list_ptr lp)
49 lp->next = NULL;
50 lp->ptr.item = NULL;
54 Adds item to the list pointed to by lp. Finds the end of the
61 add_to_list(list_ptr lp, void *item)
63 while (lp->next) {
64 lp = lp->next;
66 if ((lp->next = malloc(sizeof(list_item))) == NULL) {
70 lp->next->ptr.item = item;
71 lp->next->next = NULL;
84 list_ptr lp;
86 if ((lp = malloc(sizeof(list_item)))) {
87 lp->next = NULL;
88 lp->ptr.item = NULL;
91 return lp;
105 dup_list_head(list_ptr lp, int start_at_curr)
113 new_listp->next = start_at_curr ? lp->ptr.curr : lp->next;
114 new_listp->ptr.curr = lp->ptr.curr;
125 list_length(list_ptr lp)
129 while (lp->next) {
131 lp = lp->next;
148 delete_from_list(list_ptr lp, void *item)
152 while (lp->next) {
153 if (lp->next->ptr.item == item) {
154 new_next = lp->next->next;
155 free(lp->next);
156 lp->next = new_next;
160 lp = lp->next;
175 delete_list(list_ptr lp, int free_items)
177 while (lp->next) {
178 list_ptr del_node = lp->next;
180 lp->next = del_node->next;
189 delete_list_destroying(list_ptr lp, void destructor(void *item))
191 while (lp->next) {
192 list_ptr del_node = lp->next;
194 lp->next = del_node->next;
209 first_in_list(list_ptr lp)
211 if (!lp) {
215 lp->ptr.curr = lp->next;
217 return lp->ptr.curr ? lp->ptr.curr->ptr.item : NULL;
227 next_in_list(list_ptr lp)
229 if (!lp) {
233 if (lp->ptr.curr) {
234 lp->ptr.curr = lp->ptr.curr->next;
237 return lp->ptr.curr ? lp->ptr.curr->ptr.item : NULL;
242 list_is_empty(list_ptr lp)
244 return (lp == NULL || lp->next == NULL);