X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libtu%2Fptrlist.c;h=f86d9a4bc33fe1ad74d3207c3e1b4f46ca97e8cc;hb=ae4260bb64817c11f9a7140324cd3e3ba113e297;hp=1ea6726eafe04ddddb89b0a570e9bd419a6ee8cd;hpb=de22e45179cb3bafa490294d31d47f361047a30a;p=ion3.git diff --git a/libtu/ptrlist.c b/libtu/ptrlist.c index 1ea6726..f86d9a4 100644 --- a/libtu/ptrlist.c +++ b/libtu/ptrlist.c @@ -53,6 +53,12 @@ static PtrList *ptrlist_find_node(PtrList *ptrlist, void *ptr) } +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); @@ -84,7 +90,7 @@ bool ptrlist_reinsert_last(PtrList **ptrlist, void *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); @@ -98,7 +104,7 @@ bool ptrlist_reinsert_first(PtrList **ptrlist, void *ptr) 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);