}
+bool ptrlist_contains(PtrList *ptrlist, void *ptr)
+{
+ return (ptrlist_find_node(ptrlist, ptr)!=NULL);
+}
+
+
bool ptrlist_insert_last(PtrList **ptrlist, void *ptr)
{
PtrList *node=mknode(ptr);
PtrList *node=ptrlist_find_node(*ptrlist, ptr);
if(node==NULL)
- return FALSE;
+ return ptrlist_insert_last(ptrlist, ptr);
UNLINK_ITEM(*ptrlist, node, next, prev);
LINK_ITEM_LAST(*ptrlist, node, next, prev);
PtrList *node=ptrlist_find_node(*ptrlist, ptr);
if(node==NULL)
- return FALSE;
+ return ptrlist_insert_first(ptrlist, ptr);
UNLINK_ITEM(*ptrlist, node, next, prev);
LINK_ITEM_FIRST(*ptrlist, node, next, prev);