chiark / gitweb /
[PATCH] dev_d.c file sorting and cleanup
[elogind.git] / libsysfs / dlist.c
index 6dfcf726baed68e8aa595416a321718e6e3da43c..942eccb48c89850a83e7806318a3803641fe68a3 100644 (file)
@@ -27,6 +27,7 @@
  * delete function.  Otherwise dlist will just use free.
 
 */
+#include <stdlib.h>
 #include "dlist.h"
 
 /*
@@ -259,6 +260,16 @@ void dlist_unshift(Dlist *list,void *data)
   dlist_insert(list,data,0);
 }
 
+void dlist_unshift_sorted(Dlist *list, void *data, 
+                       int (*sorter)(void *new, void *old))
+{
+       if (list->count == 0)
+               dlist_unshift(list, data);
+       else {
+               list->marker=list->head->next;
+               dlist_insert_sorted(list, data, sorter);
+       }
+}
 
 /* 
  * Remove end node from list.