]> git.sur5r.net Git - cc65/commitdiff
Added a sort function
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 31 Oct 2000 18:25:52 +0000 (18:25 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 31 Oct 2000 18:25:52 +0000 (18:25 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@418 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/common/coll.c
src/common/coll.h

index 232438d8a70f00a15bc7465d11c0ca661728b95d..8ce56a8c71eacf703e00ea64090f7eaaff7fee1a 100644 (file)
@@ -33,6 +33,7 @@
 
 
 
+#include <stdlib.h>
 #include <string.h>
 
 /* common */
@@ -164,7 +165,7 @@ const void* CollConstAt (const Collection* C, unsigned Index)
     /* Check the index */
     PRECONDITION (Index < C->Count);
 
-    /* Return the element */    
+    /* Return the element */
     return C->Items[Index];
 }
 
@@ -224,4 +225,15 @@ void CollReplace (Collection* C, void* Item, unsigned Index)
 
 
 
+void CollSort (Collection* C, int (*Compare) (const void*, const void*))
+/* Sort the collection using the given compare function.
+ * BEWARE: The function uses qsort internally, so the Compare function does
+ * actually get pointers to the object pointers, not just object pointers!
+ */
+{
+    /* Use qsort */
+    qsort (C->Items, C->Count, sizeof (void*), Compare);
+}
+
+
 
index ca39b14412d4590f6f101f10bc09022410aca4c2..144442f6549240fcb11737a68f1773a11f549d64 100644 (file)
@@ -113,6 +113,12 @@ void CollReplace (Collection* C, void* Item, unsigned Index);
  * just the pointer will et replaced.
  */
 
+void CollSort (Collection* C, int (*Compare) (const void*, const void*));
+/* Sort the collection using the given compare function.
+ * BEWARE: The function uses qsort internally, so the Compare function does
+ * actually get pointers to the object pointers, not just object pointers!
+ */
+
 
 
 /* End of exprlist.h */