]> git.decadent.org.uk Git - ion3.git/blobdiff - libtu/ptrlist.c
[svn-upgrade] Integrating new upstream version, ion3 (20070506)
[ion3.git] / libtu / ptrlist.c
index 1ea6726eafe04ddddb89b0a570e9bd419a6ee8cd..f86d9a4bc33fe1ad74d3207c3e1b4f46ca97e8cc 100644 (file)
@@ -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);