Gera critério de obrigatoriedade.
[cascardo/declara.git] / list.c
diff --git a/list.c b/list.c
index 6671b2e..87913c4 100644 (file)
--- a/list.c
+++ b/list.c
@@ -97,6 +97,16 @@ out:
        return -1;
 }
 
+int list_insert_ordered(struct list **list, void *val, sort_function_t *fn)
+{
+       struct list *l = *list;
+       int i;
+       for (i = 0; i < l->len; i++)
+               if (fn(l->items[i].val, val) >= 0)
+                       return list_insert(list, i, val);
+       return list_add(list, val);
+}
+
 void * list_get(struct list *list, int pos)
 {
        unsigned int i;