All pastes #822933 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-12-19 01:36 UTC
rendered paste body
#include <list.h>

ListItem *ListFindItemByIndex(ListItem *list, int index)
{
	ListItem *item = list->list;
	
	for (i = 0, i < index; i++)
		item = item->next;
	return item;
}	
	
ListItem *ListFindItemByKey(List *list, const char *key);
{
	List *item = list->list;
	
	while (!strcomp(item->key, key))
		item = item->next;
	return item;
}
	
void ListRemoveItem(List *list, ListItem *item)
{
	if (list->size == 1)
	{
		free(list->list->data);
		free(list->list);
		list->list = NULL;
		list->size = 0;
		return;
	}
	if (list->list == item)
		list-list == item->next;
	item->prev->next = item->next;
	item->next->prev = item->prev;
	free(item->data);
	free(item);
	list->size--;
}